// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (C) 2024 Markus Koch */ /dts-v1/; #include "imx53.dtsi" / { model = "AMX MST701"; compatible = "amx,mst701", "fsl,imx53"; memory@70000000 { device_type = "memory"; reg = < 0x70000000 0x10000000 0xb0000000 0x10000000 >; }; reserved-memory { #address-cells = <1>; #size-cells = <1>; ranges; gpu_reserved_mem: gpu_mem@76000000 { reg = <0x76000000 0x08000000>; }; mxc_sdc_fb_0_legacy: gpu_fbmem@7e000000 { reg = <0x7e000000 0x02000000>; }; gpu_graphics_mem_sram: gpu_graphics_mem@1 { reg = <0xf8020000 0x40000>; }; }; aliases { display = &lvds0; lvds0 = &lvds0; }; sgtlsound: sound { compatible = "fsl,imx53-amxtablet-sgtl5000", "fsl,imx-audio-sgtl5000"; model = "imx53-amxtablet-sgtl5000"; simple-audio-card,aux-devs = <&speaker_amp>; simple-audio-card,routing = "Headphone Jack", "Speaker Amp OUTR", "Speaker Amp INR", "HP_OUT"; ssi-controller = <&ssi2>; audio-codec = <&sgtl5000>; audio-routing = "Headphone Jack", "HP_OUT" ; mux-int-port = <2>; mux-ext-port = <5>; }; speaker_amp: speaker-amp { compatible = "simple-audio-amplifier"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_spkamp>; sound-name-prefix = "Speaker Amp"; /* enable-gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>; */ // TODO: I don't know how to link my "imx-audio-sgtl5000" to this amp node (see above) }; reg_3p2v: regulator-3p2v { compatible = "regulator-fixed"; regulator-name = "3P2V"; regulator-min-microvolt = <3200000>; regulator-max-microvolt = <3200000>; regulator-always-on; }; reg_usbotg_vbus: regulator-usbotg-vbus { compatible = "regulator-fixed"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usbotg_reg>; regulator-name = "VCC_USB"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; gpio = <&gpio4 15 GPIO_ACTIVE_HIGH>; enable-active-high; }; reg_usbh1_vbus: regulator-usbh1-vbus { compatible = "regulator-fixed"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usbh1_reg>; regulator-name = "VCC_USB_INT"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; gpio = <&gpio2 26 GPIO_ACTIVE_HIGH>; enable-active-high; }; gpio-poweroff { /* In case you didn't see it, there's power button on the top left of the device. */ compatible = "gpio-poweroff"; gpios = <&gpio2 15 GPIO_ACTIVE_LOW>; timeout-ms = <3000>; // TODO: pinctrl }; gpio-leds { compatible = "gpio-leds"; system-status { label = "Status"; linux,default-trigger = "heartbeat"; gpios = <&gpio3 15 GPIO_ACTIVE_HIGH>; // TODO: pinctrl }; }; }; &ecspi1 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_ecspi1>; touchscreen0: tsc2046@1 { reg = <1>; compatible = "ti,tsc2046"; interrupt-parent = <&gpio1>; interrupts = <8 0>; pendown-gpio = <&gpio1 8 GPIO_ACTIVE_LOW>; spi-max-frequency = <1000000>; touchscreen-min-pressure = <128>; touchscreen-max-pressure = <512>; touchscreen-inverted-x; wakeup-source; }; }; &ldb { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_lvds0>; status = "okay"; lvds0: lvds-channel@0 { fsl,data-mapping = "spwg"; fsl,data-width = <24>; status = "okay"; display-timings { native-mode = <&lvds0_timing0>; lvds0_timing0: timing-mst701disp { clock-frequency = <48960000>; hactive = <1024>; vactive = <600>; hback-porch = <144>; hsync-len = <104>; hfront-porch = <40>; vback-porch = <18>; vsync-len = <3>; vfront-porch = <1>; hsync-active = <0>; vsync-active = <0>; de-active = <1>; pixelclk-active = <1>; }; }; }; }; &ssi2 { fsl,mode = "i2s-master"; status = "okay"; }; &i2c1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c1>; status = "okay"; }; &i2c2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c2>; status = "okay"; sgtl5000: codec@a { compatible = "fsl,sgtl5000"; reg = <0x0a>; #sound-dai-cells = <0>; clocks = <&clks IMX5_CLK_SSI_EXT1_GATE>; VDDA-supply = <®_3p2v>; VDDIO-supply = <®_3p2v>; }; }; &i2c3 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c3>; status = "okay"; }; &cpu0 { operating-points = < /* kHz */ 166666 850000 400000 900000 800000 1050000 1000000 1200000 // 1200000 1300000 // SKU does not support 1.2 GHz >; }; &audmux { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_audmux>; status = "okay"; }; &iomuxc { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_hog>; pinctrl_hog: hoggrp { fsl,pins = < MX53_PAD_GPIO_0__CCM_SSI_EXT1_CLK 0x80000000 /* SSI_MCLK */ // MX53_PAD_DISP0_DAT8__WDOG1_WDOG_B TODO // MX53_PAD_GPIO_1__PWM2_PWMO // MX53_PAD_GPIO_9__PWM1_PWMO >; }; pinctrl_usbotg_reg: usbotgreggrp { fsl,pins = < MX53_PAD_EIM_DA15__GPIO3_15 0x0 /* VBUS_EN */ >; }; pinctrl_usbh1_reg: usbh1reggrp { fsl,pins = < MX53_PAD_EIM_RW__GPIO2_26 0x0 /* VBUS_EN (ETH) */ >; }; pinctrl_ecspi1: ecspi1grp { fsl,pins = < MX53_PAD_EIM_D16__ECSPI1_SCLK 0x80000000 MX53_PAD_EIM_D17__ECSPI1_MISO 0x80000000 MX53_PAD_EIM_D18__ECSPI1_MOSI 0x80000000 MX53_PAD_EIM_D19__GPIO3_19 0x80000000 /* Should normally be MX53_PAD_EIM_D19__ECSPI1_SS1, but for some reason ecspi controls the SS via GPIO. */ >; }; pinctrl_audmux: audmuxgrp { fsl,pins = < MX53_PAD_KEY_COL0__AUDMUX_AUD5_TXC 0x80000000 MX53_PAD_KEY_ROW0__AUDMUX_AUD5_TXD 0x80000000 MX53_PAD_KEY_COL1__AUDMUX_AUD5_TXFS 0x80000000 MX53_PAD_KEY_ROW1__AUDMUX_AUD5_RXD 0x80000000 >; }; pinctrl_spkamp: spkampgrp { fsl,pins = < MX53_PAD_GPIO_12__GPIO4_2 0x0 >; }; pinctrl_uart1: uart1grp { fsl,pins = < MX53_PAD_PATA_DIOW__UART1_TXD_MUX 0x1e4 MX53_PAD_PATA_DMACK__UART1_RXD_MUX 0x1e4 >; }; pinctrl_esdhc1: esdhc1grp { fsl,pins = < MX53_PAD_SD1_DATA0__ESDHC1_DAT0 0x1d5 MX53_PAD_SD1_DATA1__ESDHC1_DAT1 0x1d5 MX53_PAD_SD1_DATA2__ESDHC1_DAT2 0x1d5 MX53_PAD_SD1_DATA3__ESDHC1_DAT3 0x1d5 MX53_PAD_SD1_CMD__ESDHC1_CMD 0x1d5 MX53_PAD_SD1_CLK__ESDHC1_CLK 0x1d5 >; }; pinctrl_fec: fecgrp { fsl,pins = < MX53_PAD_FEC_MDC__FEC_MDC 0x80000000 MX53_PAD_FEC_MDIO__FEC_MDIO 0x80000000 MX53_PAD_FEC_REF_CLK__FEC_TX_CLK 0x80000000 MX53_PAD_FEC_RX_ER__FEC_RX_ER 0x80000000 MX53_PAD_FEC_CRS_DV__FEC_RX_DV 0x80000000 MX53_PAD_FEC_RXD1__FEC_RDATA_1 0x80000000 MX53_PAD_FEC_RXD0__FEC_RDATA_0 0x80000000 MX53_PAD_FEC_TX_EN__FEC_TX_EN 0x80000000 MX53_PAD_FEC_TXD1__FEC_TDATA_1 0x80000000 MX53_PAD_FEC_TXD0__FEC_TDATA_0 0x80000000 >; }; pinctrl_i2c2: i2c2grp { fsl,pins = < MX53_PAD_KEY_ROW3__I2C2_SDA 0x400001e4 MX53_PAD_KEY_COL3__I2C2_SCL 0x400001e4 >; }; pinctrl_i2c1: i2c1grp { fsl,pins = < MX53_PAD_EIM_D21__I2C1_SCL 0x400001e4 MX53_PAD_EIM_D28__I2C1_SDA 0x400001e4 >; }; pinctrl_i2c3: i2c3grp { fsl,pins = < MX53_PAD_GPIO_6__I2C3_SDA 0x400001e4 MX53_PAD_GPIO_5__I2C3_SCL 0x400001e4 >; }; pinctrl_lvds0: lvds0grp { fsl,pins = < MX53_PAD_LVDS0_TX3_P__LDB_LVDS0_TX3 0x80000000 MX53_PAD_LVDS0_CLK_P__LDB_LVDS0_CLK 0x80000000 MX53_PAD_LVDS0_TX2_P__LDB_LVDS0_TX2 0x80000000 MX53_PAD_LVDS0_TX1_P__LDB_LVDS0_TX1 0x80000000 MX53_PAD_LVDS0_TX0_P__LDB_LVDS0_TX0 0x80000000 >; }; }; &esdhc1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_esdhc1>; status = "okay"; //max-frequency = <25000000>; }; &uart1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart1>; status = "okay"; }; &usbotg { /* External USB port */ dr_mode = "host"; status = "okay"; vbus-supply = <®_usbotg_vbus>; }; &usbh1 { /* USB Ethernet controller */ phy_type = "utmi"; dr_mode = "host"; vbus-supply = <®_usbh1_vbus>; status = "okay"; };