Back to home page

OSCL-LXR

 
 

    


0001 /*
0002  * Copyright (C) 2013,2014 Russell King
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 #include <dt-bindings/sound/fsl-imx-audmux.h>
0042 
0043 / {
0044         /* Will be filled by the bootloader */
0045         memory@10000000 {
0046                 device_type = "memory";
0047                 reg = <0x10000000 0>;
0048         };
0049 
0050         chosen {
0051                 stdout-path = &uart1;
0052         };
0053 
0054         ir_recv: ir-receiver {
0055                 compatible = "gpio-ir-receiver";
0056                 gpios = <&gpio3 5 GPIO_ACTIVE_LOW>;
0057                 pinctrl-names = "default";
0058                 pinctrl-0 = <&pinctrl_hummingboard_gpio3_5>;
0059         };
0060 
0061         v_3v2: regulator-v-3v2 {
0062                 compatible = "regulator-fixed";
0063                 regulator-always-on;
0064                 regulator-max-microvolt = <3300000>;
0065                 regulator-min-microvolt = <3300000>;
0066                 regulator-name = "v_3v2";
0067                 vin-supply = <&v_5v0>;
0068         };
0069 
0070         v_5v0: regulator-v-5v0 {
0071                 compatible = "regulator-fixed";
0072                 regulator-always-on;
0073                 regulator-max-microvolt = <5000000>;
0074                 regulator-min-microvolt = <5000000>;
0075                 regulator-name = "v_5v0";
0076         };
0077 
0078         v_sd: regulator-v-sd {
0079                 compatible = "regulator-fixed";
0080                 gpio = <&gpio4 30 GPIO_ACTIVE_HIGH>;
0081                 pinctrl-names = "default";
0082                 pinctrl-0 = <&pinctrl_hummingboard_vmmc>;
0083                 regulator-boot-on;
0084                 regulator-max-microvolt = <3300000>;
0085                 regulator-min-microvolt = <3300000>;
0086                 regulator-name = "v_sd";
0087                 startup-delay-us = <1000>;
0088                 vin-supply = <&v_3v2>;
0089         };
0090 
0091         v_usb2: regulator-v-usb2 {
0092                 compatible = "regulator-fixed";
0093                 enable-active-high;
0094                 gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
0095                 pinctrl-names = "default";
0096                 pinctrl-0 = <&pinctrl_hummingboard_usbh1_vbus>;
0097                 regulator-max-microvolt = <5000000>;
0098                 regulator-min-microvolt = <5000000>;
0099                 regulator-name = "v_usb2";
0100                 vin-supply = <&v_5v0>;
0101         };
0102 
0103         v_usb1: regulator-v-usb1 {
0104                 compatible = "regulator-fixed";
0105                 enable-active-high;
0106                 gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
0107                 pinctrl-names = "default";
0108                 pinctrl-0 = <&pinctrl_hummingboard_usbotg_vbus>;
0109                 regulator-max-microvolt = <5000000>;
0110                 regulator-min-microvolt = <5000000>;
0111                 regulator-name = "v_usb1";
0112                 vin-supply = <&v_5v0>;
0113         };
0114 
0115         audio: sound-sgtl5000 {
0116                 compatible = "simple-audio-card";
0117                 simple-audio-card,name = "On-board Codec";
0118                 simple-audio-card,format = "i2s";
0119                 simple-audio-card,bitclock-master = <&sound_codec>;
0120                 simple-audio-card,frame-master = <&sound_codec>;
0121                 simple-audio-card,widgets =
0122                         "Microphone", "Headphone Jack",
0123                         "Headphone", "Headphone Jack";
0124                 simple-audio-card,routing =
0125                         "MIC_IN", "Headphone Jack",
0126                         "Headphone Jack", "Mic Bias",
0127                         "Headphone Jack", "HP_OUT";
0128 
0129                 sound_cpu: simple-audio-card,cpu {
0130                         sound-dai = <&ssi1>;
0131                 };
0132 
0133                 sound_codec: simple-audio-card,codec {
0134                         sound-dai = <&sgtl5000>;
0135                 };
0136         };
0137 
0138         sound-spdif {
0139                 compatible = "fsl,imx-audio-spdif";
0140                 model = "On-board SPDIF";
0141                 /* IMX6 doesn't implement this yet */
0142                 spdif-controller = <&spdif>;
0143                 spdif-out;
0144         };
0145 };
0146 
0147 &audmux {
0148         status = "okay";
0149 
0150         ssi1 {
0151                 fsl,audmux-port = <0>;
0152                 fsl,port-config = <
0153                         (IMX_AUDMUX_V2_PTCR_SYN |
0154                          IMX_AUDMUX_V2_PTCR_TFSEL(4) |
0155                          IMX_AUDMUX_V2_PTCR_TCSEL(4) |
0156                          IMX_AUDMUX_V2_PTCR_TFSDIR |
0157                          IMX_AUDMUX_V2_PTCR_TCLKDIR)
0158                          IMX_AUDMUX_V2_PDCR_RXDSEL(4)
0159                 >;
0160         };
0161 
0162         pins5 {
0163                 fsl,audmux-port = <4>;
0164                 fsl,port-config = <
0165                         IMX_AUDMUX_V2_PTCR_SYN
0166                         IMX_AUDMUX_V2_PDCR_RXDSEL(0)
0167                 >;
0168         };
0169 };
0170 
0171 &can1 {
0172         pinctrl-names = "default";
0173         pinctrl-0 = <&pinctrl_hummingboard_flexcan1>;
0174         status = "okay";
0175 };
0176 
0177 &hdmi {
0178         pinctrl-names = "default";
0179         pinctrl-0 = <&pinctrl_hummingboard_hdmi>;
0180         ddc-i2c-bus = <&i2c2>;
0181         status = "okay";
0182 };
0183 
0184 &i2c1 {
0185         pinctrl-names = "default";
0186         pinctrl-0 = <&pinctrl_hummingboard_i2c1>;
0187         status = "okay";
0188 
0189         /* Pro baseboard model */
0190         rtc@68 {
0191                 compatible = "nxp,pcf8523";
0192                 reg = <0x68>;
0193         };
0194 
0195         /* Pro baseboard model */
0196         sgtl5000: codec@a {
0197                 clocks = <&clks IMX6QDL_CLK_CKO>;
0198                 compatible = "fsl,sgtl5000";
0199                 pinctrl-names = "default";
0200                 pinctrl-0 = <&pinctrl_hummingboard_sgtl5000>;
0201                 #sound-dai-cells = <0>;
0202                 reg = <0x0a>;
0203                 VDDA-supply = <&v_3v2>;
0204                 VDDIO-supply = <&v_3v2>;
0205         };
0206 };
0207 
0208 &i2c2 {
0209         clock-frequency = <100000>;
0210         pinctrl-names = "default";
0211         pinctrl-0 = <&pinctrl_hummingboard_i2c2>;
0212         status = "okay";
0213 };
0214 
0215 &iomuxc {
0216         hummingboard {
0217                 pinctrl_hummingboard_flexcan1: hummingboard-flexcan1 {
0218                         fsl,pins = <
0219                                 MX6QDL_PAD_SD3_CLK__FLEXCAN1_RX 0x80000000
0220                                 MX6QDL_PAD_SD3_CMD__FLEXCAN1_TX 0x80000000
0221                         >;
0222                 };
0223 
0224                 pinctrl_hummingboard_gpio3_5: hummingboard-gpio3_5 {
0225                         fsl,pins = <
0226                                 MX6QDL_PAD_EIM_DA5__GPIO3_IO05 0x1b0b1
0227                         >;
0228                 };
0229 
0230                 pinctrl_hummingboard_hdmi: hummingboard-hdmi {
0231                         fsl,pins = <
0232                                 MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0
0233                         >;
0234                 };
0235 
0236                 pinctrl_hummingboard_i2c1: hummingboard-i2c1 {
0237                         fsl,pins = <
0238                                 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
0239                                 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
0240                         >;
0241                 };
0242 
0243                 pinctrl_hummingboard_i2c2: hummingboard-i2c2 {
0244                         fsl,pins = <
0245                                 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
0246                                 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
0247                         >;
0248                 };
0249 
0250                 pinctrl_hummingboard_pcie_reset: hummingboard-pcie-reset {
0251                         fsl,pins = <
0252                                 MX6QDL_PAD_EIM_DA4__GPIO3_IO04 0x1b0b1
0253                         >;
0254                 };
0255 
0256                 pinctrl_hummingboard_pwm1: pwm1grp {
0257                         fsl,pins = <MX6QDL_PAD_DISP0_DAT8__PWM1_OUT 0x1b0b1>;
0258                 };
0259 
0260                 pinctrl_hummingboard_sgtl5000: hummingboard-sgtl5000 {
0261                         fsl,pins = <
0262                                 MX6QDL_PAD_DISP0_DAT19__AUD5_RXD 0x130b0
0263                                 MX6QDL_PAD_KEY_COL0__AUD5_TXC 0x130b0
0264                                 MX6QDL_PAD_KEY_ROW0__AUD5_TXD 0x110b0
0265                                 MX6QDL_PAD_KEY_COL1__AUD5_TXFS 0x130b0
0266                                 MX6QDL_PAD_GPIO_5__CCM_CLKO1 0x130b0
0267                         >;
0268                 };
0269 
0270                 pinctrl_hummingboard_spdif: hummingboard-spdif {
0271                         fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x13091>;
0272                 };
0273 
0274                 pinctrl_hummingboard_usbh1_vbus: hummingboard-usbh1-vbus {
0275                         fsl,pins = <MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x1b0b0>;
0276                 };
0277 
0278                 pinctrl_hummingboard_usbotg_id: hummingboard-usbotg-id {
0279                         /*
0280                          * We want it pulled down for a fixed host connection.
0281                          */
0282                         fsl,pins = <MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x13059>;
0283                 };
0284 
0285                 pinctrl_hummingboard_usbotg_vbus: hummingboard-usbotg-vbus {
0286                         fsl,pins = <MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0>;
0287                 };
0288 
0289                 pinctrl_hummingboard_usdhc2_aux: hummingboard-usdhc2-aux {
0290                         fsl,pins = <
0291                                 MX6QDL_PAD_GPIO_4__GPIO1_IO04    0x1f071
0292                         >;
0293                 };
0294 
0295                 pinctrl_hummingboard_usdhc2: hummingboard-usdhc2 {
0296                         fsl,pins = <
0297                                 MX6QDL_PAD_SD2_CMD__SD2_CMD    0x17059
0298                                 MX6QDL_PAD_SD2_CLK__SD2_CLK    0x10059
0299                                 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
0300                                 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
0301                                 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
0302                                 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x13059
0303                         >;
0304                 };
0305                 pinctrl_hummingboard_vmmc: hummingboard-vmmc {
0306                         fsl,pins = <
0307                                 MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30 0x1b0b0
0308                         >;
0309                 };
0310         };
0311 };
0312 
0313 &pcie {
0314         pinctrl-names = "default";
0315         pinctrl-0 = <&pinctrl_hummingboard_pcie_reset>;
0316         reset-gpio = <&gpio3 4 GPIO_ACTIVE_LOW>;
0317         status = "okay";
0318 };
0319 
0320 &pwm1 {
0321          pinctrl-names = "default";
0322          pinctrl-0 = <&pinctrl_hummingboard_pwm1>;
0323          status = "okay";
0324 };
0325 
0326 &pwm2 {
0327          pinctrl-names = "default";
0328          status = "okay";
0329 };
0330 
0331 &spdif {
0332         pinctrl-names = "default";
0333         pinctrl-0 = <&pinctrl_hummingboard_spdif>;
0334         status = "okay";
0335 };
0336 
0337 &ssi1 {
0338         status = "okay";
0339 };
0340 
0341 &usbh1 {
0342         disable-over-current;
0343         vbus-supply = <&v_usb2>;
0344         status = "okay";
0345 };
0346 
0347 &usbotg {
0348         disable-over-current;
0349         pinctrl-names = "default";
0350         pinctrl-0 = <&pinctrl_hummingboard_usbotg_id>;
0351         vbus-supply = <&v_usb1>;
0352         status = "okay";
0353 };
0354 
0355 &usdhc2 {
0356         pinctrl-names = "default";
0357         pinctrl-0 = <
0358                 &pinctrl_hummingboard_usdhc2_aux
0359                 &pinctrl_hummingboard_usdhc2
0360         >;
0361         vmmc-supply = <&v_sd>;
0362         cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
0363         status = "okay";
0364 };
0365 
0366 &vcc_3v3 {
0367         vin-supply = <&v_3v2>;
0368 };