1/* 2 * Copyright (c) 2018, NXP 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7/dts-v1/; 8 9#include <nxp/nxp_rt1060.dtsi> 10#include "mimxrt1060_evk-pinctrl.dtsi" 11#include <zephyr/dt-bindings/display/panel.h> 12#include <zephyr/dt-bindings/input/input-event-codes.h> 13 14/ { 15 model = "NXP MIMXRT1060-EVK board"; 16 compatible = "nxp,mimxrt1062"; 17 18 aliases { 19 led0 = &green_led; 20 pwm-led0 = &green_pwm_led; 21 sw0 = &user_button; 22 watchdog0 = &wdog0; 23 sdhc0 = &usdhc1; 24 }; 25 26 chosen { 27 zephyr,flash-controller = &is25wp064; 28 zephyr,flash = &is25wp064; 29 zephyr,code-partition = &slot0_partition; 30 zephyr,sram = &sdram0; 31 zephyr,itcm = &itcm; 32 zephyr,dtcm = &dtcm; 33 zephyr,console = &lpuart1; 34 zephyr,shell-uart = &lpuart1; 35 zephyr,canbus = &flexcan3; 36 zephyr,display = &lcdif; 37 }; 38 39 sdram0: memory@80000000 { 40 /* Micron MT48LC16M16A2B4-6AIT:G */ 41 device_type = "memory"; 42 reg = <0x80000000 DT_SIZE_M(32)>; 43 }; 44 45 leds { 46 compatible = "gpio-leds"; 47 green_led: led-1 { 48 gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; 49 label = "User LED1"; 50 }; 51 }; 52 53 pwmleds { 54 compatible = "pwm-leds"; 55 green_pwm_led: green_pwm_led { 56 pwms = <&flexpwm2_pwm3 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>; 57 }; 58 }; 59 60 gpio_keys { 61 compatible = "gpio-keys"; 62 user_button: button-1 { 63 label = "User SW8"; 64 gpios = <&gpio5 0 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; 65 zephyr,code = <INPUT_KEY_0>; 66 }; 67 }; 68 69 lvgl_pointer { 70 compatible = "zephyr,lvgl-pointer-input"; 71 input = <&ft5336>; 72 }; 73 74 arduino_header: connector { 75 compatible = "arduino-header-r3"; 76 #gpio-cells = <2>; 77 gpio-map-mask = <0xffffffff 0xffffffc0>; 78 gpio-map-pass-thru = <0 0x3f>; 79 gpio-map = <0 0 &gpio1 26 0>, /* A0 */ 80 <1 0 &gpio1 27 0>, /* A1 */ 81 <2 0 &gpio1 20 0>, /* A2 */ 82 <3 0 &gpio1 21 0>, /* A3 */ 83 <4 0 &gpio1 17 0>, /* A4 */ 84 <5 0 &gpio1 16 0>, /* A5 */ 85 <6 0 &gpio1 23 0>, /* D0 */ 86 <7 0 &gpio1 22 0>, /* D1 */ 87 <8 0 &gpio1 11 0>, /* D2 */ 88 <9 0 &gpio1 24 0>, /* D3 */ 89 <10 0 &gpio1 9 0>, /* D4 */ 90 <11 0 &gpio1 10 0>, /* D5 */ 91 <12 0 &gpio1 18 0>, /* D6 */ 92 <13 0 &gpio1 19 0>, /* D7 */ 93 <14 0 &gpio1 3 0>, /* D8 */ 94 <15 0 &gpio1 2 0>, /* D9 */ 95 <16 0 &gpio3 13 0>, /* D10 */ 96 <17 0 &gpio3 14 0>, /* D11 */ 97 <18 0 &gpio3 15 0>, /* D12 */ 98 <19 0 &gpio3 12 0>, /* D13 */ 99 <20 0 &gpio1 17 0>, /* D14 */ 100 <21 0 &gpio1 16 0>; /* D15 */ 101 }; 102 103 panel { 104 compatible = "rocktech,rk043fn02h-ct"; 105 port { 106 lcd_panel_in: endpoint { 107 remote-endpoint = <&lcd_panel_out>; 108 }; 109 }; 110 }; 111}; 112 113arduino_serial: &lpuart3 { 114 pinctrl-0 = <&pinmux_lpuart3>; 115 pinctrl-1 = <&pinmux_lpuart3_sleep>; 116 pinctrl-names = "default", "sleep"; 117}; 118 119&flexspi { 120 status = "okay"; 121 pinctrl-0 = <&pinmux_flexspi1>; 122 pinctrl-names = "default"; 123 ahb-prefetch; 124 ahb-read-addr-opt; 125 rx-clock-source = <1>; 126 reg = <0x402a8000 0x4000>, <0x60000000 DT_SIZE_M(8)>; 127 is25wp064: is25wp064@0 { 128 compatible = "nxp,imx-flexspi-nor"; 129 size = <67108864>; 130 reg = <0>; 131 spi-max-frequency = <133000000>; 132 status = "okay"; 133 jedec-id = [9d 70 17]; 134 erase-block-size = <4096>; 135 write-block-size = <1>; 136 137 partitions { 138 compatible = "fixed-partitions"; 139 #address-cells = <1>; 140 #size-cells = <1>; 141 142 boot_partition: partition@0 { 143 label = "mcuboot"; 144 reg = <0x00000000 DT_SIZE_K(64)>; 145 }; 146 slot0_partition: partition@10000 { 147 label = "image-0"; 148 reg = <0x00010000 DT_SIZE_M(3)>; 149 }; 150 slot1_partition: partition@310000 { 151 label = "image-1"; 152 reg = <0x00310000 DT_SIZE_M(3)>; 153 }; 154 scratch_partition: partition@610000 { 155 label = "image-scratch"; 156 reg = <0x00610000 DT_SIZE_K(128)>; 157 }; 158 storage_partition: partition@630000 { 159 label = "storage"; 160 reg = <0x00630000 DT_SIZE_K(1856)>; 161 }; 162 }; 163 }; 164}; 165 166&lcdif { 167 status = "okay"; 168 width = <480>; 169 height = <272>; 170 display-timings { 171 compatible = "zephyr,panel-timing"; 172 hsync-len = <41>; 173 hfront-porch = <4>; 174 hback-porch = <8>; 175 vsync-len = <10>; 176 vfront-porch = <4>; 177 vback-porch = <2>; 178 de-active= <1>; 179 pixelclk-active = <1>; 180 hsync-active = <0>; 181 vsync-active = <0>; 182 clock-frequency = <9210240>; 183 }; 184 pixel-format = <PANEL_PIXEL_FORMAT_BGR_565>; 185 data-bus-width = "16-bit"; 186 pinctrl-0 = <&pinmux_lcdif>; 187 pinctrl-names = "default"; 188 backlight-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>; 189 port { 190 lcd_panel_out: endpoint { 191 remote-endpoint = <&lcd_panel_in>; 192 }; 193 }; 194}; 195 196arduino_i2c: &lpi2c1 { 197 status = "okay"; 198 pinctrl-0 = <&pinmux_lpi2c1>; 199 pinctrl-names = "default"; 200 201 ft5336: ft5336@38 { 202 compatible = "focaltech,ft5336"; 203 reg = <0x38>; 204 int-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; 205 }; 206}; 207 208&lpuart1 { 209 status = "okay"; 210 current-speed = <115200>; 211 pinctrl-0 = <&pinmux_lpuart1>; 212 pinctrl-1 = <&pinmux_lpuart1_sleep>; 213 pinctrl-names = "default", "sleep"; 214}; 215 216&enet { 217 status = "okay"; 218 pinctrl-0 = <&pinmux_enet>; 219 pinctrl-names = "default"; 220 int-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; 221 reset-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; 222 ptp { 223 pinctrl-0 = <&pinmux_ptp>; 224 pinctrl-names = "default"; 225 status = "okay"; 226 }; 227}; 228 229&adc1 { 230 status = "okay"; 231 pinctrl-0 = <&pinmux_adc1>; 232 pinctrl-names = "default"; 233}; 234 235zephyr_udc0: &usb1 { 236 status = "okay"; 237}; 238 239&flexpwm2_pwm3 { 240 status = "okay"; 241 pinctrl-0 = <&pinmux_flexpwm2_3>; 242 pinctrl-names = "default"; 243}; 244 245&flexpwm1_pwm0 { 246 pinctrl-0 = <&pinmux_flexpwm1_0>; 247 pinctrl-names = "default"; 248}; 249 250&flexpwm1_pwm3 { 251 pinctrl-0 = <&pinmux_flexpwm1>; 252 pinctrl-names = "default"; 253}; 254 255&usdhc1 { 256 status = "okay"; 257 power-delay-ms = <1000>; 258 pwr-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; 259 cd-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; 260 status = "okay"; 261 pinctrl-0 = <&pinmux_usdhc1>; 262 pinctrl-1 = <&pinmux_usdhc1_slow>; 263 pinctrl-2 = <&pinmux_usdhc1_med>; 264 pinctrl-3 = <&pinmux_usdhc1_fast>; 265 pinctrl-names = "default", "slow", "med", "fast"; 266 sdmmc { 267 compatible = "zephyr,sdmmc-disk"; 268 status = "okay"; 269 }; 270}; 271 272&edma0 { 273 status = "okay"; 274}; 275 276&flexcan3 { 277 status = "okay"; 278 bus-speed = <125000>; 279 bus-speed-data = <1000000>; 280 pinctrl-0 = <&pinmux_flexcan3>; 281 pinctrl-names = "default"; 282 283 can-transceiver { 284 max-bitrate = <5000000>; 285 }; 286}; 287 288&wdog0 { 289 status = "okay"; 290}; 291 292arduino_spi: &lpspi1 { 293 status = "okay"; 294 /* DMA channels 0 and 1, muxed to LPSPI1 RX and TX */ 295 dmas = <&edma0 0 13>, <&edma0 1 14>; 296 dma-names = "rx", "tx"; 297 pinctrl-0 = <&pinmux_lpspi1>; 298 pinctrl-names = "default"; 299}; 300 301&lpspi3 { 302 status = "okay"; 303 /* DMA channels 2 and 3, muxed to LPSPI3 RX and TX */ 304 dmas = <&edma0 2 15>, <&edma0 3 16>; 305 dma-names = "rx", "tx"; 306 pinctrl-0 = <&pinmux_lpspi3>; 307 pinctrl-names = "default"; 308 309}; 310 311&sai1 { 312 status = "okay"; 313 pinctrl-0 = <&pinmux_sai1>; 314 pinctrl-names = "default"; 315}; 316 317/* GPT and Systick are enabled. If power management is enabled, the GPT 318 * timer will be used instead of systick, as allows the core clock to 319 * be gated. 320 */ 321&gpt_hw_timer { 322 status = "okay"; 323}; 324 325&systick { 326 status = "okay"; 327}; 328 329&iomuxcgpr { 330 status = "okay"; 331}; 332 333&itm { 334 pinctrl-0 = <&pinmux_swo>; 335 pinctrl-names = "default"; 336}; 337 338&pxp { 339 status = "okay"; 340}; 341