123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569 |
- // SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
- /*
- * Copyright 2018-2022 TQ-Systems GmbH
- * Author: Markus Niebel <[email protected]>
- */
- / {
- model = "TQ-Systems MBA6ULx Baseboard";
- aliases {
- mmc0 = &usdhc2;
- mmc1 = &usdhc1;
- rtc0 = &rtc0;
- rtc1 = &snvs_rtc;
- };
- chosen {
- stdout-path = &uart1;
- };
- backlight: backlight {
- compatible = "pwm-backlight";
- power-supply = <®_mba6ul_3v3>;
- enable-gpios = <&expander_out0 4 GPIO_ACTIVE_HIGH>;
- status = "disabled";
- };
- beeper: beeper {
- compatible = "gpio-beeper";
- gpios = <&expander_out1 6 GPIO_ACTIVE_HIGH>;
- };
- gpio_buttons: gpio-keys {
- compatible = "gpio-keys";
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_buttons>;
- button1 {
- label = "s14";
- linux,code = <KEY_1>;
- gpios = <&expander_in0 0 GPIO_ACTIVE_LOW>;
- };
- button2 {
- label = "s6";
- linux,code = <KEY_2>;
- gpios = <&expander_in0 1 GPIO_ACTIVE_LOW>;
- };
- button3 {
- label = "s7";
- linux,code = <KEY_3>;
- gpios = <&expander_in0 2 GPIO_ACTIVE_LOW>;
- };
- power-button {
- label = "POWER";
- linux,code = <KEY_POWER>;
- gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
- gpio-key,wakeup;
- };
- };
- gpio-leds {
- compatible = "gpio-leds";
- status = "okay";
- led1 {
- label = "led1";
- gpios = <&expander_out1 4 GPIO_ACTIVE_HIGH>;
- linux,default-trigger = "default-on";
- };
- led2 {
- label = "led2";
- gpios = <&expander_out1 5 GPIO_ACTIVE_HIGH>;
- linux,default-trigger = "heartbeat";
- };
- };
- reg_lcd_pwr: regulator-lcd-pwr {
- compatible = "regulator-fixed";
- regulator-name = "lcd-pwr";
- gpio = <&expander_out0 1 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- status = "disabled";
- };
- reg_mba6ul_3v3: regulator-mba6ul-3v3 {
- compatible = "regulator-fixed";
- regulator-name = "supply-mba6ul-3v3";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- regulator-always-on;
- };
- reg_mba6ul_5v0: regulator-mba6ul-5v0 {
- compatible = "regulator-fixed";
- regulator-name = "supply-mba6ul-5v0";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- regulator-always-on;
- };
- reg_mpcie: regulator-mpcie-3v3 {
- compatible = "regulator-fixed";
- regulator-name = "mpcie-3v3";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- gpio = <&expander_out0 2 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- regulator-always-on;
- startup-delay-us = <500000>;
- vin-supply = <®_mba6ul_3v3>;
- };
- reg_otg2vbus_5v0: regulator-otg2-vbus-5v0 {
- compatible = "regulator-fixed";
- gpio = <&expander_out1 0 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- regulator-name = "otg2-vbus-supply-5v0";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- vin-supply = <®_mpcie>;
- };
- reserved-memory {
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
- linux,cma {
- compatible = "shared-dma-pool";
- reusable;
- size = <0x6000000>;
- linux,cma-default;
- };
- };
- sound {
- compatible = "fsl,imx-audio-tlv320aic32x4";
- model = "imx-audio-tlv320aic32x4";
- ssi-controller = <&sai1>;
- audio-codec = <&tlv320aic32x4>;
- audio-asrc = <&asrc>;
- };
- };
- &can1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_flexcan1>;
- xceiver-supply = <®_mba6ul_3v3>;
- status = "okay";
- };
- &can2 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_flexcan2>;
- xceiver-supply = <®_mba6ul_3v3>;
- status = "okay";
- };
- &clks {
- assigned-clocks = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>;
- assigned-clock-rates = <768000000>;
- };
- &ecspi2 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_ecspi2>;
- num-cs = <1>;
- status = "okay";
- };
- &fec1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_enet1>;
- phy-mode = "rmii";
- phy-handle = <ðphy0>;
- phy-supply = <®_mba6ul_3v3>;
- phy-reset-gpios = <&expander_out1 1 GPIO_ACTIVE_LOW>;
- phy-reset-duration = <25>;
- phy-reset-post-delay = <1>;
- status = "okay";
- };
- &fec2 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_enet2>, <&pinctrl_enet2_mdc>;
- phy-mode = "rmii";
- phy-handle = <ðphy1>;
- phy-supply = <®_mba6ul_3v3>;
- phy-reset-gpios = <&expander_out1 2 GPIO_ACTIVE_LOW>;
- phy-reset-duration = <25>;
- phy-reset-post-delay = <1>;
- status = "okay";
- mdio {
- #address-cells = <1>;
- #size-cells = <0>;
- ethphy0: ethernet-phy@0 {
- compatible = "ethernet-phy-ieee802.3-c22";
- clocks = <&clks IMX6UL_CLK_ENET_REF>;
- reg = <0>;
- max-speed = <100>;
- };
- ethphy1: ethernet-phy@1 {
- compatible = "ethernet-phy-ieee802.3-c22";
- clocks = <&clks IMX6UL_CLK_ENET2_REF_125M>;
- reg = <1>;
- max-speed = <100>;
- };
- };
- };
- &i2c4 {
- tlv320aic32x4: audio-codec@18 {
- compatible = "ti,tlv320aic32x4";
- reg = <0x18>;
- clocks = <&clks IMX6UL_CLK_SAI1>;
- clock-names = "mclk";
- ldoin-supply = <®_mba6ul_3v3>;
- iov-supply = <®_mba6ul_3v3>;
- };
- jc42: temperature-sensor@19 {
- compatible = "nxp,se97", "jedec,jc-42.4-temp";
- reg = <0x19>;
- };
- expander_out0: gpio-expander@20 {
- compatible = "nxp,pca9554";
- reg = <0x20>;
- gpio-controller;
- #gpio-cells = <2>;
- };
- expander_in0: gpio-expander@21 {
- compatible = "nxp,pca9554";
- reg = <0x21>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_expander_in0>;
- interrupt-parent = <&gpio4>;
- interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
- interrupt-controller;
- #interrupt-cells = <2>;
- gpio-controller;
- #gpio-cells = <2>;
- enet1_int-hog {
- gpio-hog;
- gpios = <6 0>;
- input;
- };
- enet2_int-hog {
- gpio-hog;
- gpios = <7 0>;
- input;
- };
- };
- expander_out1: gpio-expander@22 {
- compatible = "nxp,pca9554";
- reg = <0x22>;
- gpio-controller;
- #gpio-cells = <2>;
- };
- analog_touch: touchscreen@41 {
- compatible = "st,stmpe811";
- reg = <0x41>;
- interrupts = <21 IRQ_TYPE_EDGE_FALLING>;
- interrupt-parent = <&gpio4>;
- interrupt-controller;
- status = "disabled";
- stmpe_touchscreen {
- compatible = "st,stmpe-ts";
- st,adc-freq = <1>; /* 3.25 MHz ADC clock speed */
- st,ave-ctrl = <3>; /* 8 sample average control */
- st,fraction-z = <7>; /* 7 length fractional part in z */
- /*
- * 50 mA typical 80 mA max touchscreen drivers
- * current limit value
- */
- st,i-drive = <1>;
- st,mod-12b = <1>; /* 12-bit ADC */
- st,ref-sel = <0>; /* internal ADC reference */
- st,sample-time = <4>; /* ADC converstion time: 80 clocks */
- st,settling = <3>; /* 1 ms panel driver settling time */
- st,touch-det-delay = <5>; /* 5 ms touch detect interrupt delay */
- };
- };
- /* NXP SE97BTP with temperature sensor + eeprom */
- se97b: eeprom@51 {
- compatible = "nxp,se97b", "atmel,24c02";
- reg = <0x51>;
- pagesize = <16>;
- };
- };
- &pwm2 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_pwm2>;
- status = "okay";
- };
- &sai1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_sai1>;
- assigned-clocks = <&clks IMX6UL_CLK_SAI1_SEL>,
- <&clks IMX6UL_CLK_SAI1>;
- assigned-clock-parents = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>;
- assigned-clock-rates = <0>, <24000000>;
- fsl,sai-mclk-direction-output;
- status = "okay";
- };
- &uart1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_uart1>;
- status = "okay";
- };
- &uart3 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_uart3>;
- status = "okay";
- };
- &uart6 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_uart6>;
- /* for DTE mode, add below change */
- /* fsl,dte-mode; */
- /* pinctrl-0 = <&pinctrl_uart6dte>; */
- uart-has-rtscts;
- linux,rs485-enabled-at-boot-time;
- rs485-rts-active-low;
- rs485-rx-during-tx;
- status = "okay";
- };
- /* otg-port */
- &usbotg1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_usb_otg1>;
- power-active-high;
- over-current-active-low;
- /* we implement only dual role but not a fully featured OTG */
- hnp-disable;
- srp-disable;
- adp-disable;
- dr_mode = "otg";
- status = "okay";
- };
- /* 7-port usb hub */
- /* id, pwr, oc pins not connected */
- &usbotg2 {
- disable-over-current;
- vbus-supply = <®_otg2vbus_5v0>;
- dr_mode = "host";
- status = "okay";
- };
- &usdhc1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_usdhc1>;
- cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
- wp-gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>;
- bus-width = <4>;
- vmmc-supply = <®_mba6ul_3v3>;
- vqmmc-supply = <®_vccsd>;
- no-1-8-v;
- no-mmc;
- no-sdio;
- status = "okay";
- };
- &wdog1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_wdog1>;
- fsl,ext-reset-output;
- status = "okay";
- };
- &iomuxc {
- pinctrl_buttons: buttonsgrp {
- fsl,pins = <
- MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0x100b0
- >;
- };
- pinctrl_ecspi2: ecspi2grp {
- fsl,pins = <
- MX6UL_PAD_UART4_TX_DATA__ECSPI2_SCLK 0x1b020
- MX6UL_PAD_UART5_RX_DATA__ECSPI2_MISO 0x1b020
- MX6UL_PAD_UART5_TX_DATA__ECSPI2_MOSI 0x1b020
- MX6UL_PAD_UART4_RX_DATA__ECSPI2_SS0 0x1b020
- >;
- };
- pinctrl_enet1: enet1grp {
- fsl,pins = <
- MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0
- MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0
- MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
- MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
- MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
- MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
- MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0
- MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b0a8
- >;
- };
- pinctrl_enet2: enet2grp {
- fsl,pins = <
- MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x1b0b0
- MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x1b0b0
- MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0
- MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0
- MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0a0
- MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0a0
- MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x1b0b0
- MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b0a8
- >;
- };
- pinctrl_enet2_mdc: enet2mdcgrp {
- fsl,pins = <
- /* mdio */
- MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x1b0b0
- MX6UL_PAD_GPIO1_IO06__ENET2_MDIO 0x1b0b0
- >;
- };
- pinctrl_expander_in0: expanderin0grp {
- fsl,pins = <
- MX6UL_PAD_CSI_DATA02__GPIO4_IO23 0x1b0b1
- >;
- };
- pinctrl_flexcan1: flexcan1grp {
- fsl,pins = <
- MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x1b020
- MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x1b020
- >;
- };
- pinctrl_flexcan2: flexcan2grp {
- fsl,pins = <
- MX6UL_PAD_UART2_RTS_B__FLEXCAN2_RX 0x1b020
- MX6UL_PAD_UART2_CTS_B__FLEXCAN2_TX 0x1b020
- >;
- };
- pinctrl_pwm2: pwm2grp {
- fsl,pins = <
- /* 100 k PD, DSE 120 OHM, SPPEED LO */
- MX6UL_PAD_GPIO1_IO09__PWM2_OUT 0x00003050
- >;
- };
- pinctrl_sai1: sai1grp {
- fsl,pins = <
- MX6UL_PAD_CSI_DATA05__SAI1_TX_BCLK 0x1b0b1
- MX6UL_PAD_CSI_DATA04__SAI1_TX_SYNC 0x1b0b1
- MX6UL_PAD_CSI_DATA07__SAI1_TX_DATA 0x1f0b8
- MX6UL_PAD_CSI_DATA06__SAI1_RX_DATA 0x110b0
- MX6UL_PAD_CSI_DATA01__SAI1_MCLK 0x1b0b1
- >;
- };
- pinctrl_uart1: uart1grp {
- fsl,pins = <
- MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
- MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1
- >;
- };
- pinctrl_uart3: uart3grp {
- fsl,pins = <
- MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX 0x1b0b1
- MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX 0x1b0b1
- >;
- };
- pinctrl_uart6: uart6grp {
- fsl,pins = <
- MX6UL_PAD_CSI_MCLK__UART6_DCE_TX 0x1b0b1
- MX6UL_PAD_CSI_PIXCLK__UART6_DCE_RX 0x1b0b1
- MX6UL_PAD_CSI_VSYNC__UART6_DCE_RTS 0x1b0b1
- MX6UL_PAD_CSI_HSYNC__UART6_DCE_CTS 0x1b0b1
- >;
- };
- pinctrl_uart6dte: uart6dte {
- fsl,pins = <
- MX6UL_PAD_CSI_PIXCLK__UART6_DTE_TX 0x1b0b1
- MX6UL_PAD_CSI_MCLK__UART6_DTE_RX 0x1b0b1
- MX6UL_PAD_CSI_HSYNC__UART6_DTE_RTS 0x1b0b1
- MX6UL_PAD_CSI_VSYNC__UART6_DTE_CTS 0x1b0b1
- >;
- };
- pinctrl_usb_otg1: usbotg1grp {
- fsl,pins = <
- MX6UL_PAD_GPIO1_IO00__ANATOP_OTG1_ID 0x00017059
- MX6UL_PAD_GPIO1_IO01__USB_OTG1_OC 0x0001b0b0
- MX6UL_PAD_GPIO1_IO04__USB_OTG1_PWR 0x0001b099
- >;
- };
- pinctrl_usdhc1: usdhc1grp {
- fsl,pins = <
- MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x00017069
- MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x00017059
- MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x00017059
- MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x00017059
- MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x00017059
- MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x00017059
- /* WP */
- MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0x0001b099
- /* CD */
- MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x0001b099
- >;
- };
- pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
- fsl,pins = <
- MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x00017069
- MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x000170b9
- MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x000170b9
- MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x000170b9
- MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x000170b9
- MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x000170b9
- /* WP */
- MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0x0001b099
- /* CD */
- MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x0001b099
- >;
- };
- pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
- fsl,pins = <
- MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x00017069
- MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x000170f9
- MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x000170f9
- MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x000170f9
- MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x000170f9
- MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x000170f9
- /* WP */
- MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0x0001b099
- /* CD */
- MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x0001b099
- >;
- };
- pinctrl_wdog1: wdog1grp {
- fsl,pins = <
- MX6UL_PAD_GPIO1_IO08__WDOG1_WDOG_B 0x0001b099
- >;
- };
- };
|