/* * Copyright 2022-2023, NXP * * SPDX-License-Identifier: Apache-2.0 */ /dts-v1/; #include #include "mimxrt595_evk_cm33-pinctrl.dtsi" / { model = "NXP MIMXRT595-EVK board"; compatible = "nxp,mimxrt595"; aliases { sw0 = &user_button_1; sw1 = &user_button_2; led0 = &green_led; led1 = &blue_led; led2 = &red_led; usart-0 = &flexcomm0; watchdog0 = &wwdt0; magn0 = &fxos8700; accel0 = &fxos8700; sdhc0 = &usdhc0; pwm-0 = &sc_timer; }; chosen { zephyr,flash-controller = &mx25um51345g; zephyr,flash = &mx25um51345g; zephyr,code-partition = &slot0_partition; zephyr,sram = &sram0; zephyr,console = &flexcomm0; zephyr,shell-uart = &flexcomm0; zephyr,display = &lcdif; }; gpio_keys { compatible = "gpio-keys"; user_button_1: button_0 { label = "User SW1"; gpios = <&gpio0 25 GPIO_ACTIVE_LOW>; }; user_button_2: button_1 { label = "User SW2"; gpios = <&gpio0 10 GPIO_ACTIVE_LOW>; }; }; leds { compatible = "gpio-leds"; green_led: led_1 { gpios = <&gpio1 0 0>; label = "User LED_GREEN"; }; blue_led: led_2 { gpios = <&gpio3 17 0>; label = "User LED_BLUE"; }; red_led: led_3 { gpios = <&gpio0 14 0>; label = "User LED_RED"; }; }; arduino_header: arduino-connector { compatible = "arduino-header-r3"; #gpio-cells = <2>; gpio-map-mask = <0xffffffff 0xffffffc0>; gpio-map-pass-thru = <0 0x3f>; gpio-map = <0 0 &gpio0 5 0>, /* A0 */ <1 0 &gpio0 6 0>, /* A1 */ <2 0 &gpio0 19 0>, /* A2 */ <3 0 &gpio0 13 0>, /* A3 */ <4 0 &gpio4 22 0>, /* A4 */ <5 0 &gpio4 21 0>, /* A5 */ <6 0 &gpio4 31 0>, /* D0 */ <7 0 &gpio4 30 0>, /* D1 */ <8 0 &gpio4 20 0>, /* D2 */ <9 0 &gpio4 23 0>, /* D3 */ <10 0 &gpio4 24 0>, /* D4 */ <11 0 &gpio4 25 0>, /* D5 */ <12 0 &gpio4 26 0>, /* D6 */ <13 0 &gpio4 27 0>, /* D7 */ <14 0 &gpio4 28 0>, /* D8 */ <15 0 &gpio4 29 0>, /* D9 */ <16 0 &gpio5 0 0>, /* D10 */ <17 0 &gpio5 1 0>, /* D11 */ <18 0 &gpio5 2 0>, /* D12 */ <19 0 &gpio5 3 0>, /* D13 */ <20 0 &gpio4 22 0>, /* D14 */ <21 0 &gpio4 21 0>; /* D15 */ }; /* * This node describes the GPIO pins of the MIPI FPC interface, * J44 on the EVK. This interface is standard to several * NXP EVKs, and is used with several MIPI displays * (available as zephyr shields) */ nxp_mipi_connector: mipi-connector { compatible = "gpio-nexus"; #gpio-cells = <2>; gpio-map-mask = <0xffffffff 0xffffffc0>; gpio-map-pass-thru = <0 0x3f>; gpio-map = <0 0 &gpio0 12 0>, /* Pin 1, LEDK */ <21 0 &gpio3 21 0>, /* Pin 21, RESET */ <22 0 &gpio3 18 0>, /* Pin 22, LPTE */ <26 0 &gpio0 30 0>, /* Pin 26, CTP_I2C SDA */ <27 0 &gpio0 29 0>, /* Pin 27, CTP_I2C SCL */ <28 0 &gpio4 4 0>, /* Pin 28, CTP_RST */ <29 0 &gpio3 19 0>, /* Pin 29, CTP_INT */ <32 0 &gpio3 15 0>, /* Pin 32, PWR_EN */ <34 0 &gpio0 12 0>; /* Pin 34, BL_PWM */ }; en_mipi_display: enable-mipi-display { compatible = "regulator-fixed"; regulator-name = "en_mipi_display"; enable-gpios = <&gpio3 15 GPIO_ACTIVE_HIGH>; regulator-boot-on; }; }; /* * RT595 EVK board uses OS timer as the kernel timer * In case we need to switch to SYSTICK timer, then * replace &os_timer with &systick */ &os_timer { status = "okay"; wakeup-source; }; &rtc { status = "okay"; }; &flexcomm0 { compatible = "nxp,lpc-usart"; status = "okay"; current-speed = <115200>; pinctrl-0 = <&pinmux_flexcomm0_usart>; pinctrl-names = "default"; dmas = <&dma0 0>, <&dma0 1>; dma-names = "rx", "tx"; }; arduino_i2c: &flexcomm4 { compatible = "nxp,lpc-i2c"; status = "okay"; clock-frequency = ; #address-cells = <1>; #size-cells = <0>; pinctrl-0 = <&pinmux_flexcomm4_i2c>; pinctrl-names = "default"; fxos8700: fxos8700@1e { compatible = "nxp,fxos8700"; reg = <0x1e>; int1-gpios = <&gpio0 22 GPIO_ACTIVE_LOW>; reset-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; }; }; nxp_mipi_i2c: &arduino_i2c {}; zephyr_mipi_dsi: &mipi_dsi {}; zephyr_lcdif: &lcdif {}; hs_spi1: &hs_lspi1 { compatible = "nxp,lpc-spi"; pinctrl-0 = <&pinmux_flexcomm16_spi>; pinctrl-names = "default"; dmas = <&dma0 28>, <&dma0 29>; dma-names = "rx", "tx"; status = "okay"; }; /* I2S RX */ i2s0: &flexcomm1 { compatible = "nxp,lpc-i2s"; pinctrl-0 = <&pinmux_flexcomm1_i2s>; pinctrl-names = "default"; #address-cells = <1>; #size-cells = <0>; dmas = <&dma0 2>; dma-names = "rx"; status = "disabled"; }; /* I2S TX */ i2s1: &flexcomm3 { compatible = "nxp,lpc-i2s"; pinctrl-0 = <&pinmux_flexcomm3_i2s>; pinctrl-names = "default"; #address-cells = <1>; #size-cells = <0>; dmas = <&dma0 7>; dma-names = "tx"; status = "disabled"; }; arduino_serial: &flexcomm12 { compatible = "nxp,lpc-usart"; status = "okay"; current-speed = <115200>; pinctrl-0 = <&pinmux_flexcomm12_usart>; pinctrl-names = "default"; dmas = <&dma0 34>, <&dma0 35>; dma-names = "rx", "tx"; }; /* PCA9420 PMIC */ &pmic_i2c { status = "okay"; clock-frequency = ; #address-cells = <1>; #size-cells = <0>; pinctrl-0 = <&pinmux_pmic_i2c>; pinctrl-names = "default"; pca9420: pca9420@61 { compatible = "nxp,pca9420"; reg = <0x61>; nxp,enable-modesel-pins; pca9420_sw1: BUCK1 { regulator-boot-on; nxp,mode0-microvolt = <1100000>; nxp,mode1-microvolt = <600000>; nxp,mode2-microvolt = <0>; }; pca9420_sw2: BUCK2 { regulator-boot-on; nxp,mode0-microvolt = <1800000>; nxp,mode1-microvolt = <1800000>; nxp,mode2-microvolt = <1800000>; }; pca9420_ldo1: LDO1 { regulator-boot-on; nxp,mode0-microvolt = <1800000>; nxp,mode1-microvolt = <1800000>; nxp,mode2-microvolt = <1800000>; }; pca9420_ldo2: LDO2 { regulator-boot-on; nxp,mode0-microvolt = <3300000>; nxp,mode1-microvolt = <3300000>; nxp,mode2-microvolt = <3300000>; }; }; }; &lpadc0 { status = "okay"; pinctrl-0 = <&pinmux_lpadc0>; pinctrl-names = "default"; }; &gpio0 { status = "okay"; }; &gpio1 { status = "okay"; }; &gpio2 { status = "okay"; }; /* * GPIO module interrupts are shared between all GPIO devices on this * SOC, but Zephyr does not currently support sharing interrupts between * devices. The user can select GPIO modules to support interrupts by * setting the appropriate `int-source` and `interrupt` property for * a given module. On this board, GPIO3 and GPIO4 are configured to support * interrupts. */ &gpio3 { status = "okay"; int-source = "int-a"; interrupts = <2 0>; }; &gpio4 { status = "okay"; int-source = "int-b"; interrupts = <3 0>; }; &gpio5 { status = "okay"; }; &gpio6 { status = "okay"; }; &user_button_1 { status = "okay"; }; &user_button_2 { status = "okay"; }; &green_led { status = "okay"; }; &blue_led { status = "okay"; }; &red_led { status = "okay"; }; &dma0 { status = "okay"; }; zephyr_udc0: &usbhs { status = "okay"; }; &ctimer0 { status = "okay"; }; &ctimer1 { status = "okay"; }; &ctimer2 { status = "okay"; }; &ctimer3 { status = "okay"; }; &ctimer4 { status = "okay"; }; &usdhc0 { status = "okay"; pwr-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>; cd-gpios = <&gpio2 9 GPIO_ACTIVE_LOW>; mmc { compatible = "zephyr,mmc-disk"; status = "okay"; }; pinctrl-0 = <&pinmux_usdhc>; pinctrl-names = "default"; mmc-hs200-1_8v; mmc-hs400-1_8v; }; &wwdt0 { status = "okay"; }; &flexspi { status = "okay"; pinctrl-0 = <&pinmux_flexspi>; pinctrl-1 = <&pinmux_flexspi_sleep>; pinctrl-names = "default", "sleep"; mx25um51345g: mx25um51345g@0 { compatible = "nxp,imx-flexspi-mx25um51345g"; /* MX25UM51245G is 64MB, 512MBit flash part */ size = ; reg = <0>; spi-max-frequency = <200000000>; status = "okay"; jedec-id = [c2 81 3a]; erase-block-size = <4096>; write-block-size = <16>; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; boot_partition: partition@0 { label = "mcuboot"; reg = <0x00000000 DT_SIZE_K(128)>; }; slot0_partition: partition@20000 { label = "image-0"; reg = <0x00020000 DT_SIZE_K(3076)>; }; slot1_partition: partition@321000 { label = "image-1"; reg = <0x00321000 DT_SIZE_K(3072)>; }; storage_partition: partition@621000 { label = "storage"; reg = <0x00621000 DT_SIZE_M(57)>; }; }; }; }; &flexspi2 { status = "okay"; pinctrl-0 = <&pinmux_flexspi2>; pinctrl-names = "default"; rx-clock-source = <3>; ahb-prefetch; ahb-bufferable; ahb-cacheable; ahb-read-addr-opt; aps6408l: aps6408l@0 { compatible = "nxp,imx-flexspi-aps6408l"; /* APS6408L is 8MB, 64MBit pSRAM */ size = ; reg = <0>; spi-max-frequency = <198000000>; status = "okay"; cs-interval-unit = <1>; cs-interval = <5>; cs-hold-time = <3>; cs-setup-time = <3>; data-valid-time = <1>; column-space = <0>; ahb-write-wait-unit = <2>; ahb-write-wait-interval = <0>; }; }; &sc_timer { pinctrl-0 = <&pinmux_sctimer_default>; pinctrl-names = "default"; status = "okay"; }; &i3c0 { pinctrl-0 = <&pinmux_i3c>; pinctrl-names = "default"; status = "okay"; }; /* Disable this node if not using USB and need another MPU region */ &sram1 { status = "okay"; };