1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright 2023 Boundary Devices 4 * Copyright 2024 Silicon Signals Pvt. Ltd. 5 * 6 * Author : Bhavin Sharma <bhavin.sharma@siliconsignals.io> 7 */ 8 9/dts-v1/; 10 11#include <dt-bindings/leds/common.h> 12#include "imx8mp.dtsi" 13 14/ { 15 model = "Boundary Device Nitrogen8MP SMARC SoM"; 16 compatible = "boundary,imx8mp-nitrogen-smarc-som", "fsl,imx8mp"; 17 18 chosen { 19 stdout-path = &uart2; 20 }; 21 22 leds { 23 compatible = "gpio-leds"; 24 pinctrl-names = "default"; 25 pinctrl-0 = <&pinctrl_gpio_led>; 26 27 led-0 { 28 function = LED_FUNCTION_POWER; 29 gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; 30 linux,default-trigger = "heartbeat"; 31 }; 32 }; 33 34 reg_usdhc2_vmmc: regulator-usdhc2-vmmc { 35 compatible = "regulator-fixed"; 36 regulator-name = "VSD_3V3"; 37 regulator-min-microvolt = <3300000>; 38 regulator-max-microvolt = <3300000>; 39 gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>; 40 enable-active-high; 41 }; 42}; 43 44&A53_0 { 45 cpu-supply = <&buck2>; 46}; 47 48&A53_1 { 49 cpu-supply = <&buck2>; 50}; 51 52&A53_2 { 53 cpu-supply = <&buck2>; 54}; 55 56&A53_3 { 57 cpu-supply = <&buck2>; 58}; 59 60&i2c1 { 61 clock-frequency = <400000>; 62 pinctrl-names = "default"; 63 pinctrl-0 = <&pinctrl_i2c1>; 64 status = "okay"; 65 66 pmic@25 { 67 compatible = "nxp,pca9450c"; 68 reg = <0x25>; 69 pinctrl-names = "default"; 70 pinctrl-0 = <&pinctrl_pmic>; 71 interrupt-parent = <&gpio1>; 72 interrupts = <14 IRQ_TYPE_LEVEL_LOW>; 73 74 regulators { 75 buck1: BUCK1 { 76 regulator-name = "BUCK1"; 77 regulator-min-microvolt = <600000>; 78 regulator-max-microvolt = <2187500>; 79 regulator-boot-on; 80 regulator-always-on; 81 regulator-ramp-delay = <3125>; 82 }; 83 84 buck2: BUCK2 { 85 regulator-name = "BUCK2"; 86 regulator-min-microvolt = <600000>; 87 regulator-max-microvolt = <2187500>; 88 regulator-boot-on; 89 regulator-always-on; 90 regulator-ramp-delay = <3125>; 91 nxp,dvs-run-voltage = <950000>; 92 nxp,dvs-standby-voltage = <850000>; 93 }; 94 95 buck4: BUCK4 { 96 regulator-name = "BUCK4"; 97 regulator-min-microvolt = <600000>; 98 regulator-max-microvolt = <3400000>; 99 regulator-boot-on; 100 regulator-always-on; 101 }; 102 103 buck5: BUCK5 { 104 regulator-name = "BUCK5"; 105 regulator-min-microvolt = <600000>; 106 regulator-max-microvolt = <3400000>; 107 regulator-boot-on; 108 regulator-always-on; 109 }; 110 111 buck6: BUCK6 { 112 regulator-name = "BUCK6"; 113 regulator-min-microvolt = <600000>; 114 regulator-max-microvolt = <3400000>; 115 regulator-boot-on; 116 regulator-always-on; 117 }; 118 119 ldo1: LDO1 { 120 regulator-name = "LDO1"; 121 regulator-min-microvolt = <1600000>; 122 regulator-max-microvolt = <3300000>; 123 regulator-boot-on; 124 regulator-always-on; 125 }; 126 127 ldo2: LDO2 { 128 regulator-name = "LDO2"; 129 regulator-min-microvolt = <800000>; 130 regulator-max-microvolt = <1150000>; 131 regulator-boot-on; 132 regulator-always-on; 133 }; 134 135 ldo3: LDO3 { 136 regulator-name = "LDO3"; 137 regulator-min-microvolt = <800000>; 138 regulator-max-microvolt = <3300000>; 139 regulator-boot-on; 140 regulator-always-on; 141 }; 142 143 ldo4: LDO4 { 144 regulator-name = "LDO4"; 145 regulator-min-microvolt = <800000>; 146 regulator-max-microvolt = <3300000>; 147 regulator-boot-on; 148 regulator-always-on; 149 }; 150 151 ldo5: LDO5 { 152 regulator-name = "LDO5"; 153 regulator-min-microvolt = <1800000>; 154 regulator-max-microvolt = <3300000>; 155 regulator-boot-on; 156 regulator-always-on; 157 }; 158 }; 159 }; 160}; 161 162&i2c6 { 163 clock-frequency = <100000>; 164 pinctrl-names = "default"; 165 pinctrl-0 = <&pinctrl_i2c6>; 166 status = "okay"; 167 168 mcp23018: gpio@20 { 169 compatible = "microchip,mcp23018"; 170 gpio-controller; 171 #gpio-cells = <0x2>; 172 reg = <0x20>; 173 interrupts-extended = <&gpio4 22 IRQ_TYPE_LEVEL_LOW>; 174 interrupt-controller; 175 #interrupt-cells = <0x2>; 176 microchip,irq-mirror; 177 pinctrl-names = "default"; 178 pinctrl-0 = <&pinctrl_mcp23018>; 179 reset-gpios = <&gpio4 27 GPIO_ACTIVE_LOW>; 180 }; 181}; 182 183/* Console */ 184&uart2 { 185 pinctrl-names = "default"; 186 pinctrl-0 = <&pinctrl_uart2>; 187 status = "okay"; 188}; 189 190/* SD-card */ 191&usdhc2 { 192 pinctrl-names = "default", "state_100mhz", "state_200mhz"; 193 pinctrl-0 = <&pinctrl_usdhc2>; 194 pinctrl-1 = <&pinctrl_usdhc2_100mhz>; 195 pinctrl-2 = <&pinctrl_usdhc2_200mhz>; 196 cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>; 197 vmmc-supply = <®_usdhc2_vmmc>; 198 bus-width = <4>; 199 status = "okay"; 200}; 201 202/* eMMC */ 203&usdhc1 { 204 pinctrl-names = "default", "state_100mhz", "state_200mhz"; 205 pinctrl-0 = <&pinctrl_usdhc1>; 206 pinctrl-1 = <&pinctrl_usdhc1_100mhz>; 207 pinctrl-2 = <&pinctrl_usdhc1_200mhz>; 208 bus-width = <8>; 209 non-removable; 210 status = "okay"; 211}; 212 213&wdog1 { 214 pinctrl-names = "default"; 215 pinctrl-0 = <&pinctrl_wdog>; 216 fsl,ext-reset-output; 217 status = "okay"; 218}; 219 220&iomuxc { 221 pinctrl_gpio_led: gpioledgrp { 222 fsl,pins = < 223 MX8MP_IOMUXC_GPIO1_IO10__GPIO1_IO10 0x19 224 >; 225 }; 226 227 pinctrl_i2c1: i2c1grp { 228 fsl,pins = < 229 MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL 0x400001c3 230 MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA 0x400001c3 231 >; 232 }; 233 234 pinctrl_i2c6: i2c6grp { 235 fsl,pins = < 236 MX8MP_IOMUXC_SAI5_RXFS__I2C6_SCL 0x400001c3 237 MX8MP_IOMUXC_SAI5_RXC__I2C6_SDA 0x400001c3 238 >; 239 }; 240 241 pinctrl_mcp23018: mcp23018grp { 242 fsl,pins = < 243 MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22 0x1c0 244 MX8MP_IOMUXC_SAI2_MCLK__GPIO4_IO27 0x100 245 >; 246 }; 247 248 pinctrl_pmic: pmicgrp { 249 fsl,pins = < 250 MX8MP_IOMUXC_GPIO1_IO14__GPIO1_IO14 0x1c0 251 >; 252 }; 253 254 pinctrl_uart2: uart2grp { 255 fsl,pins = < 256 MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX 0x40 257 MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX 0x40 258 >; 259 }; 260 261 pinctrl_usdhc1: usdhc1grp { 262 fsl,pins = < 263 MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK 0x10 264 MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD 0x150 265 MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0 0x150 266 MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1 0x150 267 MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2 0x150 268 MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3 0x150 269 MX8MP_IOMUXC_SD1_DATA4__USDHC1_DATA4 0x150 270 MX8MP_IOMUXC_SD1_DATA5__USDHC1_DATA5 0x150 271 MX8MP_IOMUXC_SD1_DATA6__USDHC1_DATA6 0x150 272 MX8MP_IOMUXC_SD1_DATA7__USDHC1_DATA7 0x150 273 MX8MP_IOMUXC_SD1_STROBE__USDHC1_STROBE 0x10 274 MX8MP_IOMUXC_SD1_RESET_B__USDHC1_RESET_B 0x140 275 >; 276 }; 277 278 pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp { 279 fsl,pins = < 280 MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK 0x14 281 MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD 0x154 282 MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0 0x154 283 MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1 0x154 284 MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2 0x154 285 MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3 0x154 286 MX8MP_IOMUXC_SD1_DATA4__USDHC1_DATA4 0x154 287 MX8MP_IOMUXC_SD1_DATA5__USDHC1_DATA5 0x154 288 MX8MP_IOMUXC_SD1_DATA6__USDHC1_DATA6 0x154 289 MX8MP_IOMUXC_SD1_DATA7__USDHC1_DATA7 0x154 290 MX8MP_IOMUXC_SD1_STROBE__USDHC1_STROBE 0x14 291 >; 292 }; 293 294 pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp { 295 fsl,pins = < 296 MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK 0x12 297 MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD 0x152 298 MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0 0x152 299 MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1 0x152 300 MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2 0x152 301 MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3 0x152 302 MX8MP_IOMUXC_SD1_DATA4__USDHC1_DATA4 0x152 303 MX8MP_IOMUXC_SD1_DATA5__USDHC1_DATA5 0x152 304 MX8MP_IOMUXC_SD1_DATA6__USDHC1_DATA6 0x152 305 MX8MP_IOMUXC_SD1_DATA7__USDHC1_DATA7 0x152 306 MX8MP_IOMUXC_SD1_STROBE__USDHC1_STROBE 0x12 307 >; 308 }; 309 310 pinctrl_usdhc2: usdhc2grp { 311 fsl,pins = < 312 MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x190 313 MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d0 314 MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d0 315 MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d0 316 MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d0 317 MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d0 318 >; 319 }; 320 321 pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp { 322 fsl,pins = < 323 MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x194 324 MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d4 325 MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d4 326 MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d4 327 MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d4 328 MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4 329 >; 330 }; 331 332 pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp { 333 fsl,pins = < 334 MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x196 335 MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d6 336 MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d6 337 MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d6 338 MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d6 339 MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d6 340 >; 341 }; 342 343 pinctrl_wdog: wdoggrp { 344 fsl,pins = < 345 MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B 0x140 346 >; 347 }; 348}; 349