0001 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
0002 /*
0003 * Copyright (C) 2018 BTicino
0004 * Copyright (C) 2018 Amarula Solutions B.V.
0005 */
0006
0007 /dts-v1/;
0008
0009 #include <dt-bindings/gpio/gpio.h>
0010 #include "imx6dl.dtsi"
0011
0012 / {
0013 model = "BTicino i.MX6DL Mamoj board";
0014 compatible = "bticino,imx6dl-mamoj", "fsl,imx6dl";
0015
0016 /* Will be filled by the bootloader */
0017 memory@10000000 {
0018 device_type = "memory";
0019 reg = <0x10000000 0>;
0020 };
0021
0022 backlight_lcd: backlight-lcd {
0023 compatible = "pwm-backlight";
0024 pwms = <&pwm3 0 25000>; /* 25000ns -> 40kHz */
0025 brightness-levels = <0 4 8 16 32 64 128 160 192 224 255>;
0026 default-brightness-level = <7>;
0027 };
0028
0029 display: disp0 {
0030 compatible = "fsl,imx-parallel-display";
0031 #address-cells = <1>;
0032 #size-cells = <0>;
0033 interface-pix-fmt = "rgb24";
0034 pinctrl-names = "default";
0035 pinctrl-0 = <&pinctrl_ipu1_lcdif>;
0036 status = "okay";
0037
0038 port@0 {
0039 reg = <0>;
0040
0041 lcd_display_in: endpoint {
0042 remote-endpoint = <&ipu1_di0_disp0>;
0043 };
0044 };
0045
0046 port@1 {
0047 reg = <1>;
0048
0049 lcd_display_out: endpoint {
0050 remote-endpoint = <&lcd_panel_in>;
0051 };
0052 };
0053 };
0054
0055 panel-lcd {
0056 compatible = "rocktech,rk070er9427";
0057 backlight = <&backlight_lcd>;
0058 power-supply = <®_lcd_lr>;
0059 pinctrl-names = "default";
0060 pinctrl-0 = <&pinctrl_ipu1_lcdif_pwr>;
0061
0062 port {
0063 lcd_panel_in: endpoint {
0064 remote-endpoint = <&lcd_display_out>;
0065 };
0066 };
0067 };
0068
0069 reg_lcd_3v3: regulator-lcd-dvdd {
0070 compatible = "regulator-fixed";
0071 regulator-name = "lcd-dvdd";
0072 regulator-min-microvolt = <3300000>;
0073 regulator-max-microvolt = <3300000>;
0074 gpio = <&gpio3 1 0>;
0075 enable-active-high;
0076 startup-delay-us = <21000>;
0077 };
0078
0079 reg_lcd_power: regulator-lcd-power {
0080 compatible = "regulator-fixed";
0081 regulator-name = "lcd-enable";
0082 regulator-min-microvolt = <3300000>;
0083 regulator-max-microvolt = <3300000>;
0084 gpio = <&gpio3 6 0>;
0085 enable-active-high;
0086 vin-supply = <®_lcd_3v3>;
0087 };
0088
0089 reg_lcd_vgl: regulator-lcd-vgl {
0090 compatible = "regulator-fixed";
0091 regulator-name = "lcd-vgl";
0092 regulator-min-microvolt = <3300000>;
0093 regulator-max-microvolt = <3300000>;
0094 gpio = <&gpio2 20 GPIO_ACTIVE_HIGH>;
0095 startup-delay-us = <6000>;
0096 enable-active-high;
0097 vin-supply = <®_lcd_power>;
0098 };
0099
0100 reg_lcd_vgh: regulator-lcd-vgh {
0101 compatible = "regulator-fixed";
0102 regulator-name = "lcd-vgh";
0103 regulator-min-microvolt = <3300000>;
0104 regulator-max-microvolt = <3300000>;
0105 gpio = <&gpio3 31 GPIO_ACTIVE_HIGH>;
0106 startup-delay-us = <6000>;
0107 enable-active-high;
0108 vin-supply = <®_lcd_avdd>;
0109 };
0110
0111 reg_lcd_vcom: regulator-lcd-vcom {
0112 compatible = "regulator-fixed";
0113 regulator-name = "lcd-vcom";
0114 regulator-min-microvolt = <3300000>;
0115 regulator-max-microvolt = <3300000>;
0116 gpio = <&gpio4 14 GPIO_ACTIVE_HIGH>;
0117 startup-delay-us = <11000>;
0118 enable-active-high;
0119 vin-supply = <®_lcd_vgh>;
0120 };
0121
0122 reg_lcd_lr: regulator-lcd-lr {
0123 compatible = "regulator-fixed";
0124 regulator-name = "lcd-lr";
0125 regulator-min-microvolt = <3300000>;
0126 regulator-max-microvolt = <3300000>;
0127 gpio = <&gpio4 15 GPIO_ACTIVE_HIGH>;
0128 enable-active-high;
0129 vin-supply = <®_lcd_vcom>;
0130 };
0131
0132 reg_lcd_avdd: regulator-lcd-avdd {
0133 compatible = "regulator-fixed";
0134 regulator-name = "lcd-avdd";
0135 regulator-min-microvolt = <10280000>;
0136 regulator-max-microvolt = <10280000>;
0137 gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>;
0138 startup-delay-us = <6000>;
0139 enable-active-high;
0140 vin-supply = <®_lcd_vgl>;
0141 };
0142
0143 reg_usb_host: regulator-usb-vbus {
0144 compatible = "regulator-fixed";
0145 regulator-name = "usbhost-vbus";
0146 pinctrl-names = "default";
0147 pinctrl-0 = <&pinctrl_usbhost>;
0148 regulator-min-microvolt = <50000000>;
0149 regulator-max-microvolt = <50000000>;
0150 gpio = <&gpio6 6 GPIO_ACTIVE_HIGH>;
0151 enable-active-high;
0152 };
0153
0154 reg_wl18xx_vmmc: regulator-wl18xx-vmcc {
0155 compatible = "regulator-fixed";
0156 regulator-name = "vwl1807";
0157 pinctrl-names = "default";
0158 pinctrl-0 = <&pinctrl_wlan>;
0159 regulator-min-microvolt = <1800000>;
0160 regulator-max-microvolt = <1800000>;
0161 gpio = <&gpio6 21 GPIO_ACTIVE_HIGH>;
0162 startup-delay-us = <70000>;
0163 enable-active-high;
0164 };
0165 };
0166
0167 &fec {
0168 pinctrl-names = "default";
0169 pinctrl-0 = <&pinctrl_enet>;
0170 phy-mode = "mii";
0171 status = "okay";
0172 };
0173
0174 &i2c3 {
0175 clock-frequency = <400000>;
0176 pinctrl-names = "default";
0177 pinctrl-0 = <&pinctrl_i2c3>;
0178 status = "okay";
0179 };
0180
0181 &i2c4 {
0182 clock-frequency = <100000>;
0183 pinctrl-names = "default";
0184 pinctrl-0 = <&pinctrl_i2c4>;
0185 status = "okay";
0186
0187 pfuze100: pmic@8 {
0188 compatible = "fsl,pfuze100";
0189 reg = <0x08>;
0190
0191 regulators {
0192 /* CPU vdd_arm core */
0193 sw1a_reg: sw1ab {
0194 regulator-min-microvolt = <300000>;
0195 regulator-max-microvolt = <1875000>;
0196 regulator-boot-on;
0197 regulator-always-on;
0198 regulator-ramp-delay = <6250>;
0199 };
0200
0201 /* SOC vdd_soc */
0202 sw1c_reg: sw1c {
0203 regulator-min-microvolt = <300000>;
0204 regulator-max-microvolt = <1875000>;
0205 regulator-boot-on;
0206 regulator-always-on;
0207 regulator-ramp-delay = <6250>;
0208 };
0209
0210 /* I/O power GEN_3V3 */
0211 sw2_reg: sw2 {
0212 regulator-min-microvolt = <800000>;
0213 regulator-max-microvolt = <3300000>;
0214 regulator-boot-on;
0215 regulator-always-on;
0216 };
0217
0218 /* DDR memory */
0219 sw3a_reg: sw3a {
0220 regulator-min-microvolt = <400000>;
0221 regulator-max-microvolt = <1975000>;
0222 regulator-boot-on;
0223 regulator-always-on;
0224 };
0225
0226 /* DDR memory */
0227 sw3b_reg: sw3b {
0228 regulator-min-microvolt = <400000>;
0229 regulator-max-microvolt = <1975000>;
0230 regulator-boot-on;
0231 regulator-always-on;
0232 };
0233
0234 /* not used */
0235 sw4_reg: sw4 {
0236 regulator-min-microvolt = <800000>;
0237 regulator-max-microvolt = <3300000>;
0238 };
0239
0240 /* not used */
0241 swbst_reg: swbst {
0242 regulator-min-microvolt = <5000000>;
0243 regulator-max-microvolt = <5150000>;
0244 };
0245
0246 /* PMIC vsnvs. EX boot mode */
0247 snvs_reg: vsnvs {
0248 regulator-min-microvolt = <1000000>;
0249 regulator-max-microvolt = <3000000>;
0250 regulator-boot-on;
0251 regulator-always-on;
0252 };
0253
0254 vref_reg: vrefddr {
0255 regulator-boot-on;
0256 regulator-always-on;
0257 };
0258
0259 /* not used */
0260 vgen1_reg: vgen1 {
0261 regulator-min-microvolt = <800000>;
0262 regulator-max-microvolt = <1550000>;
0263 };
0264
0265 /* not used */
0266 vgen2_reg: vgen2 {
0267 regulator-min-microvolt = <800000>;
0268 regulator-max-microvolt = <1550000>;
0269 };
0270
0271 /* not used */
0272 vgen3_reg: vgen3 {
0273 regulator-min-microvolt = <1800000>;
0274 regulator-max-microvolt = <3300000>;
0275 };
0276
0277 /* 1v8 general power */
0278 vgen4_reg: vgen4 {
0279 regulator-min-microvolt = <1800000>;
0280 regulator-max-microvolt = <3300000>;
0281 regulator-always-on;
0282 };
0283
0284 /* 2v8 general power IMX6 */
0285 vgen5_reg: vgen5 {
0286 regulator-min-microvolt = <1800000>;
0287 regulator-max-microvolt = <3300000>;
0288 regulator-always-on;
0289 };
0290
0291 /* 3v3 Ethernet */
0292 vgen6_reg: vgen6 {
0293 regulator-min-microvolt = <1800000>;
0294 regulator-max-microvolt = <3300000>;
0295 regulator-always-on;
0296 };
0297 };
0298 };
0299 };
0300
0301 &ipu1_di0_disp0 {
0302 remote-endpoint = <&lcd_display_in>;
0303 };
0304
0305 &pwm3 {
0306 #pwm-cells = <2>;
0307 pinctrl-names = "default";
0308 pinctrl-0 = <&pinctrl_pwm3>;
0309 status = "okay";
0310 };
0311
0312 &uart3 {
0313 pinctrl-names = "default";
0314 pinctrl-0 = <&pinctrl_uart3>;
0315 status = "okay";
0316 };
0317
0318 &usbh1 {
0319 vbus-supply = <®_usb_host>;
0320 status = "okay";
0321 };
0322
0323 &usbotg {
0324 dr_mode = "peripheral";
0325 status = "okay";
0326 };
0327
0328 &usdhc1 {
0329 pinctrl-names = "default";
0330 pinctrl-0 = <&pinctrl_usdhc1>;
0331 bus-width = <4>;
0332 vmmc-supply = <®_wl18xx_vmmc>;
0333 no-1-8-v;
0334 non-removable;
0335 wakeup-source;
0336 keep-power-in-suspend;
0337 cap-power-off-card;
0338 max-frequency = <25000000>;
0339 #address-cells = <1>;
0340 #size-cells = <0>;
0341 status = "okay";
0342
0343 wlcore: wlcore@2 {
0344 compatible = "ti,wl1837";
0345 reg = <2>;
0346 interrupt-parent = <&gpio6>;
0347 interrupts = <23 IRQ_TYPE_LEVEL_HIGH>;
0348 tcxo-clock-frequency = <26000000>;
0349 };
0350 };
0351
0352 &usdhc3 {
0353 pinctrl-names = "default";
0354 pinctrl-0 = <&pinctrl_usdhc3>;
0355 bus-width = <8>;
0356 non-removable;
0357 keep-power-in-suspend;
0358 status = "okay";
0359 };
0360
0361 &iomuxc {
0362 pinctrl_enet: enetgrp {
0363 fsl,pins = <
0364 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
0365 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
0366 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b1
0367 MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0 0x1b0b0
0368 MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0x1b0b0
0369 MX6QDL_PAD_KEY_ROW2__ENET_TX_DATA2 0x1b0b0
0370 MX6QDL_PAD_KEY_ROW0__ENET_TX_DATA3 0x1b0b0
0371 MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x1b0b0
0372 MX6QDL_PAD_GPIO_19__ENET_TX_ER 0x1b0b0
0373 MX6QDL_PAD_GPIO_18__ENET_RX_CLK 0x1b0b1
0374 MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 0x1b0b0
0375 MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 0x1b0b0
0376 MX6QDL_PAD_KEY_COL2__ENET_RX_DATA2 0x1b0b0
0377 MX6QDL_PAD_KEY_COL0__ENET_RX_DATA3 0x1b0b0
0378 MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x1b0b0
0379 MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER 0x1b0b0
0380 MX6QDL_PAD_KEY_COL3__ENET_CRS 0x1b0b0
0381 MX6QDL_PAD_KEY_ROW1__ENET_COL 0x1b0b0
0382 >;
0383 };
0384
0385 pinctrl_i2c3: i2c3grp {
0386 fsl,pins = <
0387 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1
0388 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
0389 >;
0390 };
0391
0392 pinctrl_i2c4: i2c4grp {
0393 fsl,pins = <
0394 MX6QDL_PAD_GPIO_7__I2C4_SCL 0x4001b8b1
0395 MX6QDL_PAD_GPIO_8__I2C4_SDA 0x4001b8b1
0396 >;
0397 };
0398
0399 pinctrl_ipu1_lcdif: pinctrlipu1lcdif { /* parallel port 24-bit */
0400 fsl,pins = <
0401 MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x10 /* VDOUT_PCLK */
0402 MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x10
0403 MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x10 /* VDOUT_HSYNC */
0404 MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x10 /* VDOUT_VSYNC */
0405 MX6QDL_PAD_DI0_PIN4__IPU1_DI0_PIN04 0x10 /* VDOUT_RESET */
0406 MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x10
0407 MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x10
0408 MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x10
0409 MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x10
0410 MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x10
0411 MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x10
0412 MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x10
0413 MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x10
0414 MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x10
0415 MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x10
0416 MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x10
0417 MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x10
0418 MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x10
0419 MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x10
0420 MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x10
0421 MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x10
0422 MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x10
0423 MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x10
0424 MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x10
0425 MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x10
0426 MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x10
0427 MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x10
0428 MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x10
0429 MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x10
0430 >;
0431 };
0432
0433 pinctrl_ipu1_lcdif_pwr: ipu1lcdifpwrgrp {
0434 fsl,pins = <
0435 MX6QDL_PAD_EIM_DA1__GPIO3_IO01 0x40013058 /* EN_LCD33V */
0436 MX6QDL_PAD_SD4_DAT5__GPIO2_IO13 0x4001b0b0 /* EN_AVDD */
0437 MX6QDL_PAD_EIM_D31__GPIO3_IO31 0x40013058 /* ENVGH */
0438 MX6QDL_PAD_EIM_A18__GPIO2_IO20 0x40013058 /* ENVGL */
0439 MX6QDL_PAD_EIM_DA6__GPIO3_IO06 0x40013058 /* LCD_POWER */
0440 MX6QDL_PAD_KEY_COL4__GPIO4_IO14 0x40013058 /* EN_VCOM_LCD */
0441 MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x40013058 /* LCD_L_R */
0442 MX6QDL_PAD_EIM_DA2__GPIO3_IO02 0x40013058 /* LCD_U_D */
0443 >;
0444 };
0445
0446 pinctrl_pwm3: pwm3grp {
0447 fsl,pins = <
0448 MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x1b0b1
0449 >;
0450 };
0451
0452 pinctrl_uart3: uart3grp {
0453 fsl,pins = <
0454 MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
0455 MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
0456 >;
0457 };
0458
0459 pinctrl_usbhost: usbhostgrp {
0460 fsl,pins = <
0461 MX6QDL_PAD_EIM_A23__GPIO6_IO06 0x4001b0b0
0462 >;
0463 };
0464
0465 pinctrl_usdhc1: usdhc1grp {
0466 fsl,pins = <
0467 MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17069
0468 MX6QDL_PAD_SD1_CLK__SD1_CLK 0x10079
0469 MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x17069
0470 MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17069
0471 MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17069
0472 MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17069
0473 >;
0474 };
0475
0476 pinctrl_usdhc3: usdhc3grp {
0477 fsl,pins = <
0478 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
0479 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
0480 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
0481 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
0482 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
0483 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
0484 MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x17059
0485 MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x17059
0486 MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x17059
0487 MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x17059
0488 >;
0489 };
0490
0491 pinctrl_wlan: wlangrp {
0492 fsl,pins = <
0493 MX6QDL_PAD_RGMII_TD1__GPIO6_IO21 0x4001b0b0
0494 >;
0495 };
0496 };