// SPDX-License-Identifier: (GPL-2.0-or-later OR X11) /* * Copyright 2018-2023 TQ-Systems GmbH , * D-82229 Seefeld, Germany. * Author: Alexander Stein */ #include #include #include / { adc { compatible = "iio-hwmon"; io-channels = <&adc0 0>, <&adc0 1>, <&adc0 2>, <&adc0 3>; }; aliases { rtc0 = &pcf85063; rtc1 = &rtc; }; backlight_lvds: backlight-lvds { compatible = "pwm-backlight"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_bl_lvds>; pwms = <&adma_pwm 0 5000000 0>; brightness-levels = <0 4 8 16 32 64 128 255>; default-brightness-level = <7>; power-supply = <®_12v0>; enable-gpios = <&lsio_gpio1 30 GPIO_ACTIVE_HIGH>; status = "disabled"; }; chosen { stdout-path = &lpuart1; }; gpio-keys { compatible = "gpio-keys"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpiobuttons>; autorepeat; switch-a { label = "switcha"; linux,code = ; gpios = <&lsio_gpio1 13 GPIO_ACTIVE_LOW>; }; switch-b { label = "switchb"; linux,code = ; gpios = <&lsio_gpio1 14 GPIO_ACTIVE_LOW>; }; }; gpio-leds { compatible = "gpio-leds"; led1 { color = ; function = LED_FUNCTION_STATUS; gpios = <&expander 1 GPIO_ACTIVE_HIGH>; linux,default-trigger = "default-on"; }; led2 { color = ; function = LED_FUNCTION_HEARTBEAT; gpios = <&expander 2 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat"; }; }; /* TODO LVDS panels */ reg_12v0: regulator-12v0 { compatible = "regulator-fixed"; regulator-name = "V_12V"; regulator-min-microvolt = <12000000>; regulator-max-microvolt = <12000000>; gpio = <&expander 6 GPIO_ACTIVE_HIGH>; enable-active-high; }; reg_pcie_1v5: regulator-pcie-1v5 { compatible = "regulator-fixed"; regulator-name = "MBA8XX_PCIE_1V5"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_reg_pcie_1v5>; regulator-min-microvolt = <1500000>; regulator-max-microvolt = <1500000>; gpio = <&lsio_gpio0 30 GPIO_ACTIVE_HIGH>; startup-delay-us = <1000>; enable-active-high; }; reg_pcie_3v3: regulator-pcie-3v3 { compatible = "regulator-fixed"; regulator-name = "MBA8XX_PCIE_3V3"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_reg_pcie_3v3>; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; gpio = <&lsio_gpio0 31 GPIO_ACTIVE_HIGH>; startup-delay-us = <1000>; enable-active-high; regulator-always-on; }; reg_3v3_mb: regulator-usdhc2-vmmc { compatible = "regulator-fixed"; regulator-name = "V_3V3_MB"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; sound { compatible = "fsl,imx-audio-tlv320aic32x4"; model = "tqm-tlv320aic32"; audio-codec = <&tlv320aic3x04>; ssi-controller = <&sai1>; }; }; &adc0 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_adc0>; vref-supply = <®_1v8>; #io-channel-cells = <1>; status = "okay"; }; &adma_pwm { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_admapwm>; }; &fec1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_fec1>; phy-mode = "rgmii-id"; phy-handle = <ðphy0>; status = "okay"; mdio { #address-cells = <1>; #size-cells = <0>; ethphy0: ethernet-phy@0 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <0>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_ethphy0>; ti,rx-internal-delay = ; ti,tx-internal-delay = ; ti,fifo-depth = ; ti,dp83867-rxctrl-strap-quirk; ti,clk-output-sel = ; reset-gpios = <&lsio_gpio3 2 GPIO_ACTIVE_LOW>; reset-assert-us = <500000>; reset-deassert-us = <50000>; enet-phy-lane-no-swap; interrupt-parent = <&lsio_gpio3>; interrupts = <0 IRQ_TYPE_EDGE_FALLING>; }; ethphy3: ethernet-phy@3 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <3>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_ethphy3>; ti,rx-internal-delay = ; ti,tx-internal-delay = ; ti,fifo-depth = ; ti,dp83867-rxctrl-strap-quirk; ti,clk-output-sel = ; reset-gpios = <&lsio_gpio3 3 GPIO_ACTIVE_LOW>; reset-assert-us = <500000>; reset-deassert-us = <50000>; enet-phy-lane-no-swap; interrupt-parent = <&lsio_gpio3>; interrupts = <1 IRQ_TYPE_EDGE_FALLING>; }; }; }; &fec2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_fec2>; phy-mode = "rgmii-id"; phy-handle = <ðphy3>; status = "okay"; }; &flexcan1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_can0>; xceiver-supply = <®_3v3>; status = "okay"; }; &flexcan2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_can1>; xceiver-supply = <®_3v3>; status = "okay"; }; &i2c1 { tlv320aic3x04: audio-codec@18 { compatible = "ti,tlv320aic32x4"; reg = <0x18>; clocks = <&mclkout0_lpcg 0>; clock-names = "mclk"; iov-supply = <®_1v8>; ldoin-supply = <®_3v3>; }; se97b_1c: temperature-sensor@1c { compatible = "nxp,se97b", "jedec,jc-42.4-temp"; reg = <0x1c>; }; at24c02_54: eeprom@54 { compatible = "nxp,se97b", "atmel,24c02"; reg = <0x54>; pagesize = <16>; vcc-supply = <®_3v3>; }; expander: gpio@70 { compatible = "nxp,pca9538"; reg = <0x70>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_pca9538>; gpio-controller; #gpio-cells = <2>; interrupt-parent = <&lsio_gpio4>; interrupts = <19 IRQ_TYPE_LEVEL_LOW>; interrupt-controller; #interrupt-cells = <2>; vcc-supply = <®_1v8>; gpio-line-names = "", "LED_A", "LED_B", "", "DSI_EN", "USB_RESET#", "V_12V_EN", "PCIE_DIS#"; }; }; &i2c2 { clock-frequency = <100000>; pinctrl-names = "default", "gpio"; pinctrl-0 = <&pinctrl_lpi2c2>; pinctrl-1 = <&pinctrl_lpi2c2gpio>; scl-gpios = <&lsio_gpio1 31 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; sda-gpios = <&lsio_gpio2 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; status = "okay"; }; /* TODO LDB */ &lpspi1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_spi1>; cs-gpios = <&lsio_gpio0 27 GPIO_ACTIVE_LOW>, <&lsio_gpio0 29 GPIO_ACTIVE_LOW>; status = "okay"; }; &lpspi2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_spi2>; cs-gpios = <&lsio_gpio1 0 GPIO_ACTIVE_LOW>; status = "okay"; }; &lpspi3 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_spi3>; num-cs = <2>; cs-gpios = <&lsio_gpio0 16 GPIO_ACTIVE_LOW>; status = "okay"; }; &lpuart1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_lpuart1>; status = "okay"; }; &lpuart3 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_lpuart3>; status = "okay"; }; &lsio_gpio3 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_lsgpio3>; gpio-line-names = "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "X4_15", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""; }; /* TODO: Mini-PCIe */ &sai1 { assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, <&sai1_lpcg 0>; assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sai1>; status = "okay"; }; &usbotg1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usbotg1>; srp-disable; hnp-disable; adp-disable; power-active-high; over-current-active-low; dr_mode = "otg"; status = "okay"; }; &usbotg3 { status = "okay"; }; &usbotg3_cdns3 { dr_mode = "host"; status = "okay"; }; &usbphy1 { status = "okay"; }; &usb3_phy { status = "okay"; }; &usdhc2 { pinctrl-names = "default", "state_100mhz", "state_200mhz"; pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>; pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>; pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>; bus-width = <4>; cd-gpios = <&lsio_gpio4 22 GPIO_ACTIVE_LOW>; wp-gpios = <&lsio_gpio4 21 GPIO_ACTIVE_HIGH>; vmmc-supply = <®_3v3_mb>; no-1-8-v; no-sdio; no-mmc; status = "okay"; }; &iomuxc { pinctrl_adc0: adc0grp { fsl,pins = , , , ; }; pinctrl_admapwm: admapwmgrp { fsl,pins = ; }; pinctrl_bl_lvds: bllvdsgrp { fsl,pins = ; }; pinctrl_can0: can0grp { fsl,pins = , ; }; pinctrl_can1: can1grp { fsl,pins = , ; }; pinctrl_ethphy0: ethphy0grp { fsl,pins = , ; }; pinctrl_ethphy3: ethphy3grp { fsl,pins = , ; }; pinctrl_fec1: fec1grp { fsl,pins = , , , , , , , , , , , , , ; }; pinctrl_fec2: fec2grp { fsl,pins = , , , , , , , , , , , ; }; pinctrl_gpiobuttons: gpiobuttonsgrp { fsl,pins = , ; }; pinctrl_lpi2c2: lpi2c2grp { fsl,pins = , ; }; pinctrl_lpi2c2gpio: lpi2c2gpiogrp { fsl,pins = , ; }; pinctrl_lpuart1: lpuart1grp { fsl,pins = , ; }; pinctrl_lpuart3: lpuart3grp { fsl,pins = , ; }; pinctrl_lsgpio3: lsgpio3grp { fsl,pins = ; }; pinctrl_pca9538: pca9538grp { fsl,pins = ; }; pinctrl_pcieb: pcieagrp { fsl,pins = , , ; }; pinctrl_reg_pcie_1v5: regpcie1v5grp { fsl,pins = ; }; pinctrl_reg_pcie_3v3: regpcie3v3grp { fsl,pins = ; }; pinctrl_sai1: sai1grp { fsl,pins = , , , , ; }; pinctrl_spi1: spi1grp { fsl,pins = , , , , ; }; pinctrl_spi2: spi2grp { fsl,pins = , , , ; }; pinctrl_spi3: spi3grp { fsl,pins = , , , , ; }; pinctrl_usbotg1: usbotg1grp { fsl,pins = , ; }; pinctrl_usdhc2_gpio: usdhc2gpiogrp { fsl,pins = , ; }; pinctrl_usdhc2: usdhc2grp { fsl,pins = , , , , , , ; }; pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp { fsl,pins = , , , , , , ; }; pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp { fsl,pins = , , , , , , ; }; };