1*79f63593SJosua Mayer// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2*79f63593SJosua Mayer/* 3*79f63593SJosua Mayer * Device Tree file for SolidSense N8 Compact 4*79f63593SJosua Mayer * 5*79f63593SJosua Mayer * Copyright 2024 Josua Mayer <josua@solid-run.com> 6*79f63593SJosua Mayer */ 7*79f63593SJosua Mayer 8*79f63593SJosua Mayer/dts-v1/; 9*79f63593SJosua Mayer 10*79f63593SJosua Mayer#include <dt-bindings/leds/common.h> 11*79f63593SJosua Mayer 12*79f63593SJosua Mayer#include "imx8mn.dtsi" 13*79f63593SJosua Mayer 14*79f63593SJosua Mayer/ { 15*79f63593SJosua Mayer compatible = "solidrun,solidsense-n8-compact", "fsl,imx8mn"; 16*79f63593SJosua Mayer model = "SolidRun SolidSense N8 Compact"; 17*79f63593SJosua Mayer 18*79f63593SJosua Mayer /* LED labels based on enclosure, schematic names differ. */ 19*79f63593SJosua Mayer leds { 20*79f63593SJosua Mayer compatible = "gpio-leds"; 21*79f63593SJosua Mayer pinctrl-0 = <&led_pins>; 22*79f63593SJosua Mayer pinctrl-names = "default"; 23*79f63593SJosua Mayer 24*79f63593SJosua Mayer /* D20 */ 25*79f63593SJosua Mayer led1 { 26*79f63593SJosua Mayer default-state = "off"; 27*79f63593SJosua Mayer gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>; 28*79f63593SJosua Mayer label = "led1"; 29*79f63593SJosua Mayer }; 30*79f63593SJosua Mayer 31*79f63593SJosua Mayer /* D18 */ 32*79f63593SJosua Mayer led2 { 33*79f63593SJosua Mayer default-state = "off"; 34*79f63593SJosua Mayer gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>; 35*79f63593SJosua Mayer label = "led2"; 36*79f63593SJosua Mayer }; 37*79f63593SJosua Mayer 38*79f63593SJosua Mayer /* D19 */ 39*79f63593SJosua Mayer led3 { 40*79f63593SJosua Mayer default-state = "off"; 41*79f63593SJosua Mayer gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>; 42*79f63593SJosua Mayer label = "led3"; 43*79f63593SJosua Mayer }; 44*79f63593SJosua Mayer }; 45*79f63593SJosua Mayer 46*79f63593SJosua Mayer aliases { 47*79f63593SJosua Mayer gpio5 = &expander; 48*79f63593SJosua Mayer rtc0 = &rtc; 49*79f63593SJosua Mayer rtc1 = &snvs_rtc; 50*79f63593SJosua Mayer usb0 = &usbotg1; 51*79f63593SJosua Mayer watchdog0 = &wdog1; 52*79f63593SJosua Mayer watchdog1 = &rtc; 53*79f63593SJosua Mayer }; 54*79f63593SJosua Mayer 55*79f63593SJosua Mayer chosen { 56*79f63593SJosua Mayer stdout-path = &uart2; 57*79f63593SJosua Mayer }; 58*79f63593SJosua Mayer 59*79f63593SJosua Mayer reg_modem_vbat: regulator-modem-vbat { 60*79f63593SJosua Mayer compatible = "regulator-fixed"; 61*79f63593SJosua Mayer regulator-name = "modem-vbat"; 62*79f63593SJosua Mayer pinctrl-0 = <®ulator_modem_vbat_pins>; 63*79f63593SJosua Mayer pinctrl-names = "default"; 64*79f63593SJosua Mayer regulator-always-on; 65*79f63593SJosua Mayer regulator-max-microvolt = <3800000>; 66*79f63593SJosua Mayer regulator-min-microvolt = <3800000>; 67*79f63593SJosua Mayer gpio = <&gpio3 25 GPIO_ACTIVE_HIGH>; 68*79f63593SJosua Mayer enable-active-high; 69*79f63593SJosua Mayer }; 70*79f63593SJosua Mayer 71*79f63593SJosua Mayer /* power to lte modems behind hub ports 2/3 */ 72*79f63593SJosua Mayer reg_modem_vbus: regulator-modem-vbus { 73*79f63593SJosua Mayer compatible = "regulator-fixed"; 74*79f63593SJosua Mayer regulator-name = "modem-vbus"; 75*79f63593SJosua Mayer pinctrl-0 = <®ulator_modem_vbus_pins>; 76*79f63593SJosua Mayer pinctrl-names = "default"; 77*79f63593SJosua Mayer regulator-always-on; 78*79f63593SJosua Mayer regulator-max-microvolt = <5000000>; 79*79f63593SJosua Mayer regulator-min-microvolt = <5000000>; 80*79f63593SJosua Mayer gpio = <&gpio5 4 GPIO_ACTIVE_HIGH>; 81*79f63593SJosua Mayer enable-active-high; 82*79f63593SJosua Mayer }; 83*79f63593SJosua Mayer 84*79f63593SJosua Mayer /* power to usb hub, and type-a behind hub port 1 */ 85*79f63593SJosua Mayer reg_usb1_vbus: regulator-usb1-vbus { 86*79f63593SJosua Mayer compatible = "regulator-fixed"; 87*79f63593SJosua Mayer regulator-name = "usb1-vbus"; 88*79f63593SJosua Mayer pinctrl-0 = <®ulator_usb1_vbus_pins>; 89*79f63593SJosua Mayer pinctrl-names = "default"; 90*79f63593SJosua Mayer regulator-max-microvolt = <5000000>; 91*79f63593SJosua Mayer regulator-min-microvolt = <5000000>; 92*79f63593SJosua Mayer gpio = <&gpio5 5 GPIO_ACTIVE_HIGH>; 93*79f63593SJosua Mayer enable-active-high; 94*79f63593SJosua Mayer }; 95*79f63593SJosua Mayer 96*79f63593SJosua Mayer reg_usdhc2_vmmc: regulator-usdhc2-vmmc { 97*79f63593SJosua Mayer compatible = "regulator-fixed"; 98*79f63593SJosua Mayer regulator-name = "usdhc2-vmmc"; 99*79f63593SJosua Mayer off-on-delay-us = <250>; 100*79f63593SJosua Mayer pinctrl-0 = <®ulator_usdhc2_vmmc_pins>; 101*79f63593SJosua Mayer pinctrl-names = "default"; 102*79f63593SJosua Mayer regulator-max-microvolt = <3300000>; 103*79f63593SJosua Mayer regulator-min-microvolt = <3300000>; 104*79f63593SJosua Mayer vin-supply = <®_vdd_3v3>; 105*79f63593SJosua Mayer gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>; 106*79f63593SJosua Mayer enable-active-high; 107*79f63593SJosua Mayer }; 108*79f63593SJosua Mayer 109*79f63593SJosua Mayer reg_vdd_1v8: regulator-vdd-1v8 { 110*79f63593SJosua Mayer compatible = "regulator-fixed"; 111*79f63593SJosua Mayer regulator-name = "vdd-1v8"; 112*79f63593SJosua Mayer regulator-max-microvolt = <1800000>; 113*79f63593SJosua Mayer regulator-min-microvolt = <1800000>; 114*79f63593SJosua Mayer }; 115*79f63593SJosua Mayer 116*79f63593SJosua Mayer reg_vdd_3v3: regulator-vdd-3v3 { 117*79f63593SJosua Mayer compatible = "regulator-fixed"; 118*79f63593SJosua Mayer regulator-name = "vdd-3v3"; 119*79f63593SJosua Mayer regulator-max-microvolt = <3300000>; 120*79f63593SJosua Mayer regulator-min-microvolt = <3300000>; 121*79f63593SJosua Mayer }; 122*79f63593SJosua Mayer 123*79f63593SJosua Mayer rfkill { 124*79f63593SJosua Mayer compatible = "rfkill-gpio"; 125*79f63593SJosua Mayer /* rfkill-gpio inverts internally */ 126*79f63593SJosua Mayer shutdown-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; 127*79f63593SJosua Mayer label = "rfkill-wwan"; 128*79f63593SJosua Mayer pinctrl-0 = <&modem_pins>; 129*79f63593SJosua Mayer pinctrl-names = "default"; 130*79f63593SJosua Mayer radio-type = "wwan"; 131*79f63593SJosua Mayer }; 132*79f63593SJosua Mayer 133*79f63593SJosua Mayer usdhc1_pwrseq: usdhc1-pwrseq { 134*79f63593SJosua Mayer compatible = "mmc-pwrseq-simple"; 135*79f63593SJosua Mayer reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>; 136*79f63593SJosua Mayer }; 137*79f63593SJosua Mayer 138*79f63593SJosua Mayer memory@40000000 { 139*79f63593SJosua Mayer reg = <0x0 0x40000000 0 0x80000000>; 140*79f63593SJosua Mayer device_type = "memory"; 141*79f63593SJosua Mayer }; 142*79f63593SJosua Mayer}; 143*79f63593SJosua Mayer 144*79f63593SJosua Mayer&A53_0 { 145*79f63593SJosua Mayer cpu-supply = <&buck2_reg>; 146*79f63593SJosua Mayer}; 147*79f63593SJosua Mayer 148*79f63593SJosua Mayer&A53_1 { 149*79f63593SJosua Mayer cpu-supply = <&buck2_reg>; 150*79f63593SJosua Mayer}; 151*79f63593SJosua Mayer 152*79f63593SJosua Mayer&A53_2 { 153*79f63593SJosua Mayer cpu-supply = <&buck2_reg>; 154*79f63593SJosua Mayer}; 155*79f63593SJosua Mayer 156*79f63593SJosua Mayer&A53_3 { 157*79f63593SJosua Mayer cpu-supply = <&buck2_reg>; 158*79f63593SJosua Mayer}; 159*79f63593SJosua Mayer 160*79f63593SJosua Mayer&ddrc { 161*79f63593SJosua Mayer operating-points-v2 = <&ddrc_opp_table>; 162*79f63593SJosua Mayer 163*79f63593SJosua Mayer ddrc_opp_table: opp-table { 164*79f63593SJosua Mayer compatible = "operating-points-v2"; 165*79f63593SJosua Mayer 166*79f63593SJosua Mayer opp-266500000 { 167*79f63593SJosua Mayer opp-hz = /bits/ 64 <266500000>; 168*79f63593SJosua Mayer }; 169*79f63593SJosua Mayer 170*79f63593SJosua Mayer opp-600000000 { 171*79f63593SJosua Mayer opp-hz = /bits/ 64 <600000000>; 172*79f63593SJosua Mayer }; 173*79f63593SJosua Mayer }; 174*79f63593SJosua Mayer}; 175*79f63593SJosua Mayer 176*79f63593SJosua Mayer&ecspi2 { 177*79f63593SJosua Mayer /* native chip-select causes reading 0xffffffff */ 178*79f63593SJosua Mayer cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>; 179*79f63593SJosua Mayer num-cs = <1>; 180*79f63593SJosua Mayer pinctrl-0 = <&ecspi2_pins>; 181*79f63593SJosua Mayer pinctrl-names = "default"; 182*79f63593SJosua Mayer status = "okay"; 183*79f63593SJosua Mayer 184*79f63593SJosua Mayer can@0 { 185*79f63593SJosua Mayer compatible = "microchip,mcp2518fd"; 186*79f63593SJosua Mayer reg = <0>; 187*79f63593SJosua Mayer interrupt-parent = <&gpio5>; 188*79f63593SJosua Mayer interrupts = <1 IRQ_TYPE_EDGE_FALLING>; 189*79f63593SJosua Mayer clocks = <&clk IMX8MN_CLK_CLKOUT1>; 190*79f63593SJosua Mayer /* generate 8MHz clock from soc-internal 24mhz reference */ 191*79f63593SJosua Mayer assigned-clock-parents = <&clk IMX8MN_CLK_24M>, <0>; 192*79f63593SJosua Mayer assigned-clock-rates = <0>, <8000000>; 193*79f63593SJosua Mayer assigned-clocks = <&clk IMX8MN_CLK_CLKOUT1_SEL>, 194*79f63593SJosua Mayer <&clk IMX8MN_CLK_CLKOUT1_DIV>; 195*79f63593SJosua Mayer pinctrl-0 = <&can_pins>; 196*79f63593SJosua Mayer pinctrl-names = "default"; 197*79f63593SJosua Mayer spi-max-frequency = <20000000>; 198*79f63593SJosua Mayer }; 199*79f63593SJosua Mayer}; 200*79f63593SJosua Mayer 201*79f63593SJosua Mayer&fec1 { 202*79f63593SJosua Mayer phy-handle = <&phy4>; 203*79f63593SJosua Mayer phy-mode = "rgmii-id"; 204*79f63593SJosua Mayer pinctrl-0 = <&fec1_pins>; 205*79f63593SJosua Mayer pinctrl-names = "default"; 206*79f63593SJosua Mayer status = "okay"; 207*79f63593SJosua Mayer 208*79f63593SJosua Mayer mdio { 209*79f63593SJosua Mayer #address-cells = <1>; 210*79f63593SJosua Mayer #size-cells = <0>; 211*79f63593SJosua Mayer 212*79f63593SJosua Mayer /* 213*79f63593SJosua Mayer * Depending on board revision two different phys are used: 214*79f63593SJosua Mayer * - v1.1: atheros phy at address 4 215*79f63593SJosua Mayer * - v1.2+: analog devices phy at address 0 216*79f63593SJosua Mayer * Configure first version by default. 217*79f63593SJosua Mayer * On v1.2 and later, U-Boot will enable the correct phy 218*79f63593SJosua Mayer * based on runtime detection and patch dtb accordingly. 219*79f63593SJosua Mayer */ 220*79f63593SJosua Mayer 221*79f63593SJosua Mayer /* ADIN1300 */ 222*79f63593SJosua Mayer phy0: ethernet-phy@0 { 223*79f63593SJosua Mayer reg = <0>; 224*79f63593SJosua Mayer interrupt-parent = <&gpio1>; 225*79f63593SJosua Mayer interrupts = <10 IRQ_TYPE_LEVEL_LOW>; 226*79f63593SJosua Mayer reset-assert-us = <10>; 227*79f63593SJosua Mayer reset-deassert-us = <5000>; 228*79f63593SJosua Mayer reset-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>; 229*79f63593SJosua Mayer adi,led-polarity = <GPIO_ACTIVE_LOW>; 230*79f63593SJosua Mayer adi,link-st-polarity = <GPIO_ACTIVE_LOW>; 231*79f63593SJosua Mayer status = "disabled"; 232*79f63593SJosua Mayer 233*79f63593SJosua Mayer leds { 234*79f63593SJosua Mayer #address-cells = <1>; 235*79f63593SJosua Mayer #size-cells = <0>; 236*79f63593SJosua Mayer 237*79f63593SJosua Mayer led@0 { 238*79f63593SJosua Mayer reg = <0>; 239*79f63593SJosua Mayer active-low; 240*79f63593SJosua Mayer color = <LED_COLOR_ID_YELLOW>; 241*79f63593SJosua Mayer default-state = "keep"; 242*79f63593SJosua Mayer function = LED_FUNCTION_LAN; 243*79f63593SJosua Mayer }; 244*79f63593SJosua Mayer }; 245*79f63593SJosua Mayer }; 246*79f63593SJosua Mayer 247*79f63593SJosua Mayer /* AR8035 */ 248*79f63593SJosua Mayer phy4: ethernet-phy@4 { 249*79f63593SJosua Mayer reg = <4>; 250*79f63593SJosua Mayer reset-assert-us = <10000>; 251*79f63593SJosua Mayer reset-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>; 252*79f63593SJosua Mayer status = "okay"; 253*79f63593SJosua Mayer }; 254*79f63593SJosua Mayer }; 255*79f63593SJosua Mayer}; 256*79f63593SJosua Mayer 257*79f63593SJosua Mayer&gpio5 { 258*79f63593SJosua Mayer usb-hub-reset-hog { 259*79f63593SJosua Mayer line-name = "usb-hub-reset"; 260*79f63593SJosua Mayer gpios = <3 GPIO_ACTIVE_LOW>; 261*79f63593SJosua Mayer gpio-hog; 262*79f63593SJosua Mayer /* deasserted */ 263*79f63593SJosua Mayer output-low; 264*79f63593SJosua Mayer }; 265*79f63593SJosua Mayer}; 266*79f63593SJosua Mayer 267*79f63593SJosua Mayer&i2c1 { 268*79f63593SJosua Mayer pinctrl-0 = <&i2c1_pins>; 269*79f63593SJosua Mayer pinctrl-names = "default"; 270*79f63593SJosua Mayer status = "okay"; 271*79f63593SJosua Mayer 272*79f63593SJosua Mayer pmic@4b { 273*79f63593SJosua Mayer compatible = "rohm,bd71847"; 274*79f63593SJosua Mayer reg = <0x4b>; 275*79f63593SJosua Mayer interrupt-parent = <&gpio1>; 276*79f63593SJosua Mayer interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 277*79f63593SJosua Mayer clocks = <&osc_32k>; 278*79f63593SJosua Mayer #clock-cells = <0>; 279*79f63593SJosua Mayer clock-output-names = "clk-32k-out"; 280*79f63593SJosua Mayer pinctrl-0 = <&pmic_pins>; 281*79f63593SJosua Mayer pinctrl-names = "default"; 282*79f63593SJosua Mayer rohm,reset-snvs-powered; 283*79f63593SJosua Mayer 284*79f63593SJosua Mayer regulators { 285*79f63593SJosua Mayer BUCK1 { 286*79f63593SJosua Mayer regulator-always-on; 287*79f63593SJosua Mayer regulator-boot-on; 288*79f63593SJosua Mayer regulator-max-microvolt = <1300000>; 289*79f63593SJosua Mayer regulator-min-microvolt = <700000>; 290*79f63593SJosua Mayer regulator-ramp-delay = <1250>; 291*79f63593SJosua Mayer // supplies soc vdd, soc mipi vdd @ 0.9V 292*79f63593SJosua Mayer regulator-name = "buck1"; 293*79f63593SJosua Mayer rohm,dvs-run-voltage = <850000>; 294*79f63593SJosua Mayer rohm,dvs-suspend-voltage = <750000>; 295*79f63593SJosua Mayer }; 296*79f63593SJosua Mayer 297*79f63593SJosua Mayer buck2_reg: BUCK2 { 298*79f63593SJosua Mayer regulator-name = "buck2"; 299*79f63593SJosua Mayer regulator-always-on; 300*79f63593SJosua Mayer regulator-boot-on; 301*79f63593SJosua Mayer regulator-max-microvolt = <1300000>; 302*79f63593SJosua Mayer regulator-min-microvolt = <700000>; 303*79f63593SJosua Mayer regulator-ramp-delay = <1250>; 304*79f63593SJosua Mayer rohm,dvs-idle-voltage = <900000>; 305*79f63593SJosua Mayer rohm,dvs-run-voltage = <1000000>; 306*79f63593SJosua Mayer rohm,dvs-suspend-voltage = <0>; 307*79f63593SJosua Mayer }; 308*79f63593SJosua Mayer 309*79f63593SJosua Mayer BUCK3 { 310*79f63593SJosua Mayer // BUCK5 in datasheet 311*79f63593SJosua Mayer // output floating 312*79f63593SJosua Mayer regulator-name = "buck3"; 313*79f63593SJosua Mayer regulator-max-microvolt = <1350000>; 314*79f63593SJosua Mayer regulator-min-microvolt = <700000>; 315*79f63593SJosua Mayer }; 316*79f63593SJosua Mayer 317*79f63593SJosua Mayer BUCK4 { 318*79f63593SJosua Mayer regulator-always-on; 319*79f63593SJosua Mayer regulator-boot-on; 320*79f63593SJosua Mayer regulator-max-microvolt = <3300000>; 321*79f63593SJosua Mayer regulator-min-microvolt = <3000000>; 322*79f63593SJosua Mayer // BUCK6 in datasheet 323*79f63593SJosua Mayer // supplies ldo3, ldo5, muxsw 324*79f63593SJosua Mayer regulator-name = "buck4"; 325*79f63593SJosua Mayer }; 326*79f63593SJosua Mayer 327*79f63593SJosua Mayer BUCK5 { 328*79f63593SJosua Mayer regulator-always-on; 329*79f63593SJosua Mayer regulator-boot-on; 330*79f63593SJosua Mayer regulator-max-microvolt = <1995000>; 331*79f63593SJosua Mayer regulator-min-microvolt = <1605000>; 332*79f63593SJosua Mayer // BUCK7 in datasheet 333*79f63593SJosua Mayer // supplies ldo4, ldo6, muxsw 334*79f63593SJosua Mayer // enables dram vpp @ 2.5V 335*79f63593SJosua Mayer regulator-name = "buck5"; 336*79f63593SJosua Mayer }; 337*79f63593SJosua Mayer 338*79f63593SJosua Mayer BUCK6 { 339*79f63593SJosua Mayer // BUCK8 in datasheet 340*79f63593SJosua Mayer // supplies dram @ 1.2V 341*79f63593SJosua Mayer regulator-name = "buck6"; 342*79f63593SJosua Mayer regulator-always-on; 343*79f63593SJosua Mayer regulator-boot-on; 344*79f63593SJosua Mayer regulator-max-microvolt = <1400000>; 345*79f63593SJosua Mayer regulator-min-microvolt = <800000>; 346*79f63593SJosua Mayer }; 347*79f63593SJosua Mayer 348*79f63593SJosua Mayer LDO1 { 349*79f63593SJosua Mayer // supplies soc snvs @ 1.8V 350*79f63593SJosua Mayer regulator-name = "ldo1"; 351*79f63593SJosua Mayer regulator-always-on; 352*79f63593SJosua Mayer regulator-boot-on; 353*79f63593SJosua Mayer regulator-max-microvolt = <3300000>; 354*79f63593SJosua Mayer regulator-min-microvolt = <1600000>; 355*79f63593SJosua Mayer }; 356*79f63593SJosua Mayer 357*79f63593SJosua Mayer LDO2 { 358*79f63593SJosua Mayer // supplies soc snvs @ 0.8V 359*79f63593SJosua Mayer regulator-name = "ldo2"; 360*79f63593SJosua Mayer regulator-always-on; 361*79f63593SJosua Mayer regulator-boot-on; 362*79f63593SJosua Mayer regulator-max-microvolt = <900000>; 363*79f63593SJosua Mayer regulator-min-microvolt = <800000>; 364*79f63593SJosua Mayer }; 365*79f63593SJosua Mayer 366*79f63593SJosua Mayer LDO3 { 367*79f63593SJosua Mayer // supplies soc vdd @ 1.8V 368*79f63593SJosua Mayer regulator-name = "ldo3"; 369*79f63593SJosua Mayer regulator-always-on; 370*79f63593SJosua Mayer regulator-boot-on; 371*79f63593SJosua Mayer regulator-max-microvolt = <3300000>; 372*79f63593SJosua Mayer regulator-min-microvolt = <1800000>; 373*79f63593SJosua Mayer }; 374*79f63593SJosua Mayer 375*79f63593SJosua Mayer LDO4 { 376*79f63593SJosua Mayer // output floating 377*79f63593SJosua Mayer regulator-name = "ldo4"; 378*79f63593SJosua Mayer regulator-max-microvolt = <1800000>; 379*79f63593SJosua Mayer regulator-min-microvolt = <900000>; 380*79f63593SJosua Mayer }; 381*79f63593SJosua Mayer 382*79f63593SJosua Mayer LDO5 { 383*79f63593SJosua Mayer // output floating 384*79f63593SJosua Mayer regulator-name = "ldo5"; 385*79f63593SJosua Mayer regulator-max-microvolt = <3300000>; 386*79f63593SJosua Mayer regulator-min-microvolt = <800000>; 387*79f63593SJosua Mayer }; 388*79f63593SJosua Mayer 389*79f63593SJosua Mayer LDO6 { 390*79f63593SJosua Mayer // supplies soc vdd mipi @ 1.2V 391*79f63593SJosua Mayer regulator-name = "ldo6"; 392*79f63593SJosua Mayer regulator-always-on; 393*79f63593SJosua Mayer regulator-boot-on; 394*79f63593SJosua Mayer regulator-max-microvolt = <1800000>; 395*79f63593SJosua Mayer regulator-min-microvolt = <900000>; 396*79f63593SJosua Mayer }; 397*79f63593SJosua Mayer }; 398*79f63593SJosua Mayer }; 399*79f63593SJosua Mayer}; 400*79f63593SJosua Mayer 401*79f63593SJosua Mayer&i2c2 { 402*79f63593SJosua Mayer /* 403*79f63593SJosua Mayer * routed to various connectors: 404*79f63593SJosua Mayer * - basler camera (CON2) 405*79f63593SJosua Mayer * - touchscreen (J3) 406*79f63593SJosua Mayer * - expansion connector (J14) 407*79f63593SJosua Mayer */ 408*79f63593SJosua Mayer pinctrl-names = "default"; 409*79f63593SJosua Mayer pinctrl-0 = <&i2c2_pins>; 410*79f63593SJosua Mayer status = "okay"; 411*79f63593SJosua Mayer}; 412*79f63593SJosua Mayer 413*79f63593SJosua Mayer&i2c3 { 414*79f63593SJosua Mayer pinctrl-0 = <&i2c3_pins>; 415*79f63593SJosua Mayer pinctrl-names = "default"; 416*79f63593SJosua Mayer status = "okay"; 417*79f63593SJosua Mayer 418*79f63593SJosua Mayer expander: gpio@20 { 419*79f63593SJosua Mayer compatible = "ti,tca6408"; 420*79f63593SJosua Mayer reg = <0x20>; 421*79f63593SJosua Mayer #interrupt-cells = <2>; 422*79f63593SJosua Mayer interrupt-controller; 423*79f63593SJosua Mayer interrupt-parent = <&gpio2>; 424*79f63593SJosua Mayer interrupts = <11 IRQ_TYPE_EDGE_FALLING>; 425*79f63593SJosua Mayer #gpio-cells = <2>; 426*79f63593SJosua Mayer gpio-controller; 427*79f63593SJosua Mayer gpio-line-names = "SYSGD", "PFO#", "CAPGD", "CAPFLT#", 428*79f63593SJosua Mayer "CHGEN#", "BSTEN#", "", ""; 429*79f63593SJosua Mayer pinctrl-0 = <&gpio_expander_pins>; 430*79f63593SJosua Mayer pinctrl-names = "default"; 431*79f63593SJosua Mayer reset-gpios = <&gpio3 16 GPIO_ACTIVE_LOW>; 432*79f63593SJosua Mayer }; 433*79f63593SJosua Mayer 434*79f63593SJosua Mayer light-sensor@44 { 435*79f63593SJosua Mayer compatible = "isil,isl29023"; 436*79f63593SJosua Mayer reg = <0x44>; 437*79f63593SJosua Mayer }; 438*79f63593SJosua Mayer 439*79f63593SJosua Mayer accelerometer@53 { 440*79f63593SJosua Mayer compatible = "adi,adxl345"; 441*79f63593SJosua Mayer reg = <0x53>; 442*79f63593SJosua Mayer }; 443*79f63593SJosua Mayer 444*79f63593SJosua Mayer /* battery-charger@68 */ 445*79f63593SJosua Mayer 446*79f63593SJosua Mayer rtc: rtc@69 { 447*79f63593SJosua Mayer compatible = "abracon,abx80x"; 448*79f63593SJosua Mayer reg = <0x69>; 449*79f63593SJosua Mayer interrupt-parent = <&gpio1>; 450*79f63593SJosua Mayer interrupts = <1 IRQ_TYPE_EDGE_FALLING>; 451*79f63593SJosua Mayer pinctrl-0 = <&rtc_pins>; 452*79f63593SJosua Mayer pinctrl-names = "default"; 453*79f63593SJosua Mayer abracon,tc-diode = "schottky"; 454*79f63593SJosua Mayer abracon,tc-resistor = <3>; 455*79f63593SJosua Mayer }; 456*79f63593SJosua Mayer}; 457*79f63593SJosua Mayer 458*79f63593SJosua Mayer&i2c4 { 459*79f63593SJosua Mayer /* routed to expansion connector (J14) */ 460*79f63593SJosua Mayer pinctrl-names = "default"; 461*79f63593SJosua Mayer pinctrl-0 = <&i2c4_pins>; 462*79f63593SJosua Mayer status = "okay"; 463*79f63593SJosua Mayer}; 464*79f63593SJosua Mayer 465*79f63593SJosua Mayer&iomuxc { 466*79f63593SJosua Mayer pinctrl-0 = <&tamper_pins>, <&usb_hub_pins>; 467*79f63593SJosua Mayer pinctrl-names = "default"; 468*79f63593SJosua Mayer 469*79f63593SJosua Mayer can_pins: pinctrl-can-grp { 470*79f63593SJosua Mayer fsl,pins = < 471*79f63593SJosua Mayer MX8MN_IOMUXC_SAI3_TXD_GPIO5_IO1 0x140 472*79f63593SJosua Mayer >; 473*79f63593SJosua Mayer }; 474*79f63593SJosua Mayer 475*79f63593SJosua Mayer ecspi2_pins: pinctrl-ecspi2-grp { 476*79f63593SJosua Mayer fsl,pins = < 477*79f63593SJosua Mayer MX8MN_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0x96 478*79f63593SJosua Mayer MX8MN_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI 0x1d6 479*79f63593SJosua Mayer MX8MN_IOMUXC_ECSPI2_MISO_ECSPI2_MISO 0x1d6 480*79f63593SJosua Mayer MX8MN_IOMUXC_ECSPI2_SS0_GPIO5_IO13 0x1d6 481*79f63593SJosua Mayer >; 482*79f63593SJosua Mayer }; 483*79f63593SJosua Mayer 484*79f63593SJosua Mayer fec1_pins: pinctrl-fec1-grp { 485*79f63593SJosua Mayer /* 486*79f63593SJosua Mayer * Some pins are sampled at phy reset to apply configuration: 487*79f63593SJosua Mayer * - AR803x PHY (revision 1.1) 488*79f63593SJosua Mayer * - RXD[1:0]: phy address bits [1:0] 489*79f63593SJosua Mayer * - RXD[3:2],RX_CTL: mac interface select bits 3,1,0 490*79f63593SJosua Mayer * - ADIN1300 PHY (revision 1.2 or later) 491*79f63593SJosua Mayer * - RXD[3:0]: phy address bits [3:0] 492*79f63593SJosua Mayer * - RX_CTL,RXC: mac interface select bits 1,0 493*79f63593SJosua Mayer * SoC enables pull-down at reset, PHYs have internal 494*79f63593SJosua Mayer * pull-down, so pinmux may unset pull-enable. 495*79f63593SJosua Mayer */ 496*79f63593SJosua Mayer fsl,pins = < 497*79f63593SJosua Mayer MX8MN_IOMUXC_ENET_MDC_ENET1_MDC 0x2 498*79f63593SJosua Mayer MX8MN_IOMUXC_ENET_MDIO_ENET1_MDIO 0x2 499*79f63593SJosua Mayer MX8MN_IOMUXC_ENET_TD3_ENET1_RGMII_TD3 0x1e 500*79f63593SJosua Mayer MX8MN_IOMUXC_ENET_TD2_ENET1_RGMII_TD2 0x1e 501*79f63593SJosua Mayer MX8MN_IOMUXC_ENET_TD1_ENET1_RGMII_TD1 0x1e 502*79f63593SJosua Mayer MX8MN_IOMUXC_ENET_TD0_ENET1_RGMII_TD0 0x1e 503*79f63593SJosua Mayer /* RD[3:0] sampled at phy reset for address bits [3:0] */ 504*79f63593SJosua Mayer MX8MN_IOMUXC_ENET_RD3_ENET1_RGMII_RD3 0x90 505*79f63593SJosua Mayer MX8MN_IOMUXC_ENET_RD2_ENET1_RGMII_RD2 0x90 506*79f63593SJosua Mayer MX8MN_IOMUXC_ENET_RD1_ENET1_RGMII_RD1 0x90 507*79f63593SJosua Mayer MX8MN_IOMUXC_ENET_RD0_ENET1_RGMII_RD0 0x90 508*79f63593SJosua Mayer MX8MN_IOMUXC_ENET_TXC_ENET1_RGMII_TXC 0x10 509*79f63593SJosua Mayer MX8MN_IOMUXC_ENET_RXC_ENET1_RGMII_RXC 0x90 510*79f63593SJosua Mayer MX8MN_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x90 511*79f63593SJosua Mayer MX8MN_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x10 512*79f63593SJosua Mayer /* phy reset */ 513*79f63593SJosua Mayer MX8MN_IOMUXC_SAI5_RXFS_GPIO3_IO19 0x0 514*79f63593SJosua Mayer /* phy interrupt */ 515*79f63593SJosua Mayer MX8MN_IOMUXC_GPIO1_IO10_GPIO1_IO10 0x140 516*79f63593SJosua Mayer >; 517*79f63593SJosua Mayer }; 518*79f63593SJosua Mayer 519*79f63593SJosua Mayer gpio_expander_pins: pinctrl-gpio-expander-grp { 520*79f63593SJosua Mayer fsl,pins = < 521*79f63593SJosua Mayer MX8MN_IOMUXC_NAND_READY_B_GPIO3_IO16 0x140 522*79f63593SJosua Mayer MX8MN_IOMUXC_SD1_STROBE_GPIO2_IO11 0x140 523*79f63593SJosua Mayer >; 524*79f63593SJosua Mayer }; 525*79f63593SJosua Mayer 526*79f63593SJosua Mayer i2c1_pins: pinctrl-i2c1-grp { 527*79f63593SJosua Mayer fsl,pins = < 528*79f63593SJosua Mayer MX8MN_IOMUXC_I2C1_SCL_I2C1_SCL 0x400001c2 529*79f63593SJosua Mayer MX8MN_IOMUXC_I2C1_SDA_I2C1_SDA 0x400001c2 530*79f63593SJosua Mayer >; 531*79f63593SJosua Mayer }; 532*79f63593SJosua Mayer 533*79f63593SJosua Mayer i2c2_pins: pinctrl-i2c2-grp { 534*79f63593SJosua Mayer fsl,pins = < 535*79f63593SJosua Mayer MX8MN_IOMUXC_I2C2_SCL_I2C2_SCL 0x400001c2 536*79f63593SJosua Mayer MX8MN_IOMUXC_I2C2_SDA_I2C2_SDA 0x400001c2 537*79f63593SJosua Mayer >; 538*79f63593SJosua Mayer }; 539*79f63593SJosua Mayer 540*79f63593SJosua Mayer i2c3_pins: pinctrl-i2c3-grp { 541*79f63593SJosua Mayer fsl,pins = < 542*79f63593SJosua Mayer MX8MN_IOMUXC_I2C3_SCL_I2C3_SCL 0x400001c2 543*79f63593SJosua Mayer MX8MN_IOMUXC_I2C3_SDA_I2C3_SDA 0x400001c2 544*79f63593SJosua Mayer >; 545*79f63593SJosua Mayer }; 546*79f63593SJosua Mayer 547*79f63593SJosua Mayer i2c4_pins: pinctrl-i2c4-grp { 548*79f63593SJosua Mayer fsl,pins = < 549*79f63593SJosua Mayer MX8MN_IOMUXC_I2C4_SCL_I2C4_SCL 0x400001c2 550*79f63593SJosua Mayer MX8MN_IOMUXC_I2C4_SDA_I2C4_SDA 0x400001c2 551*79f63593SJosua Mayer >; 552*79f63593SJosua Mayer }; 553*79f63593SJosua Mayer 554*79f63593SJosua Mayer ieee802151_radio_pins: pinctrl-ieee802151-radio-grp { 555*79f63593SJosua Mayer fsl,pins = < 556*79f63593SJosua Mayer /* RESETN */ 557*79f63593SJosua Mayer MX8MN_IOMUXC_GPIO1_IO05_GPIO1_IO5 0x0 558*79f63593SJosua Mayer /* VDD_EN */ 559*79f63593SJosua Mayer MX8MN_IOMUXC_GPIO1_IO06_GPIO1_IO6 0x0 560*79f63593SJosua Mayer /* SWDCLK */ 561*79f63593SJosua Mayer MX8MN_IOMUXC_GPIO1_IO14_GPIO1_IO14 0x0 562*79f63593SJosua Mayer /* SDIO */ 563*79f63593SJosua Mayer MX8MN_IOMUXC_GPIO1_IO15_GPIO1_IO15 0x0 564*79f63593SJosua Mayer >; 565*79f63593SJosua Mayer }; 566*79f63593SJosua Mayer 567*79f63593SJosua Mayer led_pins: pinctrl-led-grp { 568*79f63593SJosua Mayer fsl,pins = < 569*79f63593SJosua Mayer MX8MN_IOMUXC_GPIO1_IO11_GPIO1_IO11 0x100 570*79f63593SJosua Mayer MX8MN_IOMUXC_GPIO1_IO12_GPIO1_IO12 0x100 571*79f63593SJosua Mayer MX8MN_IOMUXC_GPIO1_IO13_GPIO1_IO13 0x100 572*79f63593SJosua Mayer >; 573*79f63593SJosua Mayer }; 574*79f63593SJosua Mayer 575*79f63593SJosua Mayer modem_pins: pinctrl-modem-grp { 576*79f63593SJosua Mayer fsl,pins = < 577*79f63593SJosua Mayer /* RESET_N: modem-internal pull-down */ 578*79f63593SJosua Mayer MX8MN_IOMUXC_GPIO1_IO07_GPIO1_IO7 0x0 579*79f63593SJosua Mayer /* PWRKEY: pull-down ensures always-on */ 580*79f63593SJosua Mayer MX8MN_IOMUXC_GPIO1_IO08_GPIO1_IO8 0x100 581*79f63593SJosua Mayer >; 582*79f63593SJosua Mayer }; 583*79f63593SJosua Mayer 584*79f63593SJosua Mayer pmic_pins: pinctrl-pmic-grp { 585*79f63593SJosua Mayer fsl,pins = < 586*79f63593SJosua Mayer MX8MN_IOMUXC_GPIO1_IO03_GPIO1_IO3 0x140 587*79f63593SJosua Mayer >; 588*79f63593SJosua Mayer }; 589*79f63593SJosua Mayer 590*79f63593SJosua Mayer regulator_modem_vbat_pins: pinctrl-regulator-modem-vbat-grp { 591*79f63593SJosua Mayer fsl,pins = < 592*79f63593SJosua Mayer MX8MN_IOMUXC_SAI5_MCLK_GPIO3_IO25 0x0 593*79f63593SJosua Mayer >; 594*79f63593SJosua Mayer }; 595*79f63593SJosua Mayer 596*79f63593SJosua Mayer regulator_modem_vbus_pins: pinctrl-regulator-modem-vbus-grp { 597*79f63593SJosua Mayer fsl,pins = < 598*79f63593SJosua Mayer MX8MN_IOMUXC_SPDIF_RX_GPIO5_IO4 0x0 599*79f63593SJosua Mayer >; 600*79f63593SJosua Mayer }; 601*79f63593SJosua Mayer 602*79f63593SJosua Mayer regulator_usb1_vbus_pins: pinctrl-regulator-usb1-vbus-grp { 603*79f63593SJosua Mayer fsl,pins = < 604*79f63593SJosua Mayer MX8MN_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5 0x0 605*79f63593SJosua Mayer >; 606*79f63593SJosua Mayer }; 607*79f63593SJosua Mayer 608*79f63593SJosua Mayer regulator_usdhc2_vmmc_pins: pinctrl-regulator-usdhc2-vmmc-grp { 609*79f63593SJosua Mayer fsl,pins = < 610*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x0 611*79f63593SJosua Mayer >; 612*79f63593SJosua Mayer }; 613*79f63593SJosua Mayer 614*79f63593SJosua Mayer rtc_pins: pinctrl-rtc-grp { 615*79f63593SJosua Mayer fsl,pins = < 616*79f63593SJosua Mayer MX8MN_IOMUXC_GPIO1_IO01_GPIO1_IO1 0x140 617*79f63593SJosua Mayer MX8MN_IOMUXC_SAI3_RXFS_GPIO4_IO28 0x100 618*79f63593SJosua Mayer >; 619*79f63593SJosua Mayer }; 620*79f63593SJosua Mayer 621*79f63593SJosua Mayer tamper_pins: pinctrl-tamper-grp { 622*79f63593SJosua Mayer /* 623*79f63593SJosua Mayer * Routed to physical tamper input (J12), 624*79f63593SJosua Mayer * accelerometer and light-sensor interrupts. 625*79f63593SJosua Mayer */ 626*79f63593SJosua Mayer fsl,pins = < 627*79f63593SJosua Mayer MX8MN_IOMUXC_GPIO1_IO09_GPIO1_IO9 0x140 628*79f63593SJosua Mayer >; 629*79f63593SJosua Mayer }; 630*79f63593SJosua Mayer 631*79f63593SJosua Mayer uart1_pins: pinctrl-uart1-grp { 632*79f63593SJosua Mayer fsl,pins = < 633*79f63593SJosua Mayer MX8MN_IOMUXC_UART1_RXD_UART1_DCE_RX 0x140 634*79f63593SJosua Mayer MX8MN_IOMUXC_UART1_TXD_UART1_DCE_TX 0x140 635*79f63593SJosua Mayer MX8MN_IOMUXC_UART3_RXD_UART1_DCE_CTS_B 0x140 636*79f63593SJosua Mayer MX8MN_IOMUXC_UART3_TXD_UART1_DCE_RTS_B 0x140 637*79f63593SJosua Mayer /* BT_REG_ON */ 638*79f63593SJosua Mayer MX8MN_IOMUXC_SD1_DATA4_GPIO2_IO6 0x0 639*79f63593SJosua Mayer /* BT_WAKE_DEV */ 640*79f63593SJosua Mayer MX8MN_IOMUXC_SD1_DATA5_GPIO2_IO7 0x0 641*79f63593SJosua Mayer /* BT_WAKE_HOST */ 642*79f63593SJosua Mayer MX8MN_IOMUXC_SD1_DATA6_GPIO2_IO8 0x100 643*79f63593SJosua Mayer >; 644*79f63593SJosua Mayer }; 645*79f63593SJosua Mayer 646*79f63593SJosua Mayer uart2_pins: pinctrl-uart2-grp { 647*79f63593SJosua Mayer fsl,pins = < 648*79f63593SJosua Mayer MX8MN_IOMUXC_UART2_RXD_UART2_DCE_RX 0x140 649*79f63593SJosua Mayer MX8MN_IOMUXC_UART2_TXD_UART2_DCE_TX 0x140 650*79f63593SJosua Mayer >; 651*79f63593SJosua Mayer }; 652*79f63593SJosua Mayer 653*79f63593SJosua Mayer uart3_pins: pinctrl-uart3-grp { 654*79f63593SJosua Mayer fsl,pins = < 655*79f63593SJosua Mayer MX8MN_IOMUXC_ECSPI1_MOSI_UART3_DTE_RX 0x140 656*79f63593SJosua Mayer MX8MN_IOMUXC_ECSPI1_SCLK_UART3_DTE_TX 0x140 657*79f63593SJosua Mayer MX8MN_IOMUXC_ECSPI1_MISO_UART3_DTE_RTS_B 0x140 658*79f63593SJosua Mayer MX8MN_IOMUXC_ECSPI1_SS0_UART3_DTE_CTS_B 0x140 659*79f63593SJosua Mayer >; 660*79f63593SJosua Mayer }; 661*79f63593SJosua Mayer 662*79f63593SJosua Mayer uart4_pins: pinctrl-uart4-grp { 663*79f63593SJosua Mayer fsl,pins = < 664*79f63593SJosua Mayer MX8MN_IOMUXC_UART4_RXD_UART4_DCE_RX 0x140 665*79f63593SJosua Mayer MX8MN_IOMUXC_UART4_TXD_UART4_DCE_TX 0x140 666*79f63593SJosua Mayer >; 667*79f63593SJosua Mayer }; 668*79f63593SJosua Mayer 669*79f63593SJosua Mayer usb_hub_pins: pinctrl-usb-hub-grp { 670*79f63593SJosua Mayer fsl,pins = < 671*79f63593SJosua Mayer MX8MN_IOMUXC_SPDIF_TX_GPIO5_IO3 0x0 672*79f63593SJosua Mayer >; 673*79f63593SJosua Mayer }; 674*79f63593SJosua Mayer 675*79f63593SJosua Mayer usdhc1_pins: pinctrl-usdhc1-grp { 676*79f63593SJosua Mayer fsl,pins = < 677*79f63593SJosua Mayer MX8MN_IOMUXC_SD1_CLK_USDHC1_CLK 0x190 678*79f63593SJosua Mayer MX8MN_IOMUXC_SD1_CMD_USDHC1_CMD 0x1d0 679*79f63593SJosua Mayer MX8MN_IOMUXC_SD1_DATA0_USDHC1_DATA0 0x1d0 680*79f63593SJosua Mayer MX8MN_IOMUXC_SD1_DATA1_USDHC1_DATA1 0x1d0 681*79f63593SJosua Mayer MX8MN_IOMUXC_SD1_DATA2_USDHC1_DATA2 0x1d0 682*79f63593SJosua Mayer MX8MN_IOMUXC_SD1_DATA3_USDHC1_DATA3 0x1d0 683*79f63593SJosua Mayer /* wifi refclk */ 684*79f63593SJosua Mayer MX8MN_IOMUXC_GPIO1_IO00_ANAMIX_REF_CLK_32K 0x0 685*79f63593SJosua Mayer /* WL_WAKE_HOST */ 686*79f63593SJosua Mayer MX8MN_IOMUXC_SD1_DATA7_GPIO2_IO9 0x100 687*79f63593SJosua Mayer /* WL_REG_ON */ 688*79f63593SJosua Mayer MX8MN_IOMUXC_SD1_RESET_B_GPIO2_IO10 0x0 689*79f63593SJosua Mayer >; 690*79f63593SJosua Mayer }; 691*79f63593SJosua Mayer 692*79f63593SJosua Mayer usdhc2_100mhz_pins: pinctrl-usdhc2-100mhz-grp { 693*79f63593SJosua Mayer fsl,pins = < 694*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK 0x194 695*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d4 696*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4 697*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4 698*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4 699*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4 700*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_CD_B_USDHC2_CD_B 0x0 701*79f63593SJosua Mayer /* usdhc2 signalling voltage pmic control */ 702*79f63593SJosua Mayer MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x140 703*79f63593SJosua Mayer >; 704*79f63593SJosua Mayer }; 705*79f63593SJosua Mayer 706*79f63593SJosua Mayer usdhc2_200mhz_pins: pinctrl-usdhc2-100mhz-grp { 707*79f63593SJosua Mayer fsl,pins = < 708*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK 0x196 709*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d6 710*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d6 711*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d6 712*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d6 713*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d6 714*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_CD_B_USDHC2_CD_B 0x0 715*79f63593SJosua Mayer /* usdhc2 signalling voltage pmic control */ 716*79f63593SJosua Mayer MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x140 717*79f63593SJosua Mayer >; 718*79f63593SJosua Mayer }; 719*79f63593SJosua Mayer 720*79f63593SJosua Mayer usdhc2_pins: pinctrl-usdhc2-grp { 721*79f63593SJosua Mayer fsl,pins = < 722*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK 0x190 723*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d0 724*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d0 725*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d0 726*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d0 727*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d0 728*79f63593SJosua Mayer MX8MN_IOMUXC_SD2_CD_B_USDHC2_CD_B 0x0 729*79f63593SJosua Mayer /* usdhc2 signalling voltage pmic control */ 730*79f63593SJosua Mayer MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x140 731*79f63593SJosua Mayer >; 732*79f63593SJosua Mayer }; 733*79f63593SJosua Mayer 734*79f63593SJosua Mayer usdhc3_pins: pinctrl-usdhc3-grp { 735*79f63593SJosua Mayer fsl,pins = < 736*79f63593SJosua Mayer MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK 0x190 737*79f63593SJosua Mayer MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d0 738*79f63593SJosua Mayer MX8MN_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d0 739*79f63593SJosua Mayer MX8MN_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d0 740*79f63593SJosua Mayer MX8MN_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d0 741*79f63593SJosua Mayer MX8MN_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d0 742*79f63593SJosua Mayer MX8MN_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d0 743*79f63593SJosua Mayer MX8MN_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d0 744*79f63593SJosua Mayer MX8MN_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d0 745*79f63593SJosua Mayer MX8MN_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d0 746*79f63593SJosua Mayer MX8MN_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x190 747*79f63593SJosua Mayer >; 748*79f63593SJosua Mayer }; 749*79f63593SJosua Mayer 750*79f63593SJosua Mayer wdog1_pins: pinctrl-wdog1-grp { 751*79f63593SJosua Mayer fsl,pins = < 752*79f63593SJosua Mayer MX8MN_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0x140 753*79f63593SJosua Mayer >; 754*79f63593SJosua Mayer }; 755*79f63593SJosua Mayer}; 756*79f63593SJosua Mayer 757*79f63593SJosua Mayer/* Bluetooth */ 758*79f63593SJosua Mayer&uart1 { 759*79f63593SJosua Mayer assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_80M>; 760*79f63593SJosua Mayer /* select 80MHz parent clock to support maximum baudrate 4Mbps */ 761*79f63593SJosua Mayer assigned-clocks = <&clk IMX8MN_CLK_UART1>; 762*79f63593SJosua Mayer pinctrl-0 = <&uart1_pins>; 763*79f63593SJosua Mayer pinctrl-names = "default"; 764*79f63593SJosua Mayer uart-has-rtscts; 765*79f63593SJosua Mayer status = "okay"; 766*79f63593SJosua Mayer 767*79f63593SJosua Mayer bluetooth { 768*79f63593SJosua Mayer compatible = "brcm,bcm4330-bt"; 769*79f63593SJosua Mayer device-wakeup-gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>; 770*79f63593SJosua Mayer host-wakeup-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>; 771*79f63593SJosua Mayer max-speed = <3000000>; 772*79f63593SJosua Mayer shutdown-gpios = <&gpio2 6 GPIO_ACTIVE_HIGH>; 773*79f63593SJosua Mayer }; 774*79f63593SJosua Mayer}; 775*79f63593SJosua Mayer 776*79f63593SJosua Mayer/* console */ 777*79f63593SJosua Mayer&uart2 { 778*79f63593SJosua Mayer pinctrl-0 = <&uart2_pins>; 779*79f63593SJosua Mayer pinctrl-names = "default"; 780*79f63593SJosua Mayer status = "okay"; 781*79f63593SJosua Mayer}; 782*79f63593SJosua Mayer 783*79f63593SJosua Mayer/* RS485 */ 784*79f63593SJosua Mayer&uart3 { 785*79f63593SJosua Mayer pinctrl-0 = <&uart3_pins>; 786*79f63593SJosua Mayer pinctrl-names = "default"; 787*79f63593SJosua Mayer uart-has-rtscts; 788*79f63593SJosua Mayer fsl,dte-mode; 789*79f63593SJosua Mayer linux,rs485-enabled-at-boot-time; 790*79f63593SJosua Mayer status = "okay"; 791*79f63593SJosua Mayer}; 792*79f63593SJosua Mayer 793*79f63593SJosua Mayer/* 802.15.1 radio */ 794*79f63593SJosua Mayer&uart4 { 795*79f63593SJosua Mayer pinctrl-0 = <&uart4_pins &ieee802151_radio_pins>; 796*79f63593SJosua Mayer pinctrl-names = "default"; 797*79f63593SJosua Mayer status = "okay"; 798*79f63593SJosua Mayer}; 799*79f63593SJosua Mayer 800*79f63593SJosua Mayer&usbotg1 { 801*79f63593SJosua Mayer disable-over-current; 802*79f63593SJosua Mayer dr_mode = "host"; 803*79f63593SJosua Mayer vbus-supply = <®_usb1_vbus>; 804*79f63593SJosua Mayer status = "okay"; 805*79f63593SJosua Mayer}; 806*79f63593SJosua Mayer 807*79f63593SJosua Mayer/* WiFi */ 808*79f63593SJosua Mayer&usdhc1 { 809*79f63593SJosua Mayer bus-width = <4>; 810*79f63593SJosua Mayer mmc-pwrseq = <&usdhc1_pwrseq>; 811*79f63593SJosua Mayer pinctrl-0 = <&usdhc1_pins>; 812*79f63593SJosua Mayer pinctrl-names = "default"; 813*79f63593SJosua Mayer vmmc-supply = <®_vdd_3v3>; 814*79f63593SJosua Mayer vqmmc-supply = <®_vdd_1v8>; 815*79f63593SJosua Mayer status = "okay"; 816*79f63593SJosua Mayer}; 817*79f63593SJosua Mayer 818*79f63593SJosua Mayer/* microSD */ 819*79f63593SJosua Mayer&usdhc2 { 820*79f63593SJosua Mayer broken-cd; 821*79f63593SJosua Mayer bus-width = <4>; 822*79f63593SJosua Mayer pinctrl-0 = <&usdhc2_pins>; 823*79f63593SJosua Mayer pinctrl-1 = <&usdhc2_100mhz_pins>; 824*79f63593SJosua Mayer pinctrl-2 = <&usdhc2_200mhz_pins>; 825*79f63593SJosua Mayer pinctrl-names = "default", "state_100mhz", "state_200mhz"; 826*79f63593SJosua Mayer vmmc-supply = <®_usdhc2_vmmc>; 827*79f63593SJosua Mayer status = "okay"; 828*79f63593SJosua Mayer}; 829*79f63593SJosua Mayer 830*79f63593SJosua Mayer/* eMMC */ 831*79f63593SJosua Mayer&usdhc3 { 832*79f63593SJosua Mayer bus-width = <8>; 833*79f63593SJosua Mayer non-removable; 834*79f63593SJosua Mayer pinctrl-0 = <&usdhc3_pins>; 835*79f63593SJosua Mayer vmmc-supply = <®_vdd_3v3>; 836*79f63593SJosua Mayer vqmmc-supply = <®_vdd_1v8>; 837*79f63593SJosua Mayer /* 838*79f63593SJosua Mayer * Use lowest drive strength for all high-speed modes to minimise 839*79f63593SJosua Mayer * electro-magnetic emissions. 840*79f63593SJosua Mayer * In this particular design HS-400 still works okay, no extra 841*79f63593SJosua Mayer * pinctrl for 100mhz and 200mhz are required. 842*79f63593SJosua Mayer */ 843*79f63593SJosua Mayer pinctrl-names = "default"; 844*79f63593SJosua Mayer status = "okay"; 845*79f63593SJosua Mayer}; 846*79f63593SJosua Mayer 847*79f63593SJosua Mayer&wdog1 { 848*79f63593SJosua Mayer pinctrl-0 = <&wdog1_pins>; 849*79f63593SJosua Mayer pinctrl-names = "default"; 850*79f63593SJosua Mayer status = "okay"; 851*79f63593SJosua Mayer}; 852