Back to home page

OSCL-LXR

 
 

    


0001 /*
0002  * Copyright (C) 2015 Lucas Stach <kernel@pengutronix.de>
0003  *
0004  * This file is dual-licensed: you can use it either under the terms
0005  * of the GPL or the X11 license, at your option. Note that this dual
0006  * licensing only applies to this file, and not this project as a
0007  * whole.
0008  *
0009  *  a) This file is free software; you can redistribute it and/or
0010  *     modify it under the terms of the GNU General Public License
0011  *     version 2 as published by the Free Software Foundation.
0012  *
0013  *     This file is distributed in the hope that it will be useful,
0014  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
0015  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0016  *     GNU General Public License for more details.
0017  *
0018  * Or, alternatively,
0019  *
0020  *  b) Permission is hereby granted, free of charge, to any person
0021  *     obtaining a copy of this software and associated documentation
0022  *     files (the "Software"), to deal in the Software without
0023  *     restriction, including without limitation the rights to use,
0024  *     copy, modify, merge, publish, distribute, sublicense, and/or
0025  *     sell copies of the Software, and to permit persons to whom the
0026  *     Software is furnished to do so, subject to the following
0027  *     conditions:
0028  *
0029  *     The above copyright notice and this permission notice shall be
0030  *     included in all copies or substantial portions of the Software.
0031  *
0032  *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
0033  *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
0034  *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
0035  *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
0036  *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
0037  *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
0038  *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
0039  *     OTHER DEALINGS IN THE SOFTWARE.
0040  */
0041 
0042 /dts-v1/;
0043 
0044 #include "imx6q.dtsi"
0045 #include "imx6qdl-sr-som.dtsi"
0046 #include "imx6qdl-sr-som-brcm.dtsi"
0047 
0048 / {
0049         model = "Auvidea H100";
0050         compatible = "auvidea,h100", "fsl,imx6q";
0051 
0052         /* Will be filled by the bootloader */
0053         memory@10000000 {
0054                 device_type = "memory";
0055                 reg = <0x10000000 0>;
0056         };
0057 
0058         aliases {
0059                 rtc0 = &rtc;
0060                 rtc1 = &snvs_rtc;
0061         };
0062 
0063         chosen {
0064                 stdout-path = &uart2;
0065         };
0066 
0067         hdmi_osc: hdmi-osc {
0068                 compatible = "fixed-clock";
0069                 clock-output-names = "hdmi-osc";
0070                 clock-frequency = <27000000>;
0071                 #clock-cells = <0>;
0072         };
0073 
0074         leds {
0075                 compatible = "gpio-leds";
0076                 pinctrl-names = "default";
0077                 pinctrl-0 = <&pinctrl_h100_leds>;
0078 
0079                 led0: power {
0080                         label = "power";
0081                         gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
0082                         default-state = "on";
0083                 };
0084 
0085                 led1: stream {
0086                         label = "stream";
0087                         gpios = <&gpio2 29 GPIO_ACTIVE_LOW>;
0088                         default-state = "off";
0089                 };
0090 
0091                 led2: rec {
0092                         label = "rec";
0093                         gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
0094                         default-state = "off";
0095                 };
0096         };
0097 
0098         reg_3p3v: regulator-3p3v {
0099                 compatible = "regulator-fixed";
0100                 regulator-name = "3P3V";
0101                 regulator-min-microvolt = <3300000>;
0102                 regulator-max-microvolt = <3300000>;
0103         };
0104 
0105         reg_hdmi: regulator-hdmi {
0106                 pinctrl-names = "default";
0107                 pinctrl-0 = <&pinctrl_h100_reg_hdmi>;
0108                 compatible = "regulator-fixed";
0109                 enable-active-high;
0110                 gpio = <&gpio2 20 GPIO_ACTIVE_HIGH>;
0111                 regulator-name = "V_HDMI";
0112                 regulator-min-microvolt = <5000000>;
0113                 regulator-max-microvolt = <5000000>;
0114                 regulator-always-on;
0115         };
0116 
0117         reg_usbh1_vbus: regulator-usb-h1-vbus {
0118                 compatible = "regulator-fixed";
0119                 enable-active-high;
0120                 gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
0121                 pinctrl-names = "default";
0122                 pinctrl-0 = <&pinctrl_h100_usbh1_vbus>;
0123                 regulator-name = "USB_H1_VBUS";
0124                 regulator-min-microvolt = <5000000>;
0125                 regulator-max-microvolt = <5000000>;
0126         };
0127 
0128         reg_usbotg_vbus: regulator-usb-otg-vbus {
0129                 compatible = "regulator-fixed";
0130                 enable-active-high;
0131                 gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
0132                 pinctrl-names = "default";
0133                 pinctrl-0 = <&pinctrl_h100_usbotg_vbus>;
0134                 regulator-name = "USB_OTG_VBUS";
0135                 regulator-min-microvolt = <5000000>;
0136                 regulator-max-microvolt = <5000000>;
0137         };
0138 
0139         sound-sgtl5000 {
0140                 compatible = "fsl,imx-audio-sgtl5000";
0141                 model = "H100 on-board codec";
0142                 audio-codec = <&sgtl5000>;
0143                 audio-routing =
0144                         "MIC_IN", "Mic Jack",
0145                         "Mic Jack", "Mic Bias",
0146                         "Headphone Jack", "HP_OUT";
0147                 mux-ext-port = <5>;
0148                 mux-int-port = <1>;
0149                 ssi-controller = <&ssi1>;
0150         };
0151 };
0152 
0153 &audmux {
0154         status = "okay";
0155 };
0156 
0157 &hdmi {
0158         pinctrl-names = "default";
0159         pinctrl-0 = <&pinctrl_h100_hdmi>;
0160         ddc-i2c-bus = <&i2c2>;
0161         status = "okay";
0162 };
0163 
0164 &i2c1 {
0165         pinctrl-names = "default";
0166         pinctrl-0 = <&pinctrl_h100_i2c1>;
0167         status = "okay";
0168 
0169         eeprom: 24c02@51 {
0170                 compatible = "microchip,24c02", "atmel,24c02";
0171                 reg = <0x51>;
0172         };
0173 
0174         rtc: pcf8523@68 {
0175                 compatible = "nxp,pcf8523";
0176                 reg = <0x68>;
0177         };
0178 
0179         sgtl5000: sgtl5000@a {
0180                 compatible = "fsl,sgtl5000";
0181                 reg = <0x0a>;
0182                 pinctrl-names = "default";
0183                 pinctrl-0 = <&pinctrl_h100_sgtl5000>;
0184                 clocks = <&clks IMX6QDL_CLK_CKO>;
0185                 VDDA-supply = <&reg_3p3v>;
0186                 VDDIO-supply = <&reg_3p3v>;
0187         };
0188 
0189         tc358743: tc358743@f {
0190                 compatible = "toshiba,tc358743";
0191                 reg = <0x0f>;
0192                 pinctrl-names = "default";
0193                 pinctrl-0 = <&pinctrl_h100_tc358743>;
0194                 clocks = <&hdmi_osc>;
0195                 clock-names = "refclk";
0196                 reset-gpios = <&gpio6 15 GPIO_ACTIVE_LOW>;
0197                 /* IRQ has a wrong pull resistor which renders it useless  */
0198 
0199                 port {
0200                         tc358743_out: endpoint {
0201                                 remote-endpoint = <&mipi_csi2_in>;
0202                                 data-lanes = <1 2 3 4>;
0203                                 clock-lanes = <0>;
0204                                 clock-noncontinuous;
0205                                 link-frequencies = /bits/ 64 <297000000>;
0206                         };
0207                 };
0208         };
0209 };
0210 
0211 &i2c2 {
0212         clock-frequency = <100000>;
0213         pinctrl-names = "default";
0214         pinctrl-0 = <&pinctrl_h100_i2c2>;
0215         status = "okay";
0216 };
0217 
0218 &iomuxc {
0219         h100 {
0220                 pinctrl_h100_hdmi: h100-hdmi {
0221                         fsl,pins = <
0222                                 MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE   0x1f8b0
0223                         >;
0224                 };
0225 
0226                 pinctrl_h100_i2c1: h100-i2c1 {
0227                         fsl,pins = <
0228                                 MX6QDL_PAD_EIM_D21__I2C1_SCL            0x4001b8b1
0229                                 MX6QDL_PAD_EIM_D28__I2C1_SDA            0x4001b8b1
0230                         >;
0231                 };
0232 
0233                 pinctrl_h100_i2c2: h100-i2c2 {
0234                         fsl,pins = <
0235                                 MX6QDL_PAD_KEY_COL3__I2C2_SCL           0x4001b8b1
0236                                 MX6QDL_PAD_KEY_ROW3__I2C2_SDA           0x4001b8b1
0237                         >;
0238                 };
0239 
0240                 pinctrl_h100_leds: pinctrl-h100-leds {
0241                         fsl,pins = <
0242                                 MX6QDL_PAD_EIM_DA0__GPIO3_IO00          0x1b0b0
0243                                 MX6QDL_PAD_EIM_EB1__GPIO2_IO29          0x1b0b0
0244                                 MX6QDL_PAD_EIM_EB0__GPIO2_IO28          0x1b0b0
0245                         >;
0246                 };
0247 
0248                 pinctrl_h100_reg_hdmi: h100-reg-hdmi {
0249                         fsl,pins = <
0250                                 MX6QDL_PAD_EIM_A18__GPIO2_IO20          0x1b0b0
0251                         >;
0252                 };
0253 
0254                 pinctrl_h100_sgtl5000: h100-sgtl5000 {
0255                         fsl,pins = <
0256                                 MX6QDL_PAD_DISP0_DAT19__AUD5_RXD        0x130b0
0257                                 MX6QDL_PAD_KEY_COL0__AUD5_TXC           0x130b0
0258                                 MX6QDL_PAD_KEY_ROW0__AUD5_TXD           0x110b0
0259                                 MX6QDL_PAD_KEY_COL1__AUD5_TXFS          0x130b0
0260                                 MX6QDL_PAD_GPIO_5__CCM_CLKO1            0x130b0
0261                         >;
0262                 };
0263 
0264                 pinctrl_h100_tc358743: h100-tc358743 {
0265                         fsl,pins = <
0266                                 MX6QDL_PAD_NANDF_CS2__GPIO6_IO15        0x1b0b0
0267                         >;
0268                 };
0269 
0270                 pinctrl_h100_uart2: h100-uart2 {
0271                         fsl,pins = <
0272                                 MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA      0x1b0b1
0273                                 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA      0x1b0b1
0274                         >;
0275                 };
0276 
0277                 pinctrl_h100_usbh1_vbus: hummingboard-usbh1-vbus {
0278                         fsl,pins = <
0279                                 MX6QDL_PAD_GPIO_0__GPIO1_IO00           0x1b0b0
0280                         >;
0281                 };
0282 
0283                 pinctrl_h100_usbotg_id: hummingboard-usbotg-id {
0284                         fsl,pins = <
0285                                 MX6QDL_PAD_GPIO_1__USB_OTG_ID           0x13059
0286                         >;
0287                 };
0288 
0289                 pinctrl_h100_usbotg_vbus: hummingboard-usbotg-vbus {
0290                         fsl,pins = <
0291                                 MX6QDL_PAD_EIM_D22__GPIO3_IO22          0x1b0b0
0292                         >;
0293                 };
0294 
0295                 pinctrl_h100_usdhc2: h100-usdhc2 {
0296                         fsl,pins = <
0297                                 MX6QDL_PAD_GPIO_4__GPIO1_IO04           0x1f071
0298                                 MX6QDL_PAD_SD2_CMD__SD2_CMD             0x17059
0299                                 MX6QDL_PAD_SD2_CLK__SD2_CLK             0x10059
0300                                 MX6QDL_PAD_SD2_DAT0__SD2_DATA0          0x17059
0301                                 MX6QDL_PAD_SD2_DAT1__SD2_DATA1          0x17059
0302                                 MX6QDL_PAD_SD2_DAT2__SD2_DATA2          0x17059
0303                                 MX6QDL_PAD_SD2_DAT3__SD2_DATA3          0x13059
0304                                 MX6QDL_PAD_KEY_ROW1__SD2_VSELECT        0x1b0b0
0305                         >;
0306                 };
0307 
0308                 pinctrl_h100_usdhc2_100mhz: h100-usdhc2-100mhz {
0309                         fsl,pins = <
0310                                 MX6QDL_PAD_GPIO_4__GPIO1_IO04           0x1f071
0311                                 MX6QDL_PAD_SD2_CMD__SD2_CMD             0x170b9
0312                                 MX6QDL_PAD_SD2_CLK__SD2_CLK             0x100b9
0313                                 MX6QDL_PAD_SD2_DAT0__SD2_DATA0          0x170b9
0314                                 MX6QDL_PAD_SD2_DAT1__SD2_DATA1          0x170b9
0315                                 MX6QDL_PAD_SD2_DAT2__SD2_DATA2          0x170b9
0316                                 MX6QDL_PAD_SD2_DAT3__SD2_DATA3          0x170b9
0317                                 MX6QDL_PAD_KEY_ROW1__SD2_VSELECT        0x1b0b0
0318                         >;
0319                 };
0320 
0321                 pinctrl_h100_usdhc2_200mhz: h100-usdhc2-200mhz {
0322                         fsl,pins = <
0323                                 MX6QDL_PAD_GPIO_4__GPIO1_IO04           0x1f071
0324                                 MX6QDL_PAD_SD2_CMD__SD2_CMD             0x170f9
0325                                 MX6QDL_PAD_SD2_CLK__SD2_CLK             0x100f9
0326                                 MX6QDL_PAD_SD2_DAT0__SD2_DATA0          0x170f9
0327                                 MX6QDL_PAD_SD2_DAT1__SD2_DATA1          0x170f9
0328                                 MX6QDL_PAD_SD2_DAT2__SD2_DATA2          0x170f9
0329                                 MX6QDL_PAD_SD2_DAT3__SD2_DATA3          0x170f9
0330                                 MX6QDL_PAD_KEY_ROW1__SD2_VSELECT        0x1b0b0
0331                         >;
0332                 };
0333         };
0334 };
0335 
0336 &mipi_csi {
0337         status = "okay";
0338 
0339         port {
0340                 mipi_csi2_in: endpoint {
0341                         remote-endpoint = <&tc358743_out>;
0342                         data-lanes = <1 2 3 4>;
0343                         clock-lanes = <0>;
0344                         clock-noncontinuous;
0345                         link-frequencies = /bits/ 64 <297000000>;
0346                 };
0347         };
0348 };
0349 
0350 &ssi1 {
0351         status = "okay";
0352 };
0353 
0354 &uart2 {
0355         pinctrl-names = "default";
0356         pinctrl-0 = <&pinctrl_h100_uart2>;
0357         status = "okay";
0358 };
0359 
0360 &usbh1 {
0361         disable-over-current;
0362         vbus-supply = <&reg_usbh1_vbus>;
0363         status = "okay";
0364 };
0365 
0366 &usbotg {
0367         disable-over-current;
0368         pinctrl-names = "default";
0369         pinctrl-0 = <&pinctrl_h100_usbotg_id>;
0370         vbus-supply = <&reg_usbotg_vbus>;
0371         status = "okay";
0372 };
0373 
0374 &usdhc2 {
0375         pinctrl-names = "default", "state_100mhz", "state_200mhz";
0376         pinctrl-0 = <&pinctrl_h100_usdhc2>;
0377         pinctrl-1 = <&pinctrl_h100_usdhc2_100mhz>;
0378         pinctrl-2 = <&pinctrl_h100_usdhc2_200mhz>;
0379         vmmc-supply = <&reg_3p3v>;
0380         cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
0381         status = "okay";
0382 };