1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright 2013 Freescale Semiconductor, Inc. 4 * 5 * Author: Fabio Estevam <fabio.estevam@freescale.com> 6 */ 7 8#include <dt-bindings/gpio/gpio.h> 9 10/ { 11 chosen { 12 stdout-path = &uart1; 13 }; 14 15 sound { 16 compatible = "fsl,imx6-wandboard-sgtl5000", 17 "fsl,imx-audio-sgtl5000"; 18 model = "imx6-wandboard-sgtl5000"; 19 ssi-controller = <&ssi1>; 20 audio-codec = <&codec>; 21 audio-routing = 22 "MIC_IN", "Mic Jack", 23 "Mic Jack", "Mic Bias", 24 "Headphone Jack", "HP_OUT"; 25 mux-int-port = <1>; 26 mux-ext-port = <3>; 27 }; 28 29 spdif_out: spdif-out { 30 compatible = "linux,spdif-dit"; 31 #sound-dai-cells = <0>; 32 }; 33 34 sound-spdif { 35 compatible = "fsl,imx-audio-spdif"; 36 model = "imx-spdif"; 37 audio-cpu = <&spdif>; 38 audio-codec = <&spdif_out>; 39 }; 40 41 reg_1p5v: regulator-1p5v { 42 compatible = "regulator-fixed"; 43 regulator-name = "1P5V"; 44 regulator-min-microvolt = <1500000>; 45 regulator-max-microvolt = <1500000>; 46 regulator-always-on; 47 }; 48 49 reg_1p8v: regulator-1p8v { 50 compatible = "regulator-fixed"; 51 regulator-name = "1P8V"; 52 regulator-min-microvolt = <1800000>; 53 regulator-max-microvolt = <1800000>; 54 regulator-always-on; 55 }; 56 57 reg_2p8v: regulator-2p8v { 58 compatible = "regulator-fixed"; 59 regulator-name = "2P8V"; 60 regulator-min-microvolt = <2800000>; 61 regulator-max-microvolt = <2800000>; 62 regulator-always-on; 63 }; 64 65 reg_2p5v: regulator-2p5v { 66 compatible = "regulator-fixed"; 67 regulator-name = "2P5V"; 68 regulator-min-microvolt = <2500000>; 69 regulator-max-microvolt = <2500000>; 70 regulator-always-on; 71 }; 72 73 reg_3p3v: regulator-3p3v { 74 compatible = "regulator-fixed"; 75 regulator-name = "3P3V"; 76 regulator-min-microvolt = <3300000>; 77 regulator-max-microvolt = <3300000>; 78 regulator-always-on; 79 }; 80 81 reg_usb_otg_vbus: regulator-usbotgvbus { 82 compatible = "regulator-fixed"; 83 regulator-name = "usb_otg_vbus"; 84 regulator-min-microvolt = <5000000>; 85 regulator-max-microvolt = <5000000>; 86 pinctrl-names = "default"; 87 pinctrl-0 = <&pinctrl_usbotgvbus>; 88 gpio = <&gpio3 22 GPIO_ACTIVE_LOW>; 89 }; 90}; 91 92&audmux { 93 pinctrl-names = "default"; 94 pinctrl-0 = <&pinctrl_audmux>; 95 status = "okay"; 96}; 97 98&hdmi { 99 ddc-i2c-bus = <&i2c1>; 100 status = "okay"; 101}; 102 103&i2c1 { 104 clock-frequency = <100000>; 105 pinctrl-names = "default", "gpio"; 106 pinctrl-0 = <&pinctrl_i2c1>; 107 pinctrl-1 = <&pinctrl_i2c1_gpio>; 108 scl-gpios = <&gpio3 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 109 sda-gpios = <&gpio3 28 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 110 status = "okay"; 111}; 112 113&i2c2 { 114 clock-frequency = <100000>; 115 pinctrl-names = "default", "gpio"; 116 pinctrl-0 = <&pinctrl_i2c2>; 117 pinctrl-1 = <&pinctrl_i2c2_gpio>; 118 scl-gpios = <&gpio4 12 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 119 sda-gpios = <&gpio4 13 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 120 status = "okay"; 121 122 codec: sgtl5000@a { 123 pinctrl-names = "default"; 124 pinctrl-0 = <&pinctrl_mclk>; 125 compatible = "fsl,sgtl5000"; 126 reg = <0x0a>; 127 #sound-dai-cells = <0>; 128 clocks = <&clks IMX6QDL_CLK_CKO>; 129 VDDA-supply = <®_2p5v>; 130 VDDIO-supply = <®_3p3v>; 131 lrclk-strength = <3>; 132 }; 133 134 camera@3c { 135 compatible = "ovti,ov5645"; 136 pinctrl-names = "default"; 137 pinctrl-0 = <&pinctrl_ov5645>; 138 reg = <0x3c>; 139 clocks = <&clks IMX6QDL_CLK_CKO2>; 140 clock-frequency = <24000000>; 141 vdddo-supply = <®_1p8v>; 142 vdda-supply = <®_2p8v>; 143 vddd-supply = <®_1p5v>; 144 enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>; 145 reset-gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; 146 147 port { 148 ov5645_to_mipi_csi2: endpoint { 149 remote-endpoint = <&mipi_csi2_in>; 150 clock-lanes = <0>; 151 data-lanes = <1 2>; 152 }; 153 }; 154 }; 155}; 156 157&iomuxc { 158 pinctrl-names = "default"; 159 160 imx6qdl-wandboard { 161 162 pinctrl_audmux: audmuxgrp { 163 fsl,pins = < 164 MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x130b0 165 MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x130b0 166 MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x110b0 167 MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x130b0 168 >; 169 }; 170 171 pinctrl_enet: enetgrp { 172 fsl,pins = < 173 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0 174 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0 175 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030 176 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030 177 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030 178 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030 179 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030 180 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030 181 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0 182 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030 183 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030 184 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030 185 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030 186 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030 187 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030 188 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8 189 >; 190 }; 191 192 pinctrl_i2c1: i2c1grp { 193 fsl,pins = < 194 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 195 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1 196 >; 197 }; 198 199 pinctrl_i2c1_gpio: i2c1gpiogrp { 200 fsl,pins = < 201 MX6QDL_PAD_EIM_D21__GPIO3_IO21 0x4001b8b0 202 MX6QDL_PAD_EIM_D28__GPIO3_IO28 0x4001b8b0 203 >; 204 }; 205 206 pinctrl_i2c2: i2c2grp { 207 fsl,pins = < 208 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 209 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 210 >; 211 }; 212 213 pinctrl_i2c2_gpio: i2c2gpiogrp { 214 fsl,pins = < 215 MX6QDL_PAD_KEY_COL3__GPIO4_IO12 0x4001b8b0 216 MX6QDL_PAD_KEY_ROW3__GPIO4_IO13 0x4001b8b0 217 >; 218 }; 219 220 pinctrl_mclk: mclkgrp { 221 fsl,pins = < 222 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x130b0 223 >; 224 }; 225 226 pinctrl_ov5645: ov5645grp { 227 fsl,pins = < 228 MX6QDL_PAD_GPIO_3__CCM_CLKO2 0x000b0 229 MX6QDL_PAD_GPIO_6__GPIO1_IO06 0x1b0b0 230 MX6QDL_PAD_KEY_COL4__GPIO4_IO14 0x1b0b0 231 >; 232 }; 233 234 pinctrl_spdif: spdifgrp { 235 fsl,pins = < 236 MX6QDL_PAD_ENET_RXD0__SPDIF_OUT 0x1b0b0 237 >; 238 }; 239 240 pinctrl_uart1: uart1grp { 241 fsl,pins = < 242 MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1 243 MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1 244 >; 245 }; 246 247 pinctrl_uart3: uart3grp { 248 fsl,pins = < 249 MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1 250 MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1 251 MX6QDL_PAD_EIM_D23__UART3_CTS_B 0x1b0b1 252 MX6QDL_PAD_EIM_EB3__UART3_RTS_B 0x1b0b1 253 >; 254 }; 255 256 pinctrl_usbotg: usbotggrp { 257 fsl,pins = < 258 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059 259 >; 260 }; 261 262 pinctrl_usbotgvbus: usbotgvbusgrp { 263 fsl,pins = < 264 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x130b0 265 >; 266 }; 267 268 pinctrl_usdhc1: usdhc1grp { 269 fsl,pins = < 270 MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17059 271 MX6QDL_PAD_SD1_CLK__SD1_CLK 0x10059 272 MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x17059 273 MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17059 274 MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17059 275 MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17059 276 >; 277 }; 278 279 pinctrl_usdhc2: usdhc2grp { 280 fsl,pins = < 281 MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059 282 MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059 283 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059 284 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059 285 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059 286 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059 287 >; 288 }; 289 290 pinctrl_usdhc3: usdhc3grp { 291 fsl,pins = < 292 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 293 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059 294 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059 295 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 296 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 297 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 298 >; 299 }; 300 }; 301}; 302 303&fec { 304 pinctrl-names = "default"; 305 pinctrl-0 = <&pinctrl_enet>; 306 phy-mode = "rgmii-id"; 307 phy-handle = <ðphy>; 308 phy-reset-gpios = <&gpio3 29 GPIO_ACTIVE_LOW>; 309 status = "okay"; 310 311 mdio { 312 #address-cells = <1>; 313 #size-cells = <0>; 314 315 ethphy: ethernet-phy@1 { 316 reg = <1>; 317 qca,clk-out-frequency = <125000000>; 318 }; 319 }; 320}; 321 322&mipi_csi { 323 status = "okay"; 324 325 port@0 { 326 reg = <0>; 327 328 mipi_csi2_in: endpoint { 329 remote-endpoint = <&ov5645_to_mipi_csi2>; 330 clock-lanes = <0>; 331 data-lanes = <1 2>; 332 }; 333 }; 334}; 335 336&spdif { 337 pinctrl-names = "default"; 338 pinctrl-0 = <&pinctrl_spdif>; 339 status = "okay"; 340}; 341 342&ssi1 { 343 status = "okay"; 344}; 345 346&uart1 { 347 pinctrl-names = "default"; 348 pinctrl-0 = <&pinctrl_uart1>; 349 status = "okay"; 350}; 351 352&uart3 { 353 pinctrl-names = "default"; 354 pinctrl-0 = <&pinctrl_uart3>; 355 uart-has-rtscts; 356 status = "okay"; 357}; 358 359&usbh1 { 360 status = "okay"; 361}; 362 363&usbotg { 364 vbus-supply = <®_usb_otg_vbus>; 365 pinctrl-names = "default"; 366 pinctrl-0 = <&pinctrl_usbotg>; 367 disable-over-current; 368 dr_mode = "otg"; 369 status = "okay"; 370}; 371 372&usdhc1 { 373 pinctrl-names = "default"; 374 pinctrl-0 = <&pinctrl_usdhc1>; 375 cd-gpios = <&gpio1 2 GPIO_ACTIVE_LOW>; 376 status = "okay"; 377}; 378 379&usdhc3 { 380 pinctrl-names = "default"; 381 pinctrl-0 = <&pinctrl_usdhc3>; 382 cd-gpios = <&gpio3 9 GPIO_ACTIVE_LOW>; 383 status = "okay"; 384}; 385