// SPDX-License-Identifier: GPL-2.0-or-later OR MIT /* * Copyright (c) 2016 Protonic Holland * Copyright (c) 2020 Oleksij Rempel <kernel@pengutronix.de>, Pengutronix */ /dts-v1/; #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/leds/common.h> #include <dt-bindings/sound/fsl-imx-audmux.h> #include "imx6dl.dtsi" / { model = "Altesco I6P Board"; compatible = "alt,alti6p", "fsl,imx6dl"; chosen { stdout-path = &uart4; }; clock_ksz8081: clock-ksz8081 { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <50000000>; clock-output-names = "enet_ref_pad"; }; i2c2-mux { compatible = "i2c-mux"; i2c-parent = <&i2c2>; mux-controls = <&i2c_mux>; #address-cells = <1>; #size-cells = <0>; i2c@1 { reg = <1>; #address-cells = <1>; #size-cells = <0>; }; i2c@2 { reg = <2>; #address-cells = <1>; #size-cells = <0>; }; }; i2c4-mux { compatible = "i2c-mux"; i2c-parent = <&i2c4>; mux-controls = <&i2c_mux>; #address-cells = <1>; #size-cells = <0>; i2c@1 { reg = <1>; #address-cells = <1>; #size-cells = <0>; }; i2c@2 { reg = <2>; #address-cells = <1>; #size-cells = <0>; }; }; leds { compatible = "gpio-leds"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_leds>; led-debug0 { function = LED_FUNCTION_STATUS; gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat"; }; led-debug1 { function = LED_FUNCTION_SD; gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; linux,default-trigger = "disk-activity"; }; }; i2c_mux: mux-controller { compatible = "gpio-mux"; #mux-control-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2cmux>; mux-gpios = <&gpio5 10 GPIO_ACTIVE_HIGH>, <&gpio5 11 GPIO_ACTIVE_HIGH>; }; reg_1v8: regulator-1v8 { compatible = "regulator-fixed"; regulator-name = "1v8"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; reg_3v3: regulator-3v3 { compatible = "regulator-fixed"; regulator-name = "3v3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; reg_5v0: regulator-5v0 { compatible = "regulator-fixed"; regulator-name = "5v0"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; }; reg_h1_vbus: regulator-h1-vbus { compatible = "regulator-fixed"; regulator-name = "h1-vbus"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>; enable-active-high; }; reg_otg_vbus: regulator-otg-vbus { compatible = "regulator-fixed"; regulator-name = "otg-vbus"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>; enable-active-high; }; sound { compatible = "simple-audio-card"; simple-audio-card,name = "prti6q-sgtl5000"; simple-audio-card,format = "i2s"; simple-audio-card,widgets = "Microphone", "Microphone Jack", "Line", "Line In Jack", "Headphone", "Headphone Jack", "Speaker", "External Speaker"; simple-audio-card,routing = "MIC_IN", "Microphone Jack", "LINE_IN", "Line In Jack", "Headphone Jack", "HP_OUT", "External Speaker", "LINE_OUT"; simple-audio-card,cpu { sound-dai = <&ssi1>; system-clock-frequency = <0>; }; simple-audio-card,codec { sound-dai = <&sgtl5000>; bitclock-master; frame-master; }; }; }; &audmux { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_audmux>; status = "okay"; mux-ssi1 { fsl,audmux-port = <0>; fsl,port-config = < IMX_AUDMUX_V2_PTCR_SYN 0 IMX_AUDMUX_V2_PTCR_TFSEL(2) 0 IMX_AUDMUX_V2_PTCR_TCSEL(2) 0 IMX_AUDMUX_V2_PTCR_TFSDIR 0 IMX_AUDMUX_V2_PTCR_TCLKDIR IMX_AUDMUX_V2_PDCR_RXDSEL(2) >; }; mux-pins3 { fsl,audmux-port = <2>; fsl,port-config = < IMX_AUDMUX_V2_PTCR_SYN IMX_AUDMUX_V2_PDCR_RXDSEL(0) 0 IMX_AUDMUX_V2_PDCR_TXRXEN >; }; }; &can1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_can1>; xceiver-supply = <®_5v0>; status = "okay"; }; &clks { clocks = <&clock_ksz8081>; clock-names = "enet_ref_pad"; assigned-clocks = <&clks IMX6QDL_CLK_ENET_REF_SEL>; assigned-clock-parents = <&clock_ksz8081>; }; &ecspi1 { cs-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_ecspi1>; status = "okay"; flash@0 { compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <20000000>; }; }; &fec { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet>; phy-mode = "rmii"; status = "okay"; mdio { #address-cells = <1>; #size-cells = <0>; /* Microchip KSZ8081RNA PHY */ rgmii_phy: ethernet-phy@0 { reg = <0>; interrupts-extended = <&gpio4 30 IRQ_TYPE_LEVEL_LOW>; reset-gpios = <&gpio4 26 GPIO_ACTIVE_LOW>; reset-assert-us = <10000>; reset-deassert-us = <300>; }; }; }; &gpio1 { gpio-line-names = "", "SD1_CD", "", "USB_H1_OC", "", "", "", "", "DEBUG_0", "DEBUG_1", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""; }; &gpio3 { gpio-line-names = "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "ECSPI1_SS1", "", "USB_EXT1_OC", "USB_EXT1_PWR", "", "", "", "", "", "", "", "", ""; }; &gpio4 { gpio-line-names = "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "ETH_RESET", "", "", "BUZZER", "ETH_INTRP", ""; }; &gpio5 { gpio-line-names = "", "", "", "", "", "", "", "", "", "", "I2C_EN13", "I2C_EN24", "", "", "", "", "", "", "", "", "", "AUDIO_RESET", "", "", "", "", "", "", "", "", "", ""; }; &hdmi { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_hdmi>; ddc-i2c-bus = <&i2c1>; status = "okay"; }; /* DDC */ &i2c1 { clock-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c1>; status = "okay"; sgtl5000: audio-codec@a { compatible = "fsl,sgtl5000"; reg = <0xa>; #sound-dai-cells = <0>; clocks = <&clks 201>; VDDA-supply = <®_3v3>; VDDIO-supply = <®_3v3>; VDDD-supply = <®_1v8>; }; /* additional i2c devices are added automatically by the boot loader */ }; &i2c2 { clock-frequency = <50000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c2>; status = "okay"; /* external interface, device are configured from user space */ }; &i2c3 { clock-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c3>; status = "okay"; rtc@51 { compatible = "nxp,pcf8563"; reg = <0x51>; }; temperature-sensor@70 { compatible = "ti,tmp103"; reg = <0x70>; }; }; &i2c4 { clock-frequency = <50000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c4>; status = "okay"; }; &pwm1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_pwm1>; status = "okay"; }; &ssi1 { #sound-dai-cells = <0>; fsl,mode = "ac97-slave"; status = "okay"; }; &uart2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart2>; status = "okay"; }; &uart4 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart4>; status = "okay"; }; &uart5 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart5>; status = "okay"; }; &usbh1 { vbus-supply = <®_h1_vbus>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usbh1>; phy_type = "utmi"; dr_mode = "host"; over-current-active-low; status = "okay"; }; &usbotg { vbus-supply = <®_otg_vbus>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usbotg>; phy_type = "utmi"; dr_mode = "host"; over-current-active-low; status = "okay"; }; &usbphynop1 { status = "disabled"; }; &usbphynop2 { status = "disabled"; }; &usdhc1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usdhc1>; cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>; no-1-8-v; disable-wp; cap-sd-highspeed; no-mmc; no-sdio; status = "okay"; }; &usdhc3 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usdhc3>; bus-width = <8>; no-1-8-v; non-removable; no-sd; no-sdio; status = "okay"; }; &iomuxc { pinctrl_audmux: audmuxgrp { fsl,pins = < MX6QDL_PAD_CSI0_MCLK__CCM_CLKO1 0x030b0 MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x130b0 MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x130b0 MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x110b0 MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x130b0 >; }; pinctrl_can1: can1grp { fsl,pins = < MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b000 MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x3008 >; }; pinctrl_ecspi1: ecspi1grp { fsl,pins = < MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x1b000 MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x3008 MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x3008 /* CS */ MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x3008 >; }; pinctrl_enet: enetgrp { fsl,pins = < /* MX6QDL_ENET_PINGRP4 */ MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0 MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 0x1b0b0 MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 0x1b0b0 MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER 0x1b0b0 MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x1b0b0 MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0 0x1b0b0 MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0x1b0b0 MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x1b0b0 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x1b0b0 /* Phy reset */ MX6QDL_PAD_DISP0_DAT5__GPIO4_IO26 0x1b0b0 /* nINTRP */ MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30 0x1b0b0 >; }; pinctrl_hdmi: hdmigrp { fsl,pins = < /* NOTE: DDC is done via I2C2, so DON'T configure DDC * pins for HDMI! */ MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE 0x1f8b0 >; }; pinctrl_i2c1: i2c1grp { fsl,pins = < MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001f8b1 MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x4001f8b1 >; }; pinctrl_i2c2: i2c2grp { fsl,pins = < MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 >; }; pinctrl_i2c3: i2c3grp { fsl,pins = < MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1 >; }; pinctrl_i2c4: i2c4grp { fsl,pins = < MX6QDL_PAD_NANDF_CS3__I2C4_SDA 0x4001f8b1 MX6QDL_PAD_NANDF_WP_B__I2C4_SCL 0x4001f8b1 >; }; pinctrl_i2cmux: i2cmuxgrp { fsl,pins = < MX6QDL_PAD_DISP0_DAT16__GPIO5_IO10 0x1b0b0 MX6QDL_PAD_DISP0_DAT17__GPIO5_IO11 0x1b0b0 >; }; pinctrl_leds: ledsgrp { fsl,pins = < MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x1b0b0 MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x1b0b0 >; }; pinctrl_pwm1: pwm1grp { fsl,pins = < MX6QDL_PAD_DISP0_DAT8__PWM1_OUT 0x8 >; }; pinctrl_uart2: uart2grp { fsl,pins = < MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1 MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1 >; }; pinctrl_uart4: uart4grp { fsl,pins = < MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1 MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1 >; }; pinctrl_uart5: uart5grp { fsl,pins = < MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1 MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1 >; }; pinctrl_usbh1: usbh1grp { fsl,pins = < MX6QDL_PAD_GPIO_3__USB_H1_OC 0x1B058 MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x1B058 >; }; pinctrl_usbotg: usbotggrp { fsl,pins = < MX6QDL_PAD_EIM_D21__USB_OTG_OC 0x1b0b0 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0 >; }; pinctrl_usdhc1: usdhc1grp { fsl,pins = < MX6QDL_PAD_SD1_CMD__SD1_CMD 0x170f9 MX6QDL_PAD_SD1_CLK__SD1_CLK 0x100f9 MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x170f9 MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x170f9 MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x170f9 MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x170f9 MX6QDL_PAD_GPIO_1__GPIO1_IO01 0x1b0b0 >; }; pinctrl_usdhc3: usdhc3grp { fsl,pins = < MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17099 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10099 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17099 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17099 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17099 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17099 MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x17099 MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x17099 MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x17099 MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x17099 MX6QDL_PAD_SD3_RST__SD3_RESET 0x1b0b1 >; }; };