Back to home page

OSCL-LXR

 
 

    


0001 /*
0002  * Copyright 2015 Timesys Corporation.
0003  * Copyright 2015 General Electric Company
0004  *
0005  * This file is dual-licensed: you can use it either under the terms
0006  * of the GPL or the X11 license, at your option. Note that this dual
0007  * licensing only applies to this file, and not this project as a
0008  * whole.
0009  *
0010  *  a) This file is free software; you can redistribute it and/or
0011  *     modify it under the terms of the GNU General Public License
0012  *     version 2 as published by the Free Software Foundation.
0013  *
0014  *     This file is distributed in the hope that it will be useful,
0015  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
0016  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0017  *     GNU General Public License for more details.
0018  *
0019  * Or, alternatively,
0020  *
0021  *  b) Permission is hereby granted, free of charge, to any person
0022  *     obtaining a copy of this software and associated documentation
0023  *     files (the "Software"), to deal in the Software without
0024  *     restriction, including without limitation the rights to use,
0025  *     copy, modify, merge, publish, distribute, sublicense, and/or
0026  *     sell copies of the Software, and to permit persons to whom the
0027  *     Software is furnished to do so, subject to the following
0028  *     conditions:
0029  *
0030  *     The above copyright notice and this permission notice shall be
0031  *     included in all copies or substantial portions of the Software.
0032  *
0033  *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
0034  *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
0035  *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
0036  *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
0037  *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
0038  *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
0039  *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
0040  *     OTHER DEALINGS IN THE SOFTWARE.
0041  */
0042 
0043 #include "imx6q-ba16.dtsi"
0044 
0045 / {
0046         mclk: clock-mclk {
0047                 compatible = "fixed-clock";
0048                 #clock-cells = <0>;
0049                 clock-frequency = <22000000>;
0050         };
0051 
0052         gpio-poweroff {
0053                 compatible = "gpio-poweroff";
0054                 gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
0055                 status = "okay";
0056         };
0057 
0058         reg_wl18xx_vmmc: regulator-wl18xx {
0059                 compatible = "regulator-fixed";
0060                 regulator-name = "vwl1807";
0061                 regulator-min-microvolt = <3300000>;
0062                 regulator-max-microvolt = <3300000>;
0063                 gpio = <&pca9539 3 GPIO_ACTIVE_HIGH>;
0064                 startup-delay-us = <70000>;
0065                 enable-active-high;
0066         };
0067 
0068         reg_wlan: regulator-wlan {
0069                 compatible = "regulator-fixed";
0070                 regulator-name = "3P3V_wlan";
0071                 regulator-min-microvolt = <3300000>;
0072                 regulator-max-microvolt = <3300000>;
0073                 regulator-always-on;
0074                 regulator-boot-on;
0075                 gpio = <&gpio6 14 GPIO_ACTIVE_HIGH>;
0076         };
0077 
0078         sound {
0079                 compatible = "fsl,imx6q-ba16-sgtl5000",
0080                              "fsl,imx-audio-sgtl5000";
0081                 model = "imx6q-ba16-sgtl5000";
0082                 ssi-controller = <&ssi1>;
0083                 audio-codec = <&sgtl5000>;
0084                 audio-routing =
0085                         "MIC_IN", "Mic Jack",
0086                         "Mic Jack", "Mic Bias",
0087                         "LINE_IN", "Line In Jack",
0088                         "Headphone Jack", "HP_OUT";
0089                 mux-int-port = <1>;
0090                 mux-ext-port = <4>;
0091         };
0092 
0093         aliases {
0094                 mdio-gpio0 = &mdio0;
0095         };
0096 
0097         mdio0: mdio-gpio {
0098                 compatible = "virtual,mdio-gpio";
0099                 gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>, /* mdc */
0100                         <&gpio2 7 GPIO_ACTIVE_HIGH>; /* mdio */
0101 
0102                 #address-cells = <1>;
0103                 #size-cells = <0>;
0104 
0105                 switch: switch@0 {
0106                         compatible = "marvell,mv88e6085"; /* 88e6240*/
0107                         reg = <0>;
0108 
0109                         interrupt-parent = <&gpio2>;
0110                         interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
0111                         interrupt-controller;
0112                         #interrupt-cells = <2>;
0113 
0114                         switch_ports: ports {
0115                                 #address-cells = <1>;
0116                                 #size-cells = <0>;
0117                         };
0118 
0119                         mdio {
0120                                 #address-cells = <1>;
0121                                 #size-cells = <0>;
0122 
0123                                 switchphy0: switchphy@0 {
0124                                         reg = <0>;
0125                                         interrupt-parent = <&switch>;
0126                                         interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
0127                                 };
0128 
0129                                 switchphy1: switchphy@1 {
0130                                         reg = <1>;
0131                                         interrupt-parent = <&switch>;
0132                                         interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
0133                                 };
0134 
0135                                 switchphy2: switchphy@2 {
0136                                         reg = <2>;
0137                                         interrupt-parent = <&switch>;
0138                                         interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
0139                                 };
0140 
0141                                 switchphy3: switchphy@3 {
0142                                         reg = <3>;
0143                                         interrupt-parent = <&switch>;
0144                                         interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
0145                                 };
0146 
0147                                 switchphy4: switchphy@4 {
0148                                         reg = <4>;
0149                                         interrupt-parent = <&switch>;
0150                                         interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
0151                                 };
0152                         };
0153                 };
0154         };
0155 };
0156 
0157 &ecspi5 {
0158         cs-gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
0159         pinctrl-names = "default";
0160         pinctrl-0 = <&pinctrl_ecspi5>;
0161         status = "okay";
0162 
0163         m25_eeprom: flash@0 {
0164                 compatible = "atmel,at25";
0165                 spi-max-frequency = <10000000>;
0166                 size = <0x8000>;
0167                 pagesize = <64>;
0168                 reg = <0>;
0169                 address-width = <16>;
0170         };
0171 };
0172 
0173 &i2c1 {
0174         pinctrl-names = "default", "gpio";
0175         pinctrl-1 = <&pinctrl_i2c1_gpio>;
0176         sda-gpios = <&gpio5 26 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
0177         scl-gpios = <&gpio5 27 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
0178 
0179         pca9547: mux@70 {
0180                 compatible = "nxp,pca9547";
0181                 reg = <0x70>;
0182                 #address-cells = <1>;
0183                 #size-cells = <0>;
0184 
0185                 mux1_i2c1: i2c@0 {
0186                         #address-cells = <1>;
0187                         #size-cells = <0>;
0188                         reg = <0x0>;
0189 
0190                         ads7830: ads7830@48 {
0191                                 compatible = "ti,ads7830";
0192                                 reg = <0x48>;
0193                         };
0194 
0195                         mma8453: mma8453@1c {
0196                                 compatible = "fsl,mma8453";
0197                                 reg = <0x1c>;
0198                         };
0199                 };
0200 
0201                 mux1_i2c2: i2c@1 {
0202                         #address-cells = <1>;
0203                         #size-cells = <0>;
0204                         reg = <0x1>;
0205 
0206                         eeprom: eeprom@50 {
0207                                 compatible = "atmel,24c08";
0208                                 reg = <0x50>;
0209                         };
0210 
0211                         mpl3115: mpl3115@60 {
0212                                 compatible = "fsl,mpl3115";
0213                                 reg = <0x60>;
0214                         };
0215                 };
0216 
0217                 mux1_i2c3: i2c@2 {
0218                         #address-cells = <1>;
0219                         #size-cells = <0>;
0220                         reg = <0x2>;
0221                 };
0222 
0223                 mux1_i2c4: i2c@3 {
0224                         #address-cells = <1>;
0225                         #size-cells = <0>;
0226                         reg = <0x3>;
0227 
0228                         sgtl5000: codec@a {
0229                                 compatible = "fsl,sgtl5000";
0230                                 reg = <0x0a>;
0231                                 clocks = <&mclk>;
0232                                 VDDA-supply = <&reg_1p8v>;
0233                                 VDDIO-supply = <&reg_3p3v>;
0234                         };
0235                 };
0236 
0237                 mux1_i2c5: i2c@4 {
0238                         #address-cells = <1>;
0239                         #size-cells = <0>;
0240                         reg = <0x4>;
0241 
0242                         pca9539: pca9539@74 {
0243                                 compatible = "nxp,pca9539";
0244                                 reg = <0x74>;
0245                                 gpio-controller;
0246                                 #gpio-cells = <2>;
0247                                 interrupt-controller;
0248                                 interrupt-parent = <&gpio2>;
0249                                 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
0250 
0251                                 P12-hog {
0252                                         gpio-hog;
0253                                         gpios = <10 0>;
0254                                         output-low;
0255                                         line-name = "PCA9539-P12";
0256                                 };
0257 
0258                                 P13-hog {
0259                                         gpio-hog;
0260                                         gpios = <11 0>;
0261                                         output-low;
0262                                         line-name = "PCA9539-P13";
0263                                 };
0264 
0265                                 P14-hog {
0266                                         gpio-hog;
0267                                         gpios = <12 0>;
0268                                         output-low;
0269                                         line-name = "PCA9539-P14";
0270                                 };
0271 
0272                                 P15-hog {
0273                                         gpio-hog;
0274                                         gpios = <13 0>;
0275                                         output-low;
0276                                         line-name = "PCA9539-P15";
0277                                 };
0278 
0279                                 P16-hog {
0280                                         gpio-hog;
0281                                         gpios = <14 0>;
0282                                         output-low;
0283                                         line-name = "PCA9539-P16";
0284                                 };
0285 
0286                                 P17-hog {
0287                                         gpio-hog;
0288                                         gpios = <15 0>;
0289                                         output-low;
0290                                         line-name = "PCA9539-P17";
0291                                 };
0292                         };
0293                 };
0294 
0295                 mux1_i2c6: i2c@5 {
0296                         #address-cells = <1>;
0297                         #size-cells = <0>;
0298                         reg = <0x5>;
0299                 };
0300 
0301                 mux1_i2c7: i2c@6 {
0302                         #address-cells = <1>;
0303                         #size-cells = <0>;
0304                         reg = <0x6>;
0305                 };
0306 
0307                 mux1_i2c8: i2c@7 {
0308                         #address-cells = <1>;
0309                         #size-cells = <0>;
0310                         reg = <0x7>;
0311                 };
0312         };
0313 };
0314 
0315 &i2c2 {
0316         pinctrl-names = "default", "gpio";
0317         pinctrl-1 = <&pinctrl_i2c2_gpio>;
0318         sda-gpios = <&gpio4 13 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
0319         scl-gpios = <&gpio4 12 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
0320 };
0321 
0322 &i2c3 {
0323         pinctrl-names = "default", "gpio";
0324         pinctrl-1 = <&pinctrl_i2c3_gpio>;
0325         sda-gpios = <&gpio1 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
0326         scl-gpios = <&gpio1 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
0327 };
0328 
0329 &iomuxc {
0330         pinctrl_i2c1_gpio: i2c1gpiogrp {
0331                 fsl,pins = <
0332                         MX6QDL_PAD_CSI0_DAT8__GPIO5_IO26        0x1b0b0
0333                         MX6QDL_PAD_CSI0_DAT9__GPIO5_IO27        0x1b0b0
0334                 >;
0335         };
0336 
0337         pinctrl_i2c2_gpio: i2c2gpiogrp {
0338                 fsl,pins = <
0339                         MX6QDL_PAD_KEY_COL3__GPIO4_IO12 0x1b0b0
0340                         MX6QDL_PAD_KEY_ROW3__GPIO4_IO13 0x1b0b0
0341                 >;
0342         };
0343 
0344         pinctrl_i2c3_gpio: i2c3gpiogrp {
0345                 fsl,pins = <
0346                         MX6QDL_PAD_GPIO_3__GPIO1_IO03   0x1b0b0
0347                         MX6QDL_PAD_GPIO_6__GPIO1_IO06   0x1b0b0
0348                 >;
0349         };
0350 };
0351 
0352 &pmu {
0353         secure-reg-access;
0354 };
0355 
0356 &usdhc2 {
0357         status = "disabled";
0358 };
0359 
0360 &usdhc4 {
0361         pinctrl-names = "default";
0362         pinctrl-0 = <&pinctrl_usdhc4>;
0363         bus-width = <4>;
0364         vmmc-supply = <&reg_wl18xx_vmmc>;
0365         no-1-8-v;
0366         non-removable;
0367         wakeup-source;
0368         keep-power-in-suspend;
0369         cap-power-off-card;
0370         max-frequency = <25000000>;
0371         #address-cells = <1>;
0372         #size-cells = <0>;
0373         status = "okay";
0374 
0375         wlcore: wlcore@2 {
0376                 compatible = "ti,wl1837";
0377                 reg = <2>;
0378                 interrupt-parent = <&gpio2>;
0379                 interrupts = <6 IRQ_TYPE_LEVEL_HIGH>;
0380                 tcxo-clock-frequency = <26000000>;
0381         };
0382 };
0383 
0384 &pcie {
0385         /* Synopsys, Inc. Device */
0386         pci_root: root@0,0 {
0387                 compatible = "pci16c3,abcd";
0388                 reg = <0x00000000 0 0 0 0>;
0389 
0390                 #address-cells = <3>;
0391                 #size-cells = <2>;
0392                 #interrupt-cells = <1>;
0393         };
0394 };
0395 
0396 &clks {
0397         assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
0398                           <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
0399                           <&clks IMX6QDL_CLK_IPU1_DI0_PRE_SEL>,
0400                           <&clks IMX6QDL_CLK_IPU1_DI1_PRE_SEL>,
0401                           <&clks IMX6QDL_CLK_IPU2_DI0_PRE_SEL>,
0402                           <&clks IMX6QDL_CLK_IPU2_DI1_PRE_SEL>;
0403         assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
0404                                  <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
0405                                  <&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
0406                                  <&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
0407                                  <&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
0408                                  <&clks IMX6QDL_CLK_PLL2_PFD0_352M>;
0409 };