1/* 2 * Copyright 2023 NXP 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7/dts-v1/; 8 9#include <nxp/nxp_rt11xx_cm7.dtsi> 10#include <zephyr/dt-bindings/led/led.h> 11#include "vmu_rt1170.dtsi" 12#include <zephyr/dt-bindings/input/input-event-codes.h> 13 14/ { 15 model = "NXP VMU RT1170"; 16 compatible = "nxp,mimxrt1176"; 17 18 aliases { 19 led0 = &green_led; 20 led1 = &red_led; 21 watchdog0 = &wdog1; 22 sdhc0 = &usdhc1; 23 sw0 = &arming_button; 24 pwm-led0 = &buzzer0; 25 mcuboot-button0 = &arming_button; 26 }; 27 28 chosen { 29 zephyr,sram = &ocram1; /* TODO Merge with other OCRAM */ 30 zephyr,sram1 = &ocram2; /* TODO Merge with other OCRAM */ 31 zephyr,dtcm = &dtcm; 32 zephyr,itcm = &itcm; 33 zephyr,console = &lpuart1; 34 zephyr,shell-uart = &lpuart1; 35 zephyr,canbus = &flexcan1; 36 zephyr,flash-controller = &mx25um51345g; 37 zephyr,flash = &mx25um51345g; 38 zephyr,code-partition = &slot0_partition; 39 zephyr,uart-mcumgr = &lpuart1; 40 }; 41 42 /* This is the Arming Button on the included GPS module for 10 pin JST-GH */ 43 gpio_keys { 44 compatible = "gpio-keys"; 45 arming_button: button_0 { 46 label = "Arming Switch"; 47 gpios = <&gpio1 24 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>; 48 zephyr,code = <INPUT_KEY_0>; 49 }; 50 }; 51 52 /* This regulator controls VDD_5V_PERIPH onboard supply */ 53 reg-5v-periph { 54 compatible = "regulator-fixed"; 55 regulator-name = "reg-5v-periph"; 56 enable-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>; 57 regulator-always-on; 58 status = "okay"; 59 }; 60 61 /* This regulator controls VDD_5V_HIPOWER onboard supply */ 62 reg-5v-hipower { 63 compatible = "regulator-fixed"; 64 regulator-name = "reg-5v-hipower"; 65 enable-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>; 66 regulator-always-on; 67 status = "okay"; 68 }; 69 70 /* This regulator controls the VDD_3V3_SENSORS1 onboard supply. */ 71 reg-3v3-sensors-1 { 72 compatible = "regulator-fixed"; 73 regulator-name = "reg-3v3-sensors-1"; 74 enable-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>; 75 startup-delay-us = <2000>; 76 regulator-always-on; 77 status = "okay"; 78 }; 79 80 /* This regulator controls the VDD_3V3_SENSORS2 onboard supply. */ 81 reg-3v3-sensors-2 { 82 compatible = "regulator-fixed"; 83 regulator-name = "reg-3v3-sensors-2"; 84 enable-gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>; 85 startup-delay-us = <2000>; 86 regulator-always-on; 87 status = "okay"; 88 }; 89 90 /* This regulator controls the VDD_3V3_SENSORS3 onboard supply. */ 91 reg-3v3-sensors-3 { 92 compatible = "regulator-fixed"; 93 regulator-name = "reg-3v3-sensors-3"; 94 enable-gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>; 95 startup-delay-us = <2000>; 96 regulator-always-on; 97 status = "okay"; 98 }; 99 100 /* This regulator controls the VDD_3V3_SENSORS4 onboard supply. */ 101 reg-3v3-sensors-4 { 102 compatible = "regulator-fixed"; 103 regulator-name = "reg-3v3-sensors-4"; 104 enable-gpios = <&gpio2 4 GPIO_ACTIVE_HIGH>; 105 startup-delay-us = <2000>; 106 regulator-always-on; 107 status = "okay"; 108 }; 109 110 /* This regulator controls VDD_3V3_SPEKTRUM onboard supply */ 111 reg-3v3-spektrum { 112 compatible = "regulator-fixed"; 113 regulator-name = "reg-3v3-spektrum"; 114 enable-gpios = <&gpio2 6 GPIO_ACTIVE_HIGH>; 115 regulator-always-on; 116 status = "okay"; 117 }; 118 119 /* This regulator controls ETH_VDD_3V3 supply to power up the TJA1103 PHY */ 120 reg-eth-power { 121 compatible = "regulator-fixed"; 122 regulator-name = "reg-eth-power"; 123 enable-gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>; 124 regulator-always-on; 125 status = "okay"; 126 }; 127 128 pwm_shell: pwm_shell { 129 compatible = "pwm-leds"; 130 buzzer0: buzzer0 { 131 pwms = <&qtmr1 0 PWM_HZ(50) PWM_POLARITY_NORMAL>; 132 }; 133 }; 134}; 135 136 137&gpio1 { 138 status = "okay"; 139}; 140 141&gpio2 { 142 status = "okay"; 143}; 144 145&gpio3 { 146 status = "okay"; 147}; 148 149&gpio4 { 150 status = "okay"; 151}; 152 153&gpio5 { 154 status = "okay"; 155}; 156 157&gpio6 { 158 status = "okay"; 159}; 160 161&gpio7 { 162 status = "okay"; 163}; 164 165&gpio8 { 166 status = "okay"; 167}; 168 169&gpio9 { 170 status = "okay"; 171}; 172 173&lpuart1 { 174 status = "okay"; 175 current-speed = <115200>; 176}; 177 178&lpuart4 { 179 status = "okay"; 180 current-speed = <115200>; 181}; 182 183&lpuart6 { 184 status = "okay"; 185 single-wire; 186 rx-invert; 187 188 sbus { 189 compatible = "futaba,sbus"; 190 right_stick_x { 191 channel = <1>; 192 type = <INPUT_EV_ABS>; 193 zephyr,code = <INPUT_ABS_RX>; 194 }; 195 right_stick_y { 196 channel = <2>; 197 type = <INPUT_EV_ABS>; 198 zephyr,code = <INPUT_ABS_RY>; 199 }; 200 left_stick_y { 201 channel = <3>; 202 type = <INPUT_EV_ABS>; 203 zephyr,code = <INPUT_ABS_Y>; 204 }; 205 left_stick_x { 206 channel = <4>; 207 type = <INPUT_EV_ABS>; 208 zephyr,code = <INPUT_ABS_X>; 209 }; 210 kill_switch { 211 channel = <5>; 212 type = <INPUT_EV_KEY>; 213 zephyr,code = <INPUT_KEY_0>; 214 }; 215 }; 216}; 217 218 219&flexcan1 { 220 status = "okay"; 221 pinctrl-0 = <&pinmux_flexcan1>; 222 pinctrl-names = "default"; 223 can-transceiver { 224 max-bitrate = <5000000>; 225 }; 226}; 227 228&flexcan2 { 229 status = "okay"; 230 pinctrl-0 = <&pinmux_flexcan2>; 231 pinctrl-names = "default"; 232 can-transceiver { 233 max-bitrate = <5000000>; 234 }; 235}; 236 237&flexcan3 { 238 status = "okay"; 239 pinctrl-0 = <&pinmux_flexcan3>; 240 pinctrl-names = "default"; 241 can-transceiver { 242 max-bitrate = <5000000>; 243 }; 244}; 245 246#include <zephyr/dt-bindings/sensor/icm42688.h> 247 248&lpspi1 { 249 status = "okay"; 250 cs-gpios =<&gpio2 11 GPIO_ACTIVE_LOW>; 251 252 icm42688_0: icm42688p0@0 { 253 compatible = "invensense,icm42688"; 254 reg = <0>; 255 int-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>; 256 spi-max-frequency = <24000000>; 257 accel-pwr-mode = <ICM42688_DT_ACCEL_LN>; 258 accel-odr = <ICM42688_DT_ACCEL_ODR_1000>; 259 accel-fs = <ICM42688_DT_ACCEL_FS_16>; 260 gyro-pwr-mode = <ICM42688_DT_GYRO_LN>; 261 gyro-odr = <ICM42688_DT_GYRO_ODR_1000>; 262 gyro-fs = <ICM42688_DT_GYRO_FS_2000>; 263 }; 264}; 265 266&lpspi2 { 267 status = "okay"; 268 cs-gpios =<&gpio3 24 GPIO_ACTIVE_LOW>; 269 270 icm42688_1: icm42688p1@0 { 271 compatible = "invensense,icm42688"; 272 reg = <0>; 273 int-gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>; 274 spi-max-frequency = <24000000>; 275 accel-pwr-mode = <ICM42688_DT_ACCEL_LN>; 276 accel-odr = <ICM42688_DT_ACCEL_ODR_1000>; 277 accel-fs = <ICM42688_DT_ACCEL_FS_16>; 278 gyro-pwr-mode = <ICM42688_DT_GYRO_LN>; 279 gyro-odr = <ICM42688_DT_GYRO_ODR_1000>; 280 gyro-fs = <ICM42688_DT_GYRO_FS_2000>; 281 }; 282}; 283 284&lpspi3 { 285 status = "okay"; 286 cs-gpios = <&gpio2 15 GPIO_ACTIVE_LOW>, 287 <&gpio2 18 GPIO_ACTIVE_LOW>; 288 289 290 bmi08x_accel: bmi08x@0 { 291 compatible = "bosch,bmi08x-accel"; 292 reg = <0>; 293 int-gpios = <&gpio3 20 GPIO_ACTIVE_HIGH>; 294 spi-max-frequency = <10000000>; 295 int1-map-io = <0x01>; 296 int2-map-io = <0x00>; 297 int1-conf-io = <0x04>; 298 int2-conf-io = <0x00>; 299 accel-hz = "800"; 300 accel-fs = <24>; 301 }; 302 303 bmi08x_gyro: bmi08x@1 { 304 compatible = "bosch,bmi08x-gyro"; 305 reg = <1>; 306 int-gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>; 307 spi-max-frequency = <10000000>; 308 int3-4-map-io = <0x01>; 309 int3-4-conf-io = <0x02>; 310 gyro-hz = "1000_116"; 311 gyro-fs = <1000>; 312 }; 313}; 314 315&lpspi6 { 316 status = "okay"; 317}; 318 319&lpi2c1 { 320 status = "okay"; 321 322 ist8310: ist8310@e { 323 compatible = "isentek,ist8310"; 324 reg = <0xe>; 325 326 }; 327 328 ncp5623c: ncp5623c@39 { 329 compatible = "onnn,ncp5623c"; 330 reg = <0x39>; 331 332 led_0 { 333 label = "GNSS LED"; 334 index = <0>; 335 color-mapping = 336 <LED_COLOR_ID_RED>, 337 <LED_COLOR_ID_GREEN>, 338 <LED_COLOR_ID_BLUE>; 339 }; 340 }; 341}; 342 343&lpi2c2 { 344 status = "okay"; 345 clock-frequency = <I2C_BITRATE_FAST>; 346 347 bmp388_0: bmp388@76 { 348 compatible = "bosch,bmp388"; 349 int-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>; 350 reg = <0x76>; 351 status = "okay"; 352 odr = "50"; 353 osr-press = <4>; 354 osr-temp = <2>; 355 }; 356}; 357 358&lpi2c3 { 359 status = "okay"; 360 clock-frequency = <I2C_BITRATE_FAST>; 361 362 bmm150: bmm150@10 { 363 compatible = "bosch,bmm150"; 364 status = "okay"; 365 reg = <0x10>; 366 }; 367 368 bmp388_1: bmp388@77 { 369 compatible = "bosch,bmp388"; 370 reg = <0x77>; 371 status = "okay"; 372 odr = "50"; 373 osr-press = <4>; 374 osr-temp = <2>; 375 }; 376}; 377 378&lpi2c6 { 379 status = "okay"; 380}; 381 382&flexpwm1_pwm0 { 383 status = "okay"; 384 pinctrl-0 = <&pinmux_flexpwm_vmu_ch1>; 385 pinctrl-names = "default"; 386 nxp,prescaler = <64>; 387}; 388 389&flexpwm1_pwm1 { 390 status = "okay"; 391 pinctrl-0 = <&pinmux_flexpwm_vmu_ch2>; 392 pinctrl-names = "default"; 393 nxp,prescaler = <64>; 394}; 395 396&flexpwm1_pwm2 { 397 status = "okay"; 398 pinctrl-0 = <&pinmux_flexpwm_vmu_ch3>; 399 pinctrl-names = "default"; 400 nxp,prescaler = <64>; 401}; 402 403&flexpwm2_pwm0 { 404 status = "okay"; 405 pinctrl-0 = <&pinmux_flexpwm_vmu_ch4>; 406 pinctrl-names = "default"; 407 nxp,prescaler = <64>; 408}; 409 410&flexpwm2_pwm1 { 411 status = "okay"; 412 pinctrl-0 = <&pinmux_flexpwm_vmu_ch5>; 413 pinctrl-names = "default"; 414 nxp,prescaler = <64>; 415}; 416 417&flexpwm2_pwm2 { 418 status = "okay"; 419 pinctrl-0 = <&pinmux_flexpwm_vmu_ch6>; 420 pinctrl-names = "default"; 421 nxp,prescaler = <64>; 422}; 423 424&flexpwm2_pwm3 { 425 status = "okay"; 426 pinctrl-0 = <&pinmux_flexpwm_vmu_ch7>; 427 pinctrl-names = "default"; 428 nxp,prescaler = <64>; 429}; 430 431&flexpwm3_pwm0 { 432 status = "okay"; 433 pinctrl-0 = <&pinmux_flexpwm_vmu_ch8>; 434 pinctrl-names = "default"; 435 nxp,prescaler = <64>; 436}; 437 438 439&gpt5 { 440 compatible = "nxp,gpt-ppm-input"; 441 pinctrl-0 = <&pinmux_gpt_ppm>; 442 pinctrl-names = "default"; 443 capture-channel = <1>; 444}; 445 446&qtmr1 { 447 compatible = "nxp,qtmr-pwm"; 448 pinctrl-0 = <&pinmux_qtmr_pwm_buzzer>; 449 pinctrl-names = "default"; 450 #pwm-cells = <3>; 451 prescaler = <128>; 452 status = "okay"; 453}; 454 455&usdhc1 { 456 status = "okay"; 457 no-1-8-v; 458 pwr-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>; 459 cd-gpios = <&gpio3 31 (GPIO_ACTIVE_LOW | GPIO_PULL_DOWN)>; 460 sdmmc { 461 compatible = "zephyr,sdmmc-disk"; 462 disk-name = "SD"; 463 status = "okay"; 464 }; 465}; 466 467&edma0 { 468 status = "okay"; 469}; 470 471&lpadc1 { 472 status = "okay"; 473}; 474 475/* GPT and Systick are enabled. If power management is enabled, the GPT 476 * timer will be used instead of systick, as allows the core clock to 477 * be gated. 478 */ 479&gpt_hw_timer { 480 status = "disabled"; 481}; 482 483&systick { 484 status = "okay"; 485}; 486 487&wdog1 { 488 status = "okay"; 489}; 490 491&enet1g { 492 status = "okay"; 493}; 494 495&enet1g_mac { 496 status = "okay"; 497}; 498 499&enet1g_mdio { 500 status = "okay"; 501 enet1g_phy: phy@1 { 502 status = "okay"; 503 int-gpios = <&gpio5 10 GPIO_ACTIVE_HIGH>; 504 }; 505}; 506 507zephyr_udc0: &usb1 { 508 status = "okay"; 509}; 510