| // SPDX-License-Identifier: (GPL-2.0-or-later OR MIT) |
| /* |
| * Copyright (c) 2024 TQ-Systems GmbH <linux@ew.tq-group.com>, |
| * D-82229 Seefeld, Germany. |
| * Author: Alexander Stein |
| */ |
| |
| /dts-v1/; |
| |
| #include <dt-bindings/phy/phy-imx8-pcie.h> |
| #include "imx95-tqma9596sa.dtsi" |
| |
| / { |
| model = "TQ-Systems i.MX95 TQMa95xxSA on MB-SMARC-2"; |
| compatible = "tq,imx95-tqma9596sa-mb-smarc-2", "tq,imx95-tqma9596sa", "fsl,imx95"; |
| |
| aliases { |
| gpio0 = &gpio1; |
| gpio1 = &gpio2; |
| gpio2 = &gpio3; |
| gpio3 = &gpio4; |
| i2c0 = &lpi2c1; |
| i2c1 = &lpi2c2; |
| i2c2 = &lpi2c3; |
| i2c3 = &lpi2c4; |
| i2c4 = &lpi2c5; |
| i2c5 = &lpi2c6; |
| i2c6 = &lpi2c7; |
| i2c7 = &lpi2c8; |
| mmc0 = &usdhc1; |
| mmc1 = &usdhc2; |
| rtc0 = &pcf85063; |
| rtc1 = &scmi_bbm; |
| serial0 = &lpuart1; |
| serial1 = &lpuart2; |
| serial2 = &lpuart3; |
| serial3 = &lpuart4; |
| serial4 = &lpuart5; |
| serial5 = &lpuart6; |
| serial6 = &lpuart7; |
| serial7 = &lpuart8; |
| }; |
| |
| chosen { |
| stdout-path = &lpuart7; |
| }; |
| |
| backlight_lvds0: backlight-lvds0 { |
| compatible = "pwm-backlight"; |
| pwms = <&tpm3 0 100000 0>; |
| brightness-levels = <0 4 8 16 32 64 128 255>; |
| default-brightness-level = <7>; |
| enable-gpios = <&expander2 1 GPIO_ACTIVE_HIGH>; |
| power-supply = <®_12v0>; |
| status = "disabled"; |
| }; |
| |
| backlight_lvds1: backlight-lvds1 { |
| compatible = "pwm-backlight"; |
| pwms = <&tpm4 0 100000 0>; |
| brightness-levels = <0 4 8 16 32 64 128 255>; |
| default-brightness-level = <7>; |
| enable-gpios = <&expander2 3 GPIO_ACTIVE_HIGH>; |
| power-supply = <®_12v0>; |
| status = "disabled"; |
| }; |
| |
| panel_lvds0: panel-lvds0 { |
| /* |
| * Display is not fixed, so compatible has to be added from |
| * DT overlay |
| */ |
| backlight = <&backlight_lvds0>; |
| power-supply = <®_lvds0>; |
| status = "disabled"; |
| |
| port { |
| panel_in_lvds0: endpoint { |
| /* TODO: LVDS0 out */ |
| }; |
| }; |
| }; |
| |
| panel_lvds1: panel-lvds1 { |
| /* |
| * Display is not fixed, so compatible has to be added from |
| * DT overlay |
| */ |
| backlight = <&backlight_lvds1>; |
| power-supply = <®_lvds1>; |
| status = "disabled"; |
| |
| port { |
| panel_in_lvds1: endpoint { |
| /* TODO: LVDS1 out */ |
| }; |
| }; |
| }; |
| |
| reg_1v8: regulator-1v8 { |
| compatible = "regulator-fixed"; |
| regulator-name = "1V8"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-always-on; |
| }; |
| |
| reg_3v3: regulator-3v3 { |
| compatible = "regulator-fixed"; |
| regulator-name = "3V3"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-always-on; |
| }; |
| |
| reg_12v0: regulator-12v0 { |
| compatible = "regulator-fixed"; |
| regulator-name = "12V0"; |
| regulator-min-microvolt = <12000000>; |
| regulator-max-microvolt = <12000000>; |
| regulator-always-on; |
| }; |
| |
| reg_lvds0: regulator-lvds0 { |
| compatible = "regulator-fixed"; |
| regulator-name = "LCD0_VDD_EN"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| gpio = <&expander2 2 GPIO_ACTIVE_HIGH>; |
| enable-active-high; |
| }; |
| |
| reg_lvds1: regulator-lvds1 { |
| compatible = "regulator-fixed"; |
| regulator-name = "LCD1_VDD_EN"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| gpio = <&expander2 4 GPIO_ACTIVE_HIGH>; |
| enable-active-high; |
| }; |
| |
| sound { |
| compatible = "fsl,imx-audio-tlv320aic32x4"; |
| model = "tqm-tlv320aic32"; |
| audio-codec = <&tlv320aic3x04>; |
| audio-cpu = <&sai3>; |
| }; |
| }; |
| |
| &enetc_port0 { |
| status = "okay"; |
| }; |
| |
| &enetc_port1 { |
| status = "okay"; |
| }; |
| |
| &expander2 { |
| pcie1-clk-en-hog { |
| gpio-hog; |
| gpios = <14 GPIO_ACTIVE_HIGH>; |
| output-high; |
| line-name = "PCIE1_CLK_EN"; |
| }; |
| |
| pcie2-clk-en-hog { |
| gpio-hog; |
| gpios = <15 GPIO_ACTIVE_HIGH>; |
| output-high; |
| line-name = "PCIE2_CLK_EN"; |
| }; |
| }; |
| |
| &flexcan1 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_flexcan1>; |
| xceiver-supply = <®_3v3>; |
| status = "okay"; |
| }; |
| |
| &flexcan3 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_flexcan3>; |
| xceiver-supply = <®_3v3>; |
| status = "okay"; |
| }; |
| |
| &lpi2c1 { |
| tlv320aic3x04: audio-codec@18 { |
| compatible = "ti,tlv320aic32x4"; |
| reg = <0x18>; |
| clocks = <&scmi_clk IMX95_CLK_SAI3>; |
| clock-names = "mclk"; |
| iov-supply = <®_1v8>; |
| ldoin-supply = <®_3v3>; |
| }; |
| |
| eeprom2: eeprom@57 { |
| compatible = "atmel,24c32"; |
| reg = <0x57>; |
| pagesize = <32>; |
| vcc-supply = <®_3v3>; |
| }; |
| }; |
| |
| &lpspi3 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_lpspi3>; |
| cs-gpios = <&gpio2 8 GPIO_ACTIVE_LOW>, <&gpio2 7 GPIO_ACTIVE_LOW>; |
| status = "okay"; |
| }; |
| |
| /* SER0 */ |
| &lpuart1 { |
| status = "disabled"; |
| }; |
| |
| /* SER3 */ |
| &lpuart5 { |
| status = "okay"; |
| }; |
| |
| /* SER1 */ |
| &lpuart7 { |
| status = "okay"; |
| }; |
| |
| /* SER2 */ |
| &lpuart8 { |
| status = "okay"; |
| }; |
| |
| /* X44 mPCIe */ |
| &pcie0 { |
| pinctrl-0 = <&pinctrl_pcie0>; |
| pinctrl-names = "default"; |
| clocks = <&scmi_clk IMX95_CLK_HSIO>, |
| <&pcieclk 1>, |
| <&scmi_clk IMX95_CLK_HSIOPLL_VCO>, |
| <&scmi_clk IMX95_CLK_HSIOPCIEAUX>; |
| clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_aux"; |
| reset-gpio = <&expander2 9 GPIO_ACTIVE_LOW>; |
| status = "okay"; |
| }; |
| |
| /* X22 PCIe x1 socket */ |
| &pcie1 { |
| pinctrl-0 = <&pinctrl_pcie1>; |
| pinctrl-names = "default"; |
| clocks = <&scmi_clk IMX95_CLK_HSIO>, |
| <&pcieclk 0>, |
| <&scmi_clk IMX95_CLK_HSIOPLL_VCO>, |
| <&scmi_clk IMX95_CLK_HSIOPCIEAUX>; |
| clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_aux"; |
| reset-gpio = <&expander2 10 GPIO_ACTIVE_LOW>; |
| status = "okay"; |
| }; |
| |
| ®_sdvmmc { |
| status = "okay"; |
| }; |
| |
| &sai3 { |
| #sound-dai-cells = <0>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_sai3>; |
| assigned-clocks = <&scmi_clk IMX95_CLK_AUDIOPLL1_VCO>, |
| <&scmi_clk IMX95_CLK_AUDIOPLL2_VCO>, |
| <&scmi_clk IMX95_CLK_AUDIOPLL1>, |
| <&scmi_clk IMX95_CLK_AUDIOPLL2>, |
| <&scmi_clk IMX95_CLK_SAI3>; |
| assigned-clock-parents = <0>, <0>, <0>, <0>, |
| <&scmi_clk IMX95_CLK_AUDIOPLL1>; |
| assigned-clock-rates = <3932160000>, |
| <3612672000>, <393216000>, |
| <361267200>, <12288000>; |
| fsl,sai-mclk-direction-output; |
| status = "okay"; |
| }; |
| |
| &sai5 { |
| #sound-dai-cells = <0>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_sai5>; |
| assigned-clocks = <&scmi_clk IMX95_CLK_AUDIOPLL1_VCO>, |
| <&scmi_clk IMX95_CLK_AUDIOPLL2_VCO>, |
| <&scmi_clk IMX95_CLK_AUDIOPLL1>, |
| <&scmi_clk IMX95_CLK_AUDIOPLL2>, |
| <&scmi_clk IMX95_CLK_SAI5>; |
| assigned-clock-parents = <0>, <0>, <0>, <0>, |
| <&scmi_clk IMX95_CLK_AUDIOPLL1>; |
| assigned-clock-rates = <3932160000>, |
| <3612672000>, <393216000>, |
| <361267200>, <12288000>; |
| }; |
| |
| /* X4 */ |
| &usb2 { |
| srp-disable; |
| hnp-disable; |
| adp-disable; |
| /* DR not yet supported */ |
| dr_mode = "peripheral"; |
| disable-over-current; |
| status = "okay"; |
| }; |
| |
| |
| /* X16 */ |
| &usdhc2 { |
| pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep"; |
| pinctrl-0 = <&pinctrl_usdhc2>; |
| pinctrl-1 = <&pinctrl_usdhc2_100mhz>; |
| pinctrl-2 = <&pinctrl_usdhc2_200mhz>; |
| pinctrl-3 = <&pinctrl_usdhc2>; |
| vmmc-supply = <®_sdvmmc>; |
| cd-gpios = <&gpio3 0 GPIO_ACTIVE_LOW>; |
| no-1-8-v; |
| no-mmc; |
| no-sdio; |
| disable-wp; |
| bus-width = <4>; |
| status = "okay"; |
| }; |