1*724ba675SRob Herring/* 2*724ba675SRob Herring * Copyright (C) 2015 Lucas Stach <kernel@pengutronix.de> 3*724ba675SRob Herring * 4*724ba675SRob Herring * This file is dual-licensed: you can use it either under the terms 5*724ba675SRob Herring * of the GPL or the X11 license, at your option. Note that this dual 6*724ba675SRob Herring * licensing only applies to this file, and not this project as a 7*724ba675SRob Herring * whole. 8*724ba675SRob Herring * 9*724ba675SRob Herring * a) This file is free software; you can redistribute it and/or 10*724ba675SRob Herring * modify it under the terms of the GNU General Public License 11*724ba675SRob Herring * version 2 as published by the Free Software Foundation. 12*724ba675SRob Herring * 13*724ba675SRob Herring * This file is distributed in the hope that it will be useful, 14*724ba675SRob Herring * but WITHOUT ANY WARRANTY; without even the implied warranty of 15*724ba675SRob Herring * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16*724ba675SRob Herring * GNU General Public License for more details. 17*724ba675SRob Herring * 18*724ba675SRob Herring * Or, alternatively, 19*724ba675SRob Herring * 20*724ba675SRob Herring * b) Permission is hereby granted, free of charge, to any person 21*724ba675SRob Herring * obtaining a copy of this software and associated documentation 22*724ba675SRob Herring * files (the "Software"), to deal in the Software without 23*724ba675SRob Herring * restriction, including without limitation the rights to use, 24*724ba675SRob Herring * copy, modify, merge, publish, distribute, sublicense, and/or 25*724ba675SRob Herring * sell copies of the Software, and to permit persons to whom the 26*724ba675SRob Herring * Software is furnished to do so, subject to the following 27*724ba675SRob Herring * conditions: 28*724ba675SRob Herring * 29*724ba675SRob Herring * The above copyright notice and this permission notice shall be 30*724ba675SRob Herring * included in all copies or substantial portions of the Software. 31*724ba675SRob Herring * 32*724ba675SRob Herring * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 33*724ba675SRob Herring * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34*724ba675SRob Herring * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35*724ba675SRob Herring * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36*724ba675SRob Herring * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 37*724ba675SRob Herring * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38*724ba675SRob Herring * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39*724ba675SRob Herring * OTHER DEALINGS IN THE SOFTWARE. 40*724ba675SRob Herring */ 41*724ba675SRob Herring 42*724ba675SRob Herring/dts-v1/; 43*724ba675SRob Herring 44*724ba675SRob Herring#include "imx6q.dtsi" 45*724ba675SRob Herring#include "imx6qdl-sr-som.dtsi" 46*724ba675SRob Herring#include "imx6qdl-sr-som-brcm.dtsi" 47*724ba675SRob Herring 48*724ba675SRob Herring/ { 49*724ba675SRob Herring model = "Auvidea H100"; 50*724ba675SRob Herring compatible = "auvidea,h100", "fsl,imx6q"; 51*724ba675SRob Herring 52*724ba675SRob Herring /* Will be filled by the bootloader */ 53*724ba675SRob Herring memory@10000000 { 54*724ba675SRob Herring device_type = "memory"; 55*724ba675SRob Herring reg = <0x10000000 0>; 56*724ba675SRob Herring }; 57*724ba675SRob Herring 58*724ba675SRob Herring aliases { 59*724ba675SRob Herring rtc0 = &rtc; 60*724ba675SRob Herring rtc1 = &snvs_rtc; 61*724ba675SRob Herring }; 62*724ba675SRob Herring 63*724ba675SRob Herring chosen { 64*724ba675SRob Herring stdout-path = &uart2; 65*724ba675SRob Herring }; 66*724ba675SRob Herring 67*724ba675SRob Herring hdmi_osc: hdmi-osc { 68*724ba675SRob Herring compatible = "fixed-clock"; 69*724ba675SRob Herring clock-output-names = "hdmi-osc"; 70*724ba675SRob Herring clock-frequency = <27000000>; 71*724ba675SRob Herring #clock-cells = <0>; 72*724ba675SRob Herring }; 73*724ba675SRob Herring 74*724ba675SRob Herring leds { 75*724ba675SRob Herring compatible = "gpio-leds"; 76*724ba675SRob Herring pinctrl-names = "default"; 77*724ba675SRob Herring pinctrl-0 = <&pinctrl_h100_leds>; 78*724ba675SRob Herring 79*724ba675SRob Herring led0: led-power { 80*724ba675SRob Herring label = "power"; 81*724ba675SRob Herring gpios = <&gpio3 0 GPIO_ACTIVE_LOW>; 82*724ba675SRob Herring default-state = "on"; 83*724ba675SRob Herring }; 84*724ba675SRob Herring 85*724ba675SRob Herring led1: led-stream { 86*724ba675SRob Herring label = "stream"; 87*724ba675SRob Herring gpios = <&gpio2 29 GPIO_ACTIVE_LOW>; 88*724ba675SRob Herring default-state = "off"; 89*724ba675SRob Herring }; 90*724ba675SRob Herring 91*724ba675SRob Herring led2: led-rec { 92*724ba675SRob Herring label = "rec"; 93*724ba675SRob Herring gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; 94*724ba675SRob Herring default-state = "off"; 95*724ba675SRob Herring }; 96*724ba675SRob Herring }; 97*724ba675SRob Herring 98*724ba675SRob Herring reg_3p3v: regulator-3p3v { 99*724ba675SRob Herring compatible = "regulator-fixed"; 100*724ba675SRob Herring regulator-name = "3P3V"; 101*724ba675SRob Herring regulator-min-microvolt = <3300000>; 102*724ba675SRob Herring regulator-max-microvolt = <3300000>; 103*724ba675SRob Herring }; 104*724ba675SRob Herring 105*724ba675SRob Herring reg_hdmi: regulator-hdmi { 106*724ba675SRob Herring pinctrl-names = "default"; 107*724ba675SRob Herring pinctrl-0 = <&pinctrl_h100_reg_hdmi>; 108*724ba675SRob Herring compatible = "regulator-fixed"; 109*724ba675SRob Herring enable-active-high; 110*724ba675SRob Herring gpio = <&gpio2 20 GPIO_ACTIVE_HIGH>; 111*724ba675SRob Herring regulator-name = "V_HDMI"; 112*724ba675SRob Herring regulator-min-microvolt = <5000000>; 113*724ba675SRob Herring regulator-max-microvolt = <5000000>; 114*724ba675SRob Herring regulator-always-on; 115*724ba675SRob Herring }; 116*724ba675SRob Herring 117*724ba675SRob Herring reg_usbh1_vbus: regulator-usb-h1-vbus { 118*724ba675SRob Herring compatible = "regulator-fixed"; 119*724ba675SRob Herring enable-active-high; 120*724ba675SRob Herring gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>; 121*724ba675SRob Herring pinctrl-names = "default"; 122*724ba675SRob Herring pinctrl-0 = <&pinctrl_h100_usbh1_vbus>; 123*724ba675SRob Herring regulator-name = "USB_H1_VBUS"; 124*724ba675SRob Herring regulator-min-microvolt = <5000000>; 125*724ba675SRob Herring regulator-max-microvolt = <5000000>; 126*724ba675SRob Herring }; 127*724ba675SRob Herring 128*724ba675SRob Herring reg_usbotg_vbus: regulator-usb-otg-vbus { 129*724ba675SRob Herring compatible = "regulator-fixed"; 130*724ba675SRob Herring enable-active-high; 131*724ba675SRob Herring gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>; 132*724ba675SRob Herring pinctrl-names = "default"; 133*724ba675SRob Herring pinctrl-0 = <&pinctrl_h100_usbotg_vbus>; 134*724ba675SRob Herring regulator-name = "USB_OTG_VBUS"; 135*724ba675SRob Herring regulator-min-microvolt = <5000000>; 136*724ba675SRob Herring regulator-max-microvolt = <5000000>; 137*724ba675SRob Herring }; 138*724ba675SRob Herring 139*724ba675SRob Herring sound-sgtl5000 { 140*724ba675SRob Herring compatible = "fsl,imx-audio-sgtl5000"; 141*724ba675SRob Herring model = "H100 on-board codec"; 142*724ba675SRob Herring audio-codec = <&sgtl5000>; 143*724ba675SRob Herring audio-routing = 144*724ba675SRob Herring "MIC_IN", "Mic Jack", 145*724ba675SRob Herring "Mic Jack", "Mic Bias", 146*724ba675SRob Herring "Headphone Jack", "HP_OUT"; 147*724ba675SRob Herring mux-ext-port = <5>; 148*724ba675SRob Herring mux-int-port = <1>; 149*724ba675SRob Herring ssi-controller = <&ssi1>; 150*724ba675SRob Herring }; 151*724ba675SRob Herring}; 152*724ba675SRob Herring 153*724ba675SRob Herring&audmux { 154*724ba675SRob Herring status = "okay"; 155*724ba675SRob Herring}; 156*724ba675SRob Herring 157*724ba675SRob Herring&hdmi { 158*724ba675SRob Herring pinctrl-names = "default"; 159*724ba675SRob Herring pinctrl-0 = <&pinctrl_h100_hdmi>; 160*724ba675SRob Herring ddc-i2c-bus = <&i2c2>; 161*724ba675SRob Herring status = "okay"; 162*724ba675SRob Herring}; 163*724ba675SRob Herring 164*724ba675SRob Herring&i2c1 { 165*724ba675SRob Herring pinctrl-names = "default"; 166*724ba675SRob Herring pinctrl-0 = <&pinctrl_h100_i2c1>; 167*724ba675SRob Herring status = "okay"; 168*724ba675SRob Herring 169*724ba675SRob Herring eeprom: eeprom@51 { 170*724ba675SRob Herring compatible = "microchip,24c02", "atmel,24c02"; 171*724ba675SRob Herring reg = <0x51>; 172*724ba675SRob Herring }; 173*724ba675SRob Herring 174*724ba675SRob Herring rtc: pcf8523@68 { 175*724ba675SRob Herring compatible = "nxp,pcf8523"; 176*724ba675SRob Herring reg = <0x68>; 177*724ba675SRob Herring }; 178*724ba675SRob Herring 179*724ba675SRob Herring sgtl5000: sgtl5000@a { 180*724ba675SRob Herring compatible = "fsl,sgtl5000"; 181*724ba675SRob Herring reg = <0x0a>; 182*724ba675SRob Herring pinctrl-names = "default"; 183*724ba675SRob Herring pinctrl-0 = <&pinctrl_h100_sgtl5000>; 184*724ba675SRob Herring clocks = <&clks IMX6QDL_CLK_CKO>; 185*724ba675SRob Herring VDDA-supply = <®_3p3v>; 186*724ba675SRob Herring VDDIO-supply = <®_3p3v>; 187*724ba675SRob Herring }; 188*724ba675SRob Herring 189*724ba675SRob Herring tc358743: tc358743@f { 190*724ba675SRob Herring compatible = "toshiba,tc358743"; 191*724ba675SRob Herring reg = <0x0f>; 192*724ba675SRob Herring pinctrl-names = "default"; 193*724ba675SRob Herring pinctrl-0 = <&pinctrl_h100_tc358743>; 194*724ba675SRob Herring clocks = <&hdmi_osc>; 195*724ba675SRob Herring clock-names = "refclk"; 196*724ba675SRob Herring reset-gpios = <&gpio6 15 GPIO_ACTIVE_LOW>; 197*724ba675SRob Herring /* IRQ has a wrong pull resistor which renders it useless */ 198*724ba675SRob Herring 199*724ba675SRob Herring port { 200*724ba675SRob Herring tc358743_out: endpoint { 201*724ba675SRob Herring remote-endpoint = <&mipi_csi2_in>; 202*724ba675SRob Herring data-lanes = <1 2 3 4>; 203*724ba675SRob Herring clock-lanes = <0>; 204*724ba675SRob Herring clock-noncontinuous; 205*724ba675SRob Herring link-frequencies = /bits/ 64 <297000000>; 206*724ba675SRob Herring }; 207*724ba675SRob Herring }; 208*724ba675SRob Herring }; 209*724ba675SRob Herring}; 210*724ba675SRob Herring 211*724ba675SRob Herring&i2c2 { 212*724ba675SRob Herring clock-frequency = <100000>; 213*724ba675SRob Herring pinctrl-names = "default"; 214*724ba675SRob Herring pinctrl-0 = <&pinctrl_h100_i2c2>; 215*724ba675SRob Herring status = "okay"; 216*724ba675SRob Herring}; 217*724ba675SRob Herring 218*724ba675SRob Herring&iomuxc { 219*724ba675SRob Herring h100 { 220*724ba675SRob Herring pinctrl_h100_hdmi: h100-hdmi { 221*724ba675SRob Herring fsl,pins = < 222*724ba675SRob Herring MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0 223*724ba675SRob Herring >; 224*724ba675SRob Herring }; 225*724ba675SRob Herring 226*724ba675SRob Herring pinctrl_h100_i2c1: h100-i2c1 { 227*724ba675SRob Herring fsl,pins = < 228*724ba675SRob Herring MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 229*724ba675SRob Herring MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1 230*724ba675SRob Herring >; 231*724ba675SRob Herring }; 232*724ba675SRob Herring 233*724ba675SRob Herring pinctrl_h100_i2c2: h100-i2c2 { 234*724ba675SRob Herring fsl,pins = < 235*724ba675SRob Herring MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 236*724ba675SRob Herring MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 237*724ba675SRob Herring >; 238*724ba675SRob Herring }; 239*724ba675SRob Herring 240*724ba675SRob Herring pinctrl_h100_leds: pinctrl-h100-leds { 241*724ba675SRob Herring fsl,pins = < 242*724ba675SRob Herring MX6QDL_PAD_EIM_DA0__GPIO3_IO00 0x1b0b0 243*724ba675SRob Herring MX6QDL_PAD_EIM_EB1__GPIO2_IO29 0x1b0b0 244*724ba675SRob Herring MX6QDL_PAD_EIM_EB0__GPIO2_IO28 0x1b0b0 245*724ba675SRob Herring >; 246*724ba675SRob Herring }; 247*724ba675SRob Herring 248*724ba675SRob Herring pinctrl_h100_reg_hdmi: h100-reg-hdmi { 249*724ba675SRob Herring fsl,pins = < 250*724ba675SRob Herring MX6QDL_PAD_EIM_A18__GPIO2_IO20 0x1b0b0 251*724ba675SRob Herring >; 252*724ba675SRob Herring }; 253*724ba675SRob Herring 254*724ba675SRob Herring pinctrl_h100_sgtl5000: h100-sgtl5000 { 255*724ba675SRob Herring fsl,pins = < 256*724ba675SRob Herring MX6QDL_PAD_DISP0_DAT19__AUD5_RXD 0x130b0 257*724ba675SRob Herring MX6QDL_PAD_KEY_COL0__AUD5_TXC 0x130b0 258*724ba675SRob Herring MX6QDL_PAD_KEY_ROW0__AUD5_TXD 0x110b0 259*724ba675SRob Herring MX6QDL_PAD_KEY_COL1__AUD5_TXFS 0x130b0 260*724ba675SRob Herring MX6QDL_PAD_GPIO_5__CCM_CLKO1 0x130b0 261*724ba675SRob Herring >; 262*724ba675SRob Herring }; 263*724ba675SRob Herring 264*724ba675SRob Herring pinctrl_h100_tc358743: h100-tc358743 { 265*724ba675SRob Herring fsl,pins = < 266*724ba675SRob Herring MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x1b0b0 267*724ba675SRob Herring >; 268*724ba675SRob Herring }; 269*724ba675SRob Herring 270*724ba675SRob Herring pinctrl_h100_uart2: h100-uart2 { 271*724ba675SRob Herring fsl,pins = < 272*724ba675SRob Herring MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1 273*724ba675SRob Herring MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1 274*724ba675SRob Herring >; 275*724ba675SRob Herring }; 276*724ba675SRob Herring 277*724ba675SRob Herring pinctrl_h100_usbh1_vbus: hummingboard-usbh1-vbus { 278*724ba675SRob Herring fsl,pins = < 279*724ba675SRob Herring MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x1b0b0 280*724ba675SRob Herring >; 281*724ba675SRob Herring }; 282*724ba675SRob Herring 283*724ba675SRob Herring pinctrl_h100_usbotg_id: hummingboard-usbotg-id { 284*724ba675SRob Herring fsl,pins = < 285*724ba675SRob Herring MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x13059 286*724ba675SRob Herring >; 287*724ba675SRob Herring }; 288*724ba675SRob Herring 289*724ba675SRob Herring pinctrl_h100_usbotg_vbus: hummingboard-usbotg-vbus { 290*724ba675SRob Herring fsl,pins = < 291*724ba675SRob Herring MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0 292*724ba675SRob Herring >; 293*724ba675SRob Herring }; 294*724ba675SRob Herring 295*724ba675SRob Herring pinctrl_h100_usdhc2: h100-usdhc2 { 296*724ba675SRob Herring fsl,pins = < 297*724ba675SRob Herring MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1f071 298*724ba675SRob Herring MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059 299*724ba675SRob Herring MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059 300*724ba675SRob Herring MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059 301*724ba675SRob Herring MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059 302*724ba675SRob Herring MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059 303*724ba675SRob Herring MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x13059 304*724ba675SRob Herring MX6QDL_PAD_KEY_ROW1__SD2_VSELECT 0x1b0b0 305*724ba675SRob Herring >; 306*724ba675SRob Herring }; 307*724ba675SRob Herring 308*724ba675SRob Herring pinctrl_h100_usdhc2_100mhz: h100-usdhc2-100mhz { 309*724ba675SRob Herring fsl,pins = < 310*724ba675SRob Herring MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1f071 311*724ba675SRob Herring MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170b9 312*724ba675SRob Herring MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100b9 313*724ba675SRob Herring MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170b9 314*724ba675SRob Herring MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170b9 315*724ba675SRob Herring MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170b9 316*724ba675SRob Herring MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170b9 317*724ba675SRob Herring MX6QDL_PAD_KEY_ROW1__SD2_VSELECT 0x1b0b0 318*724ba675SRob Herring >; 319*724ba675SRob Herring }; 320*724ba675SRob Herring 321*724ba675SRob Herring pinctrl_h100_usdhc2_200mhz: h100-usdhc2-200mhz { 322*724ba675SRob Herring fsl,pins = < 323*724ba675SRob Herring MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1f071 324*724ba675SRob Herring MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170f9 325*724ba675SRob Herring MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100f9 326*724ba675SRob Herring MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170f9 327*724ba675SRob Herring MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170f9 328*724ba675SRob Herring MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170f9 329*724ba675SRob Herring MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170f9 330*724ba675SRob Herring MX6QDL_PAD_KEY_ROW1__SD2_VSELECT 0x1b0b0 331*724ba675SRob Herring >; 332*724ba675SRob Herring }; 333*724ba675SRob Herring }; 334*724ba675SRob Herring}; 335*724ba675SRob Herring 336*724ba675SRob Herring&mipi_csi { 337*724ba675SRob Herring status = "okay"; 338*724ba675SRob Herring 339*724ba675SRob Herring port { 340*724ba675SRob Herring mipi_csi2_in: endpoint { 341*724ba675SRob Herring remote-endpoint = <&tc358743_out>; 342*724ba675SRob Herring data-lanes = <1 2 3 4>; 343*724ba675SRob Herring clock-lanes = <0>; 344*724ba675SRob Herring clock-noncontinuous; 345*724ba675SRob Herring link-frequencies = /bits/ 64 <297000000>; 346*724ba675SRob Herring }; 347*724ba675SRob Herring }; 348*724ba675SRob Herring}; 349*724ba675SRob Herring 350*724ba675SRob Herring&ssi1 { 351*724ba675SRob Herring status = "okay"; 352*724ba675SRob Herring}; 353*724ba675SRob Herring 354*724ba675SRob Herring&uart2 { 355*724ba675SRob Herring pinctrl-names = "default"; 356*724ba675SRob Herring pinctrl-0 = <&pinctrl_h100_uart2>; 357*724ba675SRob Herring status = "okay"; 358*724ba675SRob Herring}; 359*724ba675SRob Herring 360*724ba675SRob Herring&usbh1 { 361*724ba675SRob Herring disable-over-current; 362*724ba675SRob Herring vbus-supply = <®_usbh1_vbus>; 363*724ba675SRob Herring status = "okay"; 364*724ba675SRob Herring}; 365*724ba675SRob Herring 366*724ba675SRob Herring&usbotg { 367*724ba675SRob Herring disable-over-current; 368*724ba675SRob Herring pinctrl-names = "default"; 369*724ba675SRob Herring pinctrl-0 = <&pinctrl_h100_usbotg_id>; 370*724ba675SRob Herring vbus-supply = <®_usbotg_vbus>; 371*724ba675SRob Herring status = "okay"; 372*724ba675SRob Herring}; 373*724ba675SRob Herring 374*724ba675SRob Herring&usdhc2 { 375*724ba675SRob Herring pinctrl-names = "default", "state_100mhz", "state_200mhz"; 376*724ba675SRob Herring pinctrl-0 = <&pinctrl_h100_usdhc2>; 377*724ba675SRob Herring pinctrl-1 = <&pinctrl_h100_usdhc2_100mhz>; 378*724ba675SRob Herring pinctrl-2 = <&pinctrl_h100_usdhc2_200mhz>; 379*724ba675SRob Herring vmmc-supply = <®_3p3v>; 380*724ba675SRob Herring cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>; 381*724ba675SRob Herring status = "okay"; 382*724ba675SRob Herring}; 383