Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
0002 /*
0003  * Copyright (c) 2016 Protonic Holland
0004  * Copyright (c) 2020 Oleksij Rempel <kernel@pengutronix.de>, Pengutronix
0005  */
0006 
0007 /dts-v1/;
0008 #include <dt-bindings/gpio/gpio.h>
0009 #include <dt-bindings/leds/common.h>
0010 #include <dt-bindings/sound/fsl-imx-audmux.h>
0011 #include "imx6dl.dtsi"
0012 
0013 / {
0014         model = "Altesco I6P Board";
0015         compatible = "alt,alti6p", "fsl,imx6dl";
0016 
0017         chosen {
0018                 stdout-path = &uart4;
0019         };
0020 
0021         clock_ksz8081: clock-ksz8081 {
0022                 compatible = "fixed-clock";
0023                 #clock-cells = <0>;
0024                 clock-frequency = <50000000>;
0025         };
0026 
0027         i2c2-mux {
0028                 compatible = "i2c-mux";
0029                 i2c-parent = <&i2c2>;
0030                 mux-controls = <&i2c_mux>;
0031                 #address-cells = <1>;
0032                 #size-cells = <0>;
0033 
0034                 i2c@1 {
0035                         reg = <1>;
0036                         #address-cells = <1>;
0037                         #size-cells = <0>;
0038                 };
0039 
0040                 i2c@2 {
0041                         reg = <2>;
0042                         #address-cells = <1>;
0043                         #size-cells = <0>;
0044                 };
0045         };
0046 
0047         i2c4-mux {
0048                 compatible = "i2c-mux";
0049                 i2c-parent = <&i2c4>;
0050                 mux-controls = <&i2c_mux>;
0051                 #address-cells = <1>;
0052                 #size-cells = <0>;
0053 
0054                 i2c@1 {
0055                         reg = <1>;
0056                         #address-cells = <1>;
0057                         #size-cells = <0>;
0058                 };
0059 
0060                 i2c@2 {
0061                         reg = <2>;
0062                         #address-cells = <1>;
0063                         #size-cells = <0>;
0064                 };
0065         };
0066 
0067         leds {
0068                 compatible = "gpio-leds";
0069                 pinctrl-names = "default";
0070                 pinctrl-0 = <&pinctrl_leds>;
0071 
0072                 led-debug0 {
0073                         function = LED_FUNCTION_STATUS;
0074                         gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
0075                         linux,default-trigger = "heartbeat";
0076                 };
0077 
0078                 led-debug1 {
0079                         function = LED_FUNCTION_SD;
0080                         gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
0081                         linux,default-trigger = "disk-activity";
0082                 };
0083         };
0084 
0085         i2c_mux: mux-controller {
0086                 compatible = "gpio-mux";
0087                 #mux-control-cells = <0>;
0088                 pinctrl-names = "default";
0089                 pinctrl-0 = <&pinctrl_i2cmux>;
0090 
0091                 mux-gpios = <&gpio5 10 GPIO_ACTIVE_HIGH>,
0092                             <&gpio5 11 GPIO_ACTIVE_HIGH>;
0093         };
0094 
0095         reg_1v8: regulator-1v8 {
0096                 compatible = "regulator-fixed";
0097                 regulator-name = "1v8";
0098                 regulator-min-microvolt = <1800000>;
0099                 regulator-max-microvolt = <1800000>;
0100         };
0101 
0102         reg_3v3: regulator-3v3 {
0103                 compatible = "regulator-fixed";
0104                 regulator-name = "3v3";
0105                 regulator-min-microvolt = <3300000>;
0106                 regulator-max-microvolt = <3300000>;
0107         };
0108 
0109         reg_5v0: regulator-5v0 {
0110                 compatible = "regulator-fixed";
0111                 regulator-name = "5v0";
0112                 regulator-min-microvolt = <5000000>;
0113                 regulator-max-microvolt = <5000000>;
0114         };
0115 
0116         reg_h1_vbus: regulator-h1-vbus {
0117                 compatible = "regulator-fixed";
0118                 regulator-name = "h1-vbus";
0119                 regulator-min-microvolt = <5000000>;
0120                 regulator-max-microvolt = <5000000>;
0121                 gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
0122                 enable-active-high;
0123         };
0124 
0125         reg_otg_vbus: regulator-otg-vbus {
0126                 compatible = "regulator-fixed";
0127                 regulator-name = "otg-vbus";
0128                 regulator-min-microvolt = <5000000>;
0129                 regulator-max-microvolt = <5000000>;
0130                 gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
0131                 enable-active-high;
0132         };
0133 
0134         sound {
0135                 compatible = "simple-audio-card";
0136                 simple-audio-card,name = "prti6q-sgtl5000";
0137                 simple-audio-card,format = "i2s";
0138                 simple-audio-card,widgets =
0139                         "Microphone", "Microphone Jack",
0140                         "Line", "Line In Jack",
0141                         "Headphone", "Headphone Jack",
0142                         "Speaker", "External Speaker";
0143                 simple-audio-card,routing =
0144                         "MIC_IN", "Microphone Jack",
0145                         "LINE_IN", "Line In Jack",
0146                         "Headphone Jack", "HP_OUT",
0147                         "External Speaker", "LINE_OUT";
0148 
0149                 simple-audio-card,cpu {
0150                         sound-dai = <&ssi1>;
0151                         system-clock-frequency = <0>;
0152                 };
0153 
0154                 simple-audio-card,codec {
0155                         sound-dai = <&sgtl5000>;
0156                         bitclock-master;
0157                         frame-master;
0158                 };
0159         };
0160 };
0161 
0162 &audmux {
0163         pinctrl-names = "default";
0164         pinctrl-0 = <&pinctrl_audmux>;
0165         status = "okay";
0166 
0167         mux-ssi1 {
0168                 fsl,audmux-port = <0>;
0169                 fsl,port-config = <
0170                         IMX_AUDMUX_V2_PTCR_SYN          0
0171                         IMX_AUDMUX_V2_PTCR_TFSEL(2)     0
0172                         IMX_AUDMUX_V2_PTCR_TCSEL(2)     0
0173                         IMX_AUDMUX_V2_PTCR_TFSDIR       0
0174                         IMX_AUDMUX_V2_PTCR_TCLKDIR IMX_AUDMUX_V2_PDCR_RXDSEL(2)
0175                 >;
0176         };
0177 
0178         mux-pins3 {
0179                 fsl,audmux-port = <2>;
0180                 fsl,port-config = <
0181                         IMX_AUDMUX_V2_PTCR_SYN IMX_AUDMUX_V2_PDCR_RXDSEL(0)
0182                         0                      IMX_AUDMUX_V2_PDCR_TXRXEN
0183                 >;
0184         };
0185 };
0186 
0187 &can1 {
0188         pinctrl-names = "default";
0189         pinctrl-0 = <&pinctrl_can1>;
0190         xceiver-supply = <&reg_5v0>;
0191         status = "okay";
0192 };
0193 
0194 &ecspi1 {
0195         cs-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>;
0196         pinctrl-names = "default";
0197         pinctrl-0 = <&pinctrl_ecspi1>;
0198         status = "okay";
0199 
0200         flash@0 {
0201                 compatible = "jedec,spi-nor";
0202                 reg = <0>;
0203                 spi-max-frequency = <20000000>;
0204         };
0205 };
0206 
0207 &fec {
0208         pinctrl-names = "default";
0209         pinctrl-0 = <&pinctrl_enet>;
0210         phy-mode = "rmii";
0211         clocks = <&clks IMX6QDL_CLK_ENET>,
0212                  <&clks IMX6QDL_CLK_ENET>,
0213                  <&clock_ksz8081>;
0214         clock-names = "ipg", "ahb", "ptp";
0215         status = "okay";
0216 
0217         mdio {
0218                 #address-cells = <1>;
0219                 #size-cells = <0>;
0220 
0221                 /* Microchip KSZ8081RNA PHY */
0222                 rgmii_phy: ethernet-phy@0 {
0223                         reg = <0>;
0224                         interrupts-extended = <&gpio4 30 IRQ_TYPE_LEVEL_LOW>;
0225                         reset-gpios = <&gpio4 26 GPIO_ACTIVE_LOW>;
0226                         reset-assert-us = <10000>;
0227                         reset-deassert-us = <300>;
0228                 };
0229         };
0230 };
0231 
0232 &gpio1 {
0233         gpio-line-names =
0234                 "", "SD1_CD", "", "USB_H1_OC", "", "", "", "",
0235                 "DEBUG_0", "DEBUG_1", "", "", "", "", "", "",
0236                 "", "", "", "", "", "", "", "",
0237                 "", "", "", "", "", "", "", "";
0238 };
0239 
0240 &gpio3 {
0241         gpio-line-names =
0242                 "", "", "", "", "", "", "", "",
0243                 "", "", "", "", "", "", "", "",
0244                 "", "", "", "ECSPI1_SS1", "", "USB_EXT1_OC", "USB_EXT1_PWR", "",
0245                 "", "", "", "", "", "", "", "";
0246 };
0247 
0248 &gpio4 {
0249         gpio-line-names =
0250                 "", "", "", "", "", "", "", "",
0251                 "", "", "", "", "", "", "", "",
0252                 "", "", "", "", "", "", "", "",
0253                 "", "", "ETH_RESET", "", "", "BUZZER", "ETH_INTRP", "";
0254 };
0255 
0256 &gpio5 {
0257         gpio-line-names =
0258                 "", "", "", "", "", "", "", "",
0259                 "", "", "I2C_EN13", "I2C_EN24", "", "", "", "",
0260                 "", "", "", "", "", "AUDIO_RESET", "", "",
0261                 "", "", "", "", "", "", "", "";
0262 };
0263 
0264 &hdmi {
0265         pinctrl-names = "default";
0266         pinctrl-0 = <&pinctrl_hdmi>;
0267         ddc-i2c-bus = <&i2c1>;
0268         status = "okay";
0269 };
0270 
0271 /* DDC */
0272 &i2c1 {
0273         clock-frequency = <100000>;
0274         pinctrl-names = "default";
0275         pinctrl-0 = <&pinctrl_i2c1>;
0276         status = "okay";
0277 
0278         sgtl5000: audio-codec@a {
0279                 compatible = "fsl,sgtl5000";
0280                 reg = <0xa>;
0281                 #sound-dai-cells = <0>;
0282                 clocks = <&clks 201>;
0283                 VDDA-supply = <&reg_3v3>;
0284                 VDDIO-supply = <&reg_3v3>;
0285                 VDDD-supply = <&reg_1v8>;
0286         };
0287 
0288         /* additional i2c devices are added automatically by the boot loader */
0289 };
0290 
0291 &i2c2 {
0292         clock-frequency = <50000>;
0293         pinctrl-names = "default";
0294         pinctrl-0 = <&pinctrl_i2c2>;
0295         status = "okay";
0296 
0297         /* external interface, device are configured from user space */
0298 };
0299 
0300 &i2c3 {
0301         clock-frequency = <100000>;
0302         pinctrl-names = "default";
0303         pinctrl-0 = <&pinctrl_i2c3>;
0304         status = "okay";
0305 
0306         rtc@51 {
0307                 compatible = "nxp,pcf8563";
0308                 reg = <0x51>;
0309         };
0310 
0311         temperature-sensor@70 {
0312                 compatible = "ti,tmp103";
0313                 reg = <0x70>;
0314         };
0315 };
0316 
0317 &i2c4 {
0318         clock-frequency = <50000>;
0319         pinctrl-names = "default";
0320         pinctrl-0 = <&pinctrl_i2c4>;
0321         status = "okay";
0322 };
0323 
0324 &pwm1 {
0325         pinctrl-names = "default";
0326         pinctrl-0 = <&pinctrl_pwm1>;
0327         status = "okay";
0328 };
0329 
0330 &ssi1 {
0331         #sound-dai-cells = <0>;
0332         fsl,mode = "ac97-slave";
0333         status = "okay";
0334 };
0335 
0336 &uart2 {
0337         pinctrl-names = "default";
0338         pinctrl-0 = <&pinctrl_uart2>;
0339         status = "okay";
0340 };
0341 
0342 &uart4 {
0343         pinctrl-names = "default";
0344         pinctrl-0 = <&pinctrl_uart4>;
0345         status = "okay";
0346 };
0347 
0348 &uart5 {
0349         pinctrl-names = "default";
0350         pinctrl-0 = <&pinctrl_uart5>;
0351         status = "okay";
0352 };
0353 
0354 &usbh1 {
0355         vbus-supply = <&reg_h1_vbus>;
0356         pinctrl-names = "default";
0357         pinctrl-0 = <&pinctrl_usbh1>;
0358         phy_type = "utmi";
0359         dr_mode = "host";
0360         status = "okay";
0361 };
0362 
0363 &usbotg {
0364         vbus-supply = <&reg_otg_vbus>;
0365         pinctrl-names = "default";
0366         pinctrl-0 = <&pinctrl_usbotg>;
0367         phy_type = "utmi";
0368         dr_mode = "host";
0369         status = "okay";
0370 };
0371 
0372 &usdhc1 {
0373         pinctrl-names = "default";
0374         pinctrl-0 = <&pinctrl_usdhc1>;
0375         cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
0376         no-1-8-v;
0377         disable-wp;
0378         cap-sd-highspeed;
0379         no-mmc;
0380         no-sdio;
0381         status = "okay";
0382 };
0383 
0384 &usdhc3 {
0385         pinctrl-names = "default";
0386         pinctrl-0 = <&pinctrl_usdhc3>;
0387         bus-width = <8>;
0388         no-1-8-v;
0389         non-removable;
0390         no-sd;
0391         no-sdio;
0392         status = "okay";
0393 };
0394 
0395 &iomuxc {
0396         pinctrl_audmux: audmuxgrp {
0397                 fsl,pins = <
0398                         MX6QDL_PAD_CSI0_MCLK__CCM_CLKO1                 0x030b0
0399                         MX6QDL_PAD_CSI0_DAT7__AUD3_RXD                  0x130b0
0400                         MX6QDL_PAD_CSI0_DAT4__AUD3_TXC                  0x130b0
0401                         MX6QDL_PAD_CSI0_DAT5__AUD3_TXD                  0x110b0
0402                         MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS                 0x130b0
0403                 >;
0404         };
0405 
0406         pinctrl_can1: can1grp {
0407                 fsl,pins = <
0408                         MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX                0x1b000
0409                         MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX                0x3008
0410                 >;
0411         };
0412 
0413         pinctrl_ecspi1: ecspi1grp {
0414                 fsl,pins = <
0415                         MX6QDL_PAD_EIM_D17__ECSPI1_MISO                 0x1b000
0416                         MX6QDL_PAD_EIM_D18__ECSPI1_MOSI                 0x3008
0417                         MX6QDL_PAD_EIM_D16__ECSPI1_SCLK                 0x3008
0418                         /* CS */
0419                         MX6QDL_PAD_EIM_D19__GPIO3_IO19                  0x3008
0420                 >;
0421         };
0422 
0423         pinctrl_enet: enetgrp {
0424                 fsl,pins = <
0425                         /* MX6QDL_ENET_PINGRP4 */
0426                         MX6QDL_PAD_ENET_MDC__ENET_MDC                   0x1b0b0
0427                         MX6QDL_PAD_ENET_MDIO__ENET_MDIO                 0x1b0b0
0428                         MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0             0x1b0b0
0429                         MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1             0x1b0b0
0430                         MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER               0x1b0b0
0431                         MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN               0x1b0b0
0432                         MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0             0x1b0b0
0433                         MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1             0x1b0b0
0434                         MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN              0x1b0b0
0435 
0436                         MX6QDL_PAD_GPIO_16__ENET_REF_CLK                0x1b0b0
0437                         /* Phy reset */
0438                         MX6QDL_PAD_DISP0_DAT5__GPIO4_IO26               0x1b0b0
0439                         /* nINTRP */
0440                         MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30               0x1b0b0
0441                 >;
0442         };
0443 
0444         pinctrl_hdmi: hdmigrp {
0445                 fsl,pins = <
0446                         /* NOTE: DDC is done via I2C2, so DON'T configure DDC
0447                          * pins for HDMI!
0448                          */
0449                         MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE            0x1f8b0
0450                 >;
0451         };
0452 
0453         pinctrl_i2c1: i2c1grp {
0454                 fsl,pins = <
0455                         MX6QDL_PAD_CSI0_DAT8__I2C1_SDA                  0x4001f8b1
0456                         MX6QDL_PAD_CSI0_DAT9__I2C1_SCL                  0x4001f8b1
0457                 >;
0458         };
0459 
0460         pinctrl_i2c2: i2c2grp {
0461                 fsl,pins = <
0462                         MX6QDL_PAD_KEY_COL3__I2C2_SCL                   0x4001b8b1
0463                         MX6QDL_PAD_KEY_ROW3__I2C2_SDA                   0x4001b8b1
0464                 >;
0465         };
0466 
0467         pinctrl_i2c3: i2c3grp {
0468                 fsl,pins = <
0469                         MX6QDL_PAD_GPIO_5__I2C3_SCL                     0x4001b8b1
0470                         MX6QDL_PAD_GPIO_6__I2C3_SDA                     0x4001b8b1
0471                 >;
0472         };
0473 
0474         pinctrl_i2c4: i2c4grp {
0475                 fsl,pins = <
0476                         MX6QDL_PAD_NANDF_CS3__I2C4_SDA                  0x4001f8b1
0477                         MX6QDL_PAD_NANDF_WP_B__I2C4_SCL                 0x4001f8b1
0478                 >;
0479         };
0480 
0481         pinctrl_i2cmux: i2cmuxgrp {
0482                 fsl,pins = <
0483                         MX6QDL_PAD_DISP0_DAT16__GPIO5_IO10              0x1b0b0
0484                         MX6QDL_PAD_DISP0_DAT17__GPIO5_IO11              0x1b0b0
0485                 >;
0486         };
0487 
0488         pinctrl_leds: ledsgrp {
0489                 fsl,pins = <
0490                         MX6QDL_PAD_GPIO_8__GPIO1_IO08                   0x1b0b0
0491                         MX6QDL_PAD_GPIO_9__GPIO1_IO09                   0x1b0b0
0492                 >;
0493         };
0494 
0495         pinctrl_pwm1: pwm1grp {
0496                 fsl,pins = <
0497                         MX6QDL_PAD_DISP0_DAT8__PWM1_OUT                 0x8
0498                 >;
0499         };
0500 
0501         pinctrl_uart2: uart2grp {
0502                 fsl,pins = <
0503                         MX6QDL_PAD_EIM_D26__UART2_TX_DATA               0x1b0b1
0504                         MX6QDL_PAD_EIM_D27__UART2_RX_DATA               0x1b0b1
0505                 >;
0506         };
0507 
0508         pinctrl_uart4: uart4grp {
0509                 fsl,pins = <
0510                         MX6QDL_PAD_KEY_COL0__UART4_TX_DATA              0x1b0b1
0511                         MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA              0x1b0b1
0512                 >;
0513         };
0514 
0515         pinctrl_uart5: uart5grp {
0516                 fsl,pins = <
0517                         MX6QDL_PAD_KEY_COL1__UART5_TX_DATA              0x1b0b1
0518                         MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA              0x1b0b1
0519                 >;
0520         };
0521 
0522         pinctrl_usbh1: usbh1grp {
0523                 fsl,pins = <
0524                         MX6QDL_PAD_GPIO_3__USB_H1_OC                    0x1B058
0525                         MX6QDL_PAD_GPIO_0__GPIO1_IO00                   0x1B058
0526 
0527                 >;
0528         };
0529 
0530         pinctrl_usbotg: usbotggrp {
0531                 fsl,pins = <
0532                         MX6QDL_PAD_EIM_D21__USB_OTG_OC                  0x1b0b0
0533                         MX6QDL_PAD_EIM_D22__GPIO3_IO22                  0x1b0b0
0534                 >;
0535         };
0536 
0537         pinctrl_usdhc1: usdhc1grp {
0538                 fsl,pins = <
0539                         MX6QDL_PAD_SD1_CMD__SD1_CMD                     0x170f9
0540                         MX6QDL_PAD_SD1_CLK__SD1_CLK                     0x100f9
0541                         MX6QDL_PAD_SD1_DAT0__SD1_DATA0                  0x170f9
0542                         MX6QDL_PAD_SD1_DAT1__SD1_DATA1                  0x170f9
0543                         MX6QDL_PAD_SD1_DAT2__SD1_DATA2                  0x170f9
0544                         MX6QDL_PAD_SD1_DAT3__SD1_DATA3                  0x170f9
0545                         MX6QDL_PAD_GPIO_1__GPIO1_IO01                   0x1b0b0
0546                 >;
0547         };
0548 
0549         pinctrl_usdhc3: usdhc3grp {
0550                 fsl,pins = <
0551                         MX6QDL_PAD_SD3_CMD__SD3_CMD                     0x17099
0552                         MX6QDL_PAD_SD3_CLK__SD3_CLK                     0x10099
0553                         MX6QDL_PAD_SD3_DAT0__SD3_DATA0                  0x17099
0554                         MX6QDL_PAD_SD3_DAT1__SD3_DATA1                  0x17099
0555                         MX6QDL_PAD_SD3_DAT2__SD3_DATA2                  0x17099
0556                         MX6QDL_PAD_SD3_DAT3__SD3_DATA3                  0x17099
0557                         MX6QDL_PAD_SD3_DAT4__SD3_DATA4                  0x17099
0558                         MX6QDL_PAD_SD3_DAT5__SD3_DATA5                  0x17099
0559                         MX6QDL_PAD_SD3_DAT6__SD3_DATA6                  0x17099
0560                         MX6QDL_PAD_SD3_DAT7__SD3_DATA7                  0x17099
0561                         MX6QDL_PAD_SD3_RST__SD3_RESET                   0x1b0b1
0562                 >;
0563         };
0564 };