| // SPDX-License-Identifier: (GPL-2.0-or-later OR X11) |
| /* |
| * Copyright 2013-2014 Freescale Semiconductor, Inc. |
| * Copyright 2018-2023 TQ-Systems GmbH <linux@ew.tq-group.com>, |
| * D-82229 Seefeld, Germany. |
| * Author: Alexander Stein |
| */ |
| |
| /dts-v1/; |
| |
| #include <dt-bindings/gpio/gpio.h> |
| #include <dt-bindings/input/linux-event-codes.h> |
| #include <dt-bindings/leds/common.h> |
| #include <dt-bindings/leds/leds-pca9532.h> |
| #include <dt-bindings/net/ti-dp83867.h> |
| |
| #include "ls1021a-tqmls1021a.dtsi" |
| |
| / { |
| model = "TQMLS102xA SOM on MBLS102xA"; |
| compatible = "tq,ls1021a-tqmls1021a-mbls102xa", "tq,ls1021a-tqmls1021a", "fsl,ls1021a"; |
| |
| audio_mclk: audio-clock { |
| compatible = "fixed-clock"; |
| #clock-cells = <0>; |
| clock-frequency = <25000000>; |
| }; |
| |
| backlight_dcu: backlight { |
| compatible = "gpio-backlight"; |
| gpios = <&pca9530 0 GPIO_ACTIVE_LOW>; |
| status = "disabled"; |
| }; |
| |
| gpio-keys { |
| compatible = "gpio-keys"; |
| autorepeat; |
| |
| switch-1 { |
| label = "S6"; |
| linux,code = <BTN_0>; |
| gpios = <&pca9554_0 0 GPIO_ACTIVE_LOW>; |
| }; |
| |
| btn2: switch-2 { |
| label = "S7"; |
| linux,code = <BTN_1>; |
| gpios = <&pca9554_0 1 GPIO_ACTIVE_LOW>; |
| }; |
| |
| switch-3 { |
| label = "S8"; |
| linux,code = <BTN_2>; |
| gpios = <&pca9554_0 2 GPIO_ACTIVE_LOW>; |
| }; |
| }; |
| |
| gpio_leds: gpio-leds { |
| compatible = "gpio-leds"; |
| |
| led-0 { |
| color = <LED_COLOR_ID_GREEN>; |
| function = LED_FUNCTION_STATUS; |
| function-enumerator = <0>; |
| gpios = <&pca9554_2 4 GPIO_ACTIVE_LOW>; |
| linux,default-trigger = "default-on"; |
| }; |
| |
| led-1 { |
| color = <LED_COLOR_ID_GREEN>; |
| function = LED_FUNCTION_STATUS; |
| function-enumerator = <1>; |
| gpios = <&pca9554_2 5 GPIO_ACTIVE_LOW>; |
| linux,default-trigger = "default-on"; |
| }; |
| |
| led-2 { |
| color = <LED_COLOR_ID_GREEN>; |
| function = LED_FUNCTION_STATUS; |
| function-enumerator = <2>; |
| gpios = <&pca9554_2 6 GPIO_ACTIVE_LOW>; |
| linux,default-trigger = "default-on"; |
| }; |
| |
| led-3 { |
| color = <LED_COLOR_ID_GREEN>; |
| function = LED_FUNCTION_HEARTBEAT; |
| function-enumerator = <0>; |
| gpios = <&pca9554_2 7 GPIO_ACTIVE_LOW>; |
| linux,default-trigger = "heartbeat"; |
| }; |
| }; |
| |
| lvds_encoder: lvds-encoder { |
| compatible = "ti,sn75lvds83", "lvds-encoder"; |
| power-supply = <®_3p3v>; |
| status = "disabled"; |
| |
| ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| port@0 { |
| reg = <0>; |
| |
| lvds_encoder_in: endpoint {}; |
| }; |
| |
| port@1 { |
| reg = <1>; |
| |
| lvds_encoder_out: endpoint {}; |
| }; |
| }; |
| }; |
| |
| reg_1p2v: regulator-1p2v { |
| compatible = "regulator-fixed"; |
| regulator-name = "1P2V"; |
| regulator-min-microvolt = <1200000>; |
| regulator-max-microvolt = <1200000>; |
| regulator-always-on; |
| vin-supply = <®_3p3v>; |
| }; |
| |
| reg_3p3v: regulator-3p3v { |
| compatible = "regulator-fixed"; |
| regulator-name = "3P3V"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-always-on; |
| }; |
| |
| hdmi_out: hdmi { |
| compatible = "hdmi-connector"; |
| type = "a"; |
| ddc-i2c-bus = <&i2c0>; |
| status = "disabled"; |
| |
| port { |
| hdmi_in: endpoint { |
| remote-endpoint = <&sii9022a_out>; |
| }; |
| }; |
| }; |
| |
| display: panel { |
| backlight = <&backlight_dcu>; |
| enable-gpios = <&pca9554_1 3 GPIO_ACTIVE_HIGH>; |
| status = "disabled"; |
| |
| port { |
| panel_in: endpoint {}; |
| }; |
| }; |
| |
| sound { |
| compatible = "fsl,imx-audio-tlv320aic32x4"; |
| model = "ls1021a-mbls1021a-tlv320aic32"; |
| ssi-controller = <&sai1>; |
| audio-codec = <&tlv320aic32x4>; |
| }; |
| |
| }; |
| |
| &can0 { |
| xceiver-supply = <®_3p3v>; |
| status = "okay"; |
| }; |
| |
| &can1 { |
| xceiver-supply = <®_3p3v>; |
| status = "okay"; |
| }; |
| |
| &dspi0 { |
| status = "okay"; |
| }; |
| |
| &enet0 { |
| phy-handle = <&rgmii_phy0c>; |
| phy-mode = "rgmii-id"; |
| mac-address = [ 00 00 00 00 00 00 ]; |
| status = "okay"; |
| }; |
| |
| &enet1 { |
| tbi-handle = <&tbi1>; |
| phy-handle = <&sgmii_phy03>; |
| phy-mode = "sgmii"; |
| mac-address = [ 00 00 00 00 00 00 ]; |
| status = "okay"; |
| }; |
| |
| &enet2 { |
| phy-handle = <&rgmii_phy04>; |
| phy-mode = "rgmii-id"; |
| mac-address = [ 00 00 00 00 00 00 ]; |
| status = "okay"; |
| }; |
| |
| &i2c0 { |
| status = "okay"; |
| |
| tlv320aic32x4: audio-codec@18 { |
| compatible = "ti,tlv320aic32x4"; |
| reg = <0x18>; |
| clocks = <&audio_mclk>; |
| clock-names = "mclk"; |
| ldoin-supply = <®_3p3v>; |
| iov-supply = <®_3p3v>; |
| }; |
| |
| pca9554_0: gpio-expander@20 { |
| compatible = "nxp,pca9554"; |
| reg = <0x20>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| interrupt-parent = <&gpio0>; |
| interrupts = <24 IRQ_TYPE_EDGE_FALLING>; |
| interrupt-controller; |
| #interrupt-cells = <2>; |
| vcc-supply = <®_3p3v>; |
| gpio-line-names = "BUTTON0", "BUTTON1", |
| "BUTTON2", "EMMC_SEL", |
| "DIP2", "DIP3", |
| "EXT_TOUCH_INT", "GPIO_1"; |
| }; |
| |
| pca9554_1: gpio-expander@21 { |
| compatible = "nxp,pca9554"; |
| reg = <0x21>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| interrupt-parent = <&gpio0>; |
| interrupts = <25 IRQ_TYPE_EDGE_FALLING>; |
| interrupt-controller; |
| #interrupt-cells = <2>; |
| vcc-supply = <®_3p3v>; |
| gpio-line-names = "PCIE_PWR_EN", "MPCIE_DISABLE#", |
| "MPCIE_WAKE#", "LCD_BLT_EN", |
| "LCD_PWR_EN", "EC1_PHY_PWDN", |
| "EC3_PHY_PWDN", "SGMII_PHY_PWDN"; |
| }; |
| |
| pca9554_2: gpio-expander@22 { |
| compatible = "nxp,pca9554"; |
| reg = <0x22>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| interrupt-parent = <&extirq>; |
| interrupts = <2 IRQ_TYPE_EDGE_FALLING>; |
| interrupt-controller; |
| #interrupt-cells = <2>; |
| vcc-supply = <®_3p3v>; |
| gpio-line-names = "MUX_SEL0", "MUX_SEL1", |
| "MUX_SEL2", "MUX_SEL3", |
| "V95", "V96", "V97", "V98"; |
| }; |
| |
| sii9022a: hdmi-transmitter@3b { |
| compatible = "sil,sii9022"; |
| reg = <0x3b>; |
| iovcc-supply = <®_3p3v>; |
| cvcc12-supply = <®_1p2v>; |
| interrupts = <GIC_SPI 167 IRQ_TYPE_EDGE_RISING>; |
| #sound-dai-cells = <0>; |
| sil,i2s-data-lanes = <0>; |
| status = "disabled"; |
| |
| ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| port@0 { |
| reg = <0>; |
| |
| sii9022a_in: endpoint {}; |
| }; |
| |
| port@1 { |
| reg = <1>; |
| |
| sii9022a_out: endpoint { |
| remote-endpoint = <&hdmi_in>; |
| }; |
| }; |
| }; |
| }; |
| |
| stmpe811: port-expander@41 { |
| compatible = "st,stmpe811"; |
| reg = <0x41>; |
| interrupt-parent = <&gpio0>; |
| interrupts = <23 IRQ_TYPE_EDGE_FALLING>; |
| vcc-supply = <®_3p3v>; |
| vio-supply = <®_3p3v>; |
| |
| gpio { |
| compatible = "st,stmpe-gpio"; |
| gpio-controller; |
| #gpio-cells = <2>; |
| interrupt-controller; |
| #interrupt-cells = <2>; |
| /* GPIO 5-7 used for touch */ |
| st,norequest-mask = <0xf0>; |
| gpio-line-names = "GPIO_ADC_I2C1_1", |
| "GPIO_ADC_I2C1_2", |
| "GPIO_ADC_I2C1_3", |
| "GPIO_ADC_I2C1_4"; |
| }; |
| |
| touchscreen { |
| compatible = "st,stmpe-ts"; |
| status = "disabled"; |
| }; |
| }; |
| |
| pca9530: leds@60 { |
| compatible = "nxp,pca9530"; |
| reg = <0x60>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| gpio-line-names = "PWM_0", "PWM_1"; |
| |
| led-0 { |
| type = <PCA9532_TYPE_GPIO>; |
| }; |
| |
| led-1 { |
| type = <PCA9532_TYPE_GPIO>; |
| }; |
| }; |
| |
| }; |
| |
| &i2c1 { |
| status = "okay"; |
| }; |
| |
| &lpuart0 { |
| linux,rs485-enabled-at-boot-time; |
| status = "okay"; |
| }; |
| |
| &mdio0 { |
| sgmii_phy03: ethernet-phy@3 { |
| compatible = "ethernet-phy-ieee802.3-c22"; |
| reg = <0x03>; |
| ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>; |
| ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>; |
| ti,dp83867-rxctrl-strap-quirk; |
| }; |
| |
| rgmii_phy04: ethernet-phy@4 { |
| compatible = "ethernet-phy-ieee802.3-c22"; |
| reg = <0x04>; |
| ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_50_NS>; |
| ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; |
| ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>; |
| ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>; |
| }; |
| |
| rgmii_phy0c: ethernet-phy@c { |
| compatible = "ethernet-phy-ieee802.3-c22"; |
| reg = <0x0c>; |
| ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_50_NS>; |
| ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; |
| ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>; |
| ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>; |
| }; |
| }; |
| |
| &pwm6 { |
| status = "okay"; |
| }; |
| |
| &pwm7 { |
| status = "okay"; |
| }; |
| |
| &sai1 { |
| status = "okay"; |
| }; |
| |
| &sata { |
| status = "okay"; |
| }; |
| |
| &uart0 { |
| status = "okay"; |
| }; |
| |
| &uart1 { |
| status = "okay"; |
| }; |
| |
| &usb3 { |
| /* |
| * Although DR connector, VBUS is always driven, so |
| * restrict to host mode. |
| */ |
| dr_mode = "host"; |
| status = "okay"; |
| }; |