AM623: am623

Part Number: AM623

Tool/software:

Hello, I am currently debugging the audio function of the AM6234. The audio chip used on the board is the ES8388, connected to the main_i2c2 of the AM6234. The audio interface is connected to the mcasp0 of the AM6234. Hardware-wise, an external 11.2896 MHz crystal oscillator is connected to the MCLK of the ES8388 and the AUDIO_EXT_REFCLK1 of the AM6234. The schematic diagram is as follows:

The device tree configuration is as shown in the attachment.

// SPDX-License-Identifier: GPL-2.0-only OR MIT
/*
 * Common dtsi for AM62x SK and derivatives
 *
 * Copyright (C) 2021-2024 Texas Instruments Incorporated - https://www.ti.com/
 */

#include <dt-bindings/leds/common.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/net/ti-dp83867.h>
#include "k3-timesync-router.h"
#include "k3-am625.dtsi"

/ {
	aliases {
		serial0 = &wkup_uart0;
		serial1 = &mcu_uart0;
		serial2 = &main_uart0;
		serial3 = &main_uart1;
		serial4 = &main_uart2;
		serial5 = &main_uart3;
		serial6 = &main_uart4;
		serial7 = &main_uart5;
		serial8 = &main_uart6;
		mmc0 = &sdhci0;
		mmc1 = &sdhci1;
		mmc2 = &sdhci2;
		spi0 = &ospi0;
		ethernet0 = &cpsw_port1;
		ethernet1 = &cpsw_port2;
		usb0 = &usb0;
		usb1 = &usb1;
	};

	chosen {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		stdout-path = "serial2:115200n8";

		framebuffer0: framebuffer@0 {
			compatible = "simple-framebuffer";
			power-domains = <&k3_pds 186 TI_SCI_PD_EXCLUSIVE>;
			clocks = <&k3_clks 186 6>,
				 <&dss_vp1_clk>,
				 <&k3_clks 186 2>;
			display = <&dss>;
			status = "disabled";
		};
	};

	memory@80000000 {
		bootph-pre-ram;
		device_type = "memory";
		/* 2G RAM */
		reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
	};

	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		ramoops@9c700000 {
			compatible = "ramoops";
			reg = <0x00 0x9c700000 0x00 0x00100000>;
			record-size = <0x8000>;
			console-size = <0x8000>;
			ftrace-size = <0x00>;
			pmsg-size = <0x8000>;
		};

		/* global cma region */
		linux,cma {
			compatible = "shared-dma-pool";
			reusable;
			size = <0x00 0x8000000>;
			linux,cma-default;
		};

		rtos_ipc_memory_region: ipc-memories@9c800000 {
			compatible = "shared-dma-pool";
			reg = <0x00 0x9c800000 0x00 0x00300000>;
			no-map;
		};

		mcu_m4fss_dma_memory_region: m4f-dma-memory@9cb00000 {
			compatible = "shared-dma-pool";
			reg = <0x00 0x9cb00000 0x00 0x100000>;
			no-map;
		};

		mcu_m4fss_memory_region: m4f-memory@9cc00000 {
			compatible = "shared-dma-pool";
			reg = <0x00 0x9cc00000 0x00 0xe00000>;
			no-map;
		};

		wkup_r5fss0_core0_dma_memory_region: r5f-dma-memory@9da00000 {
			compatible = "shared-dma-pool";
			reg = <0x00 0x9da00000 0x00 0x100000>;
			no-map;
		};

		wkup_r5fss0_core0_memory_region: r5f-memory@9db00000 {
			compatible = "shared-dma-pool";
			reg = <0x00 0x9db00000 0x00 0xc00000>;
			no-map;
		};

		secure_tfa_ddr: tfa@9e780000 {
			reg = <0x00 0x9e780000 0x00 0x80000>;
			alignment = <0x1000>;
			no-map;
		};

		secure_ddr: optee@9e800000 {
			reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
			alignment = <0x1000>;
			no-map;
		};

	};

	vmain_pd: regulator-0 {
		/* TPS65988 PD CONTROLLER OUTPUT */
		bootph-all;
		compatible = "regulator-fixed";
		regulator-name = "vmain_pd";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		regulator-always-on;
		regulator-boot-on;
	};

	vcc_5v0: regulator-1 {
		/* Output of LM34936 */
		bootph-all;
		compatible = "regulator-fixed";
		regulator-name = "vcc_5v0";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		vin-supply = <&vmain_pd>;
		regulator-always-on;
		regulator-boot-on;
	};

	vcc_3v3_sys: regulator-2 {
		/* output of LM61460-Q1 */
		bootph-all;
		compatible = "regulator-fixed";
		regulator-name = "vcc_3v3_sys";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&vmain_pd>;
		regulator-always-on;
		regulator-boot-on;
	};

	vdd_mmc1: regulator-3 {
		/* TPS22918DBVR */
		bootph-all;
		compatible = "regulator-fixed";
		regulator-name = "vdd_mmc1";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-boot-on;
		enable-active-high;
		vin-supply = <&vcc_3v3_sys>;
		// gpio = <&exp1 3 GPIO_ACTIVE_HIGH>;
	};

	vdd_sd_dv: regulator-4 {
		/* Output of TLV71033 */
		bootph-all;
		compatible = "regulator-gpio";
		regulator-name = "tlv71033";
		// pinctrl-names = "default";
		// pinctrl-0 = <&vdd_sd_dv_pins_default>;
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
		regulator-boot-on;
		vin-supply = <&vcc_5v0>;
		// gpios = <&main_gpio0 31 GPIO_ACTIVE_HIGH>;
		states = <1800000 0x0>,
			 <3300000 0x1>;
	};

	vcc_1v8: regulator-5 {
		/* output of TPS6282518DMQ */
		compatible = "regulator-fixed";
		regulator-name = "vcc_1v8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		vin-supply = <&vcc_3v3_sys>;
		regulator-always-on;
		regulator-boot-on;
	};

	/* Module Power Supply */
	reg_vsodimm: regulator-vsodimm {
		compatible = "regulator-fixed";
		regulator-name = "+V_SODIMM";
	};

	/* Non PMIC On-module Supplies */
	reg_3v3: regulator-3v3 {
		compatible = "regulator-fixed";
		regulator-max-microvolt = <3300000>;
		regulator-min-microvolt = <3300000>;
		regulator-name = "On-module +V3.3";
		vin-supply = <&reg_vsodimm>;
	};

	leds {
		compatible = "gpio-leds";
		pinctrl-names = "default";
		pinctrl-0 = <&usr_led_pins_default>, <&mcu_gpio_pins_default>;

		led-0 {
			label = "runled";
			gpios = <&main_gpio0 14 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
			function = LED_FUNCTION_HEARTBEAT;
			default-state = "on";
		};

		led-1 {
			label = "led1";
			gpios = <&main_gpio1 16 GPIO_ACTIVE_HIGH>;
			// linux,default-trigger = "timer";
			// led-pattern = <200 800>;
			default-state = "off";
			status = "disabled";
		};

		led-2 {
			label = "led2";
			gpios = <&main_gpio1 17 GPIO_ACTIVE_HIGH>;
			// linux,default-trigger = "timer";
			// led-pattern = <300 700>;
			default-state = "off";
			status = "disabled";
		};

		led-3 {
			label = "led3";
			gpios = <&main_gpio1 18 GPIO_ACTIVE_HIGH>;
			// linux,default-trigger = "timer";
			// led-pattern = <400 600>;
			default-state = "off";
			status = "disabled";
		};

		led-4 {
			label = "led4";
			gpios = <&main_gpio1 19 GPIO_ACTIVE_HIGH>;
			// linux,default-trigger = "timer";
			// led-pattern = <500 500>;
			default-state = "off";
			status = "disabled";
		};

		led-5 {
			label = "led5";
			gpios = <&mcu_gpio0 7 GPIO_ACTIVE_HIGH>;
			// linux,default-trigger = "timer";
			// led-pattern = <200 800>;
			default-state = "off";
			// status = "disabled";
		};

		led-6 {
			label = "led6";
			gpios = <&mcu_gpio0 8 GPIO_ACTIVE_HIGH>;
			// linux,default-trigger = "timer";
			// led-pattern = <300 700>;
			default-state = "off";
			// status = "disabled";
		};

		led-7 {
			label = "led7";
			gpios = <&mcu_gpio0 11 GPIO_ACTIVE_HIGH>;
			// linux,default-trigger = "timer";
			// led-pattern = <400 600>;
			default-state = "off";
			// status = "disabled";
		};

		led-8 {
			label = "led8";
			gpios = <&mcu_gpio0 12 GPIO_ACTIVE_HIGH>;
			// linux,default-trigger = "timer";
			// led-pattern = <500 500>;
			default-state = "off";
			// status = "disabled";
		};
	};

	mcu_gpio_key{
		compatible = "gpio-keys";
		autorepeat;
		// pinctrl-names = "default";
		// pinctrl-0 = <&wake_mcugpio1_pins_default>;
		interrupt-parent = <&mcu_gpio0>;
		interrupts = <16 IRQ_TYPE_EDGE_RISING>;
		switch {
			label = "MCUGPIO";
			linux,code = <143>;
			gpios = <&mcu_gpio0 16 GPIO_ACTIVE_LOW>;
			wakeup-source;
		};
	};

	sound {
		status = "okay";
		compatible = "simple-audio-card";
		simple-audio-card,name = "AM62x-SKEVM";
		simple-audio-card,widgets =
			"Headphone", "Headphone Jack";
		simple-audio-card,routing =
			"Headphone Jack",	"LOUT1",
			"Headphone Jack",	"ROUT1";
		simple-audio-card,format = "i2s";
		simple-audio-card,bitclock-master = <&sound_master>;
		simple-audio-card,frame-master = <&sound_master>;
		simple-audio-card,mclk-fs = <256>;

		simple-audio-card,cpu {
			system-clock-frequency = <11289600>;
			sound-dai = <&mcasp0>;
			// system-clock-direction-in;
		};

		sound_master:simple-audio-card,codec {
			sound-dai = <&es8388>;
			// system-clock-frequency = <11289600>;
			// clocks = <&audio_refclk1>;
		};
	};

	clk_es8388_fixed: clk_es8388_fixed {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <11289600>;
	};

	vdd_lvds: fixed-regulator-lvds {
		compatible = "regulator-fixed";
		regulator-name = "lvds";
		pinctrl-names = "default";
		pinctrl-0 = <&lvds_pwr_en>;
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		regulator-boot-on;
		enable-active-high;
		vin-supply = <&vcc_5v0>;
		gpios = <&main_gpio0 39 GPIO_ACTIVE_HIGH>;
		states = <0 0x0>, <5000000 0x1>;
	};

	vdd_rgb: fixed-regulator-rgb {
		compatible = "regulator-fixed";
		status = "okay";
		regulator-name = "rgb";
		pinctrl-names = "default";
		pinctrl-0 = <&vdd_rgb_pins_default>;
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		regulator-boot-on;
		enable-active-high;
		vin-supply = <&vcc_5v0>;
		gpios = <&main_gpio1 22 GPIO_ACTIVE_HIGH>;
		states = <0 0x0>,
				<5000000 0x1>;
	};

	net-5g-rst {
        compatible = "regulator-fixed";
        regulator-name = "net-5g-rst";
        regulator-min-microvolt = <3300000>;
        regulator-max-microvolt = <3300000>;
        gpio = <&main_gpio0 31 GPIO_ACTIVE_LOW>;
        enable-active-low;
        regulator-boot-on;
        regulator-always-on;
        pinctrl-names = "default";
        pinctrl-0 = <&net_5g_rst_gpio_default>;
        status = "okay";
	};

	wlan_en: regulator-6 {
       compatible = "regulator-fixed";
        regulator-name = "wlan_en";
        regulator-min-microvolt = <3300000>;
        regulator-max-microvolt = <3300000>;
        enable-active-high;
        regulator-always-on;

	};

	sdio_pwrseq: sdio-pwrseq {
        compatible = "mmc-pwrseq-simple";
        reset-gpios = <&main_gpio0 71 GPIO_ACTIVE_LOW>;
        pinctrl-names = "default";
        pinctrl-0 = <&wifi_enable_h>;
    };

	backlight_lvds: backlight-lvds {
		compatible = "pwm-backlight";
		pwms = <&epwm1 0 20000 0>;
		brightness-levels = <
			0  20  20  21  21  22  22  23
			23  24  24  25  25  26  26  27
			27  28  28  29  29  30  30  31
			31  32  32  33  33  34  34  35
			35  36  36  37  37  38  38  39
			40  41  42  43  44  45  46  47
			48  49  50  51  52  53  54  55
			56  57  58  59  60  61  62  63
			64  65  66  67  68  69  70  71
			72  73  74  75  76  77  78  79
			80  81  82  83  84  85  86  87
			88  89  90  91  92  93  94  95
			96  97  98  99 100 101 102 103
			104 105 106 107 108 109 110 111
			112 113 114 115 116 117 118 119
			120 121 122 123 124 125 126 127
			128 129 130 131 132 133 134 135
			136 137 138 139 140 141 142 143
			144 145 146 147 148 149 150 151
			152 153 154 155 156 157 158 159
			160 161 162 163 164 165 166 167
			168 169 170 171 172 173 174 175
			176 177 178 179 180 181 182 183
			184 185 186 187 188 189 190 191
			192 193 194 195 196 197 198 199
			200 201 202 203 204 205 206 207
			208 209 210 211 212 213 214 215
			216 217 218 219 220 221 222 223
			224 225 226 227 228 229 230 231
			232 233 234 235 236 237 238 239
			240 241 242 243 244 245 246 247
			248 249 250 251 252 253 254 255
		>;
		default-brightness-level = <200>;
	};

	panel_lvds: panel-lvds {
		compatible = "panel-lvds";
		backlight = <&backlight_lvds>;
		lable = "LVDS";
		width-mm = <152>;
		height-mm = <91>;
		data-mapping = "vesa-24";
		power-supply = <&vdd_lvds>;

		panel-timing {
			clock-frequency = <71000000>;
			hactive = <1280>;
			vactive = <800>;
			hback-porch = <10>;
			hfront-porch = <140>;
			vback-porch = <1>;
			vfront-porch = <2>;
			hsync-len = <10>;
			vsync-len = <20>;
			hsync-active = <0>;
			vsync-active = <1>;
			de-active = <1>;
			pixelclk-active = <0>;
		};

		ports {
			#address-cells = <1>;
			#size-cells = <0>;
			port@0 {
				lcd_in0: endpoint {
						remote-endpoint = <&oldi_0_out>;
				};
			};

			port@1 {
				lcd_in1: endpoint {
						remote-endpoint = <&oldi_1_out>;
				};
			};
		};
	};

	backlight_rgb: backlight-rgb {
		compatible = "pwm-backlight";
		pwms = <&epwm1 1 20000 0>;
		brightness-levels = <
			0  20  20  21  21  22  22  23
			23  24  24  25  25  26  26  27
			27  28  28  29  29  30  30  31
			31  32  32  33  33  34  34  35
			35  36  36  37  37  38  38  39
			40  41  42  43  44  45  46  47
			48  49  50  51  52  53  54  55
			56  57  58  59  60  61  62  63
			64  65  66  67  68  69  70  71
			72  73  74  75  76  77  78  79
			80  81  82  83  84  85  86  87
			88  89  90  91  92  93  94  95
			96  97  98  99 100 101 102 103
			104 105 106 107 108 109 110 111
			112 113 114 115 116 117 118 119
			120 121 122 123 124 125 126 127
			128 129 130 131 132 133 134 135
			136 137 138 139 140 141 142 143
			144 145 146 147 148 149 150 151
			152 153 154 155 156 157 158 159
			160 161 162 163 164 165 166 167
			168 169 170 171 172 173 174 175
			176 177 178 179 180 181 182 183
			184 185 186 187 188 189 190 191
			192 193 194 195 196 197 198 199
			200 201 202 203 204 205 206 207
			208 209 210 211 212 213 214 215
			216 217 218 219 220 221 222 223
			224 225 226 227 228 229 230 231
			232 233 234 235 236 237 238 239
			240 241 242 243 244 245 246 247
			248 249 250 251 252 253 254 255
		>;
		default-brightness-level = <200>;
		is-forlinx;
	};

	panel_rgb: panel-rgb {
		compatible = "panel-dpi";
		backlight = <&backlight_rgb>;
		power-supply = <&vdd_rgb>;
		status = "okay";

		panel-width-mm = <68>;
		panel-height-mm = <121>;
		bus-fmt = "rgb565";   //rgb888 or rgb565

		panel-timing {
			clock-frequency = <51000000>;
			hactive = <1024>;
			vactive = <600>;
			hback-porch = <160>;
			hfront-porch = <140>;
			vback-porch = <23>;
			vfront-porch = <10>;
			hsync-len = <20>;
			vsync-len = <2>;
			hsync-active = <0>;
			vsync-active = <0>;
			de-active = <1>;
			pixelclk-active = <0>;
		};

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				rgb_in0: endpoint {
					remote-endpoint = <&dpi1_out>;
				};
			};
		};
	};

	clk_ov5645_fixed: clk_ov5645_fixed {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <24000000>;
	};
};

/* GPIO */
&main_gpio0 {
	bootph-all;
};

&main_gpio1 {
	bootph-all;
};

&main_pmx0 {
	main_system1_pins_default: main-system1-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01d4, PIN_OUTPUT, 5) /* (B15) UART0_RTSn.AUDIO_EXT_REFCLK1 */
			AM62X_IOPAD(0x01f0, PIN_INPUT, 0) /* (A18) EXT_REFCLK1 */
			AM62X_IOPAD(0x0250, PIN_OUTPUT, 0) /* (E21) PORz_OUT */
			AM62X_IOPAD(0x024c, PIN_OUTPUT, 0) /* (F22) RESETSTATz */
			AM62X_IOPAD(0x0248, PIN_INPUT_PULLUP, 0) /* (F20) RESET_REQz */
		>;
	};

	/* First pad number is ALW package and second is AMC package */
	main_uart0_pins_default: main-uart0-default-pins {
		bootph-all;
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01c8, PIN_INPUT, 0) /* (D14) UART0_RXD */
			AM62X_IOPAD(0x01cc, PIN_OUTPUT, 0) /* (E14) UART0_TXD */
		>;
	};

	main_uart1_pins_default: main-uart1-default-pins {
		bootph-pre-ram;
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01ac, PIN_INPUT, 2) /* (E19) MCASP0_AFSR.UART1_RXD */
			AM62X_IOPAD(0x01b0, PIN_OUTPUT, 2) /* (A20) MCASP0_ACLKR.UART1_TXD */
		>;
	};

	main_uart5_pins_default: main-uart5-default-pins {
		bootph-pre-ram;
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0008, PIN_INPUT, 5) /* (J24) OSPI0_DQS.UART5_CTSn */
			AM62X_IOPAD(0x0004, PIN_OUTPUT, 5) /* (G25) OSPI0_LBCLKO.UART5_RTSn */
			AM62X_IOPAD(0x0074, PIN_INPUT, 2) /* (U25) GPMC0_AD14.UART5_RXD */
			AM62X_IOPAD(0x0078, PIN_OUTPUT, 2) /* (U24) GPMC0_AD15.UART5_TXD */
		>;
	};

	main_i2c0_pins_default: main-i2c0-default-pins {
		pinctrl-single,pins = <	
			AM62X_IOPAD(0x01e0, PIN_INPUT_PULLUP, 0) /* (B16) I2C0_SCL */
			AM62X_IOPAD(0x01e4, PIN_INPUT_PULLUP, 0) /* (A16) I2C0_SDA */
		>;
	};

	main_i2c1_pins_default: main-i2c1-default-pins {
		bootph-all;
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01e8, PIN_INPUT_PULLUP, 0) /* (B17) I2C1_SCL */
			AM62X_IOPAD(0x01ec, PIN_INPUT_PULLUP, 0) /* (A17) I2C1_SDA */
		>;
	};

	main_i2c2_pins_default: main-i2c2-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x00b0, PIN_INPUT_PULLUP, 1) /* (K22) GPMC0_CSn2.I2C2_SCL */
			AM62X_IOPAD(0x00b4, PIN_INPUT_PULLUP, 1) /* (K24) GPMC0_CSn3.I2C2_SDA */
		>;
	};

	main_mmc0_pins_default: main-mmc0-default-pins {
		bootph-all;
		pinctrl-single,pins = <
			AM62X_IOPAD(0x220, PIN_INPUT, 0) /* (Y3/V3) MMC0_CMD */
			AM62X_IOPAD(0x218, PIN_INPUT, 0) /* (AB1/Y1) MMC0_CLK */
			AM62X_IOPAD(0x214, PIN_INPUT, 0) /* (AA2/V2) MMC0_DAT0 */
			AM62X_IOPAD(0x210, PIN_INPUT, 0) /* (AA1/V1) MMC0_DAT1 */
			AM62X_IOPAD(0x20c, PIN_INPUT, 0) /* (AA3/W2) MMC0_DAT2 */
			AM62X_IOPAD(0x208, PIN_INPUT, 0) /* (Y4/W1) MMC0_DAT3 */
			AM62X_IOPAD(0x204, PIN_INPUT, 0) /* (AB2/Y2) MMC0_DAT4 */
			AM62X_IOPAD(0x200, PIN_INPUT, 0) /* (AC1/W3) MMC0_DAT5 */
			AM62X_IOPAD(0x1fc, PIN_INPUT, 0) /* (AD2/W4) MMC0_DAT6 */
			AM62X_IOPAD(0x1f8, PIN_INPUT, 0) /* (AC2/V4) MMC0_DAT7 */
		>;
	};

	main_mmc1_pins_default: main-mmc1-default-pins {
		bootph-all;
		pinctrl-single,pins = <
			AM62X_IOPAD(0x023c, PIN_INPUT_PULLUP, 0) /* (A21) MMC1_CMD */
			AM62X_IOPAD(0x0234, PIN_INPUT_PULLDOWN, 0) /* (B22) MMC1_CLK */
			AM62X_IOPAD(0x0230, PIN_INPUT_PULLUP, 0) /* (A22) MMC1_DAT0 */
			AM62X_IOPAD(0x022c, PIN_INPUT_PULLUP, 0) /* (B21) MMC1_DAT1 */
			AM62X_IOPAD(0x0228, PIN_INPUT_PULLUP, 0) /* (C21) MMC1_DAT2 */
			AM62X_IOPAD(0x0224, PIN_INPUT_PULLUP, 0) /* (D22) MMC1_DAT3 */
			AM62X_IOPAD(0x0240, PIN_INPUT_PULLUP, 0) /* (D17) MMC1_SDCD */
		>;
	};

	main_mmc2_pins_default: main-mmc2-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0120, PIN_INPUT, 0) /* (C24) MMC2_CMD */
			AM62X_IOPAD(0x0118, PIN_INPUT, 0) /* (D25) MMC2_CLK */
			AM62X_IOPAD(0x011C, PIN_INPUT, 0) /* () MMC2_CLKLB */
			AM62X_IOPAD(0x0114, PIN_INPUT, 0) /* (B24) MMC2_DAT0 */
			AM62X_IOPAD(0x0110, PIN_INPUT_PULLUP, 0) /* (C25) MMC2_DAT1 */
			AM62X_IOPAD(0x010c, PIN_INPUT_PULLUP, 0) /* (E23) MMC2_DAT2 */
			AM62X_IOPAD(0x0108, PIN_INPUT_PULLUP, 0) /* (D24) MMC2_DAT3 */
		>;
	};

	usr_led_pins_default: usr-led-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0038, PIN_INPUT, 7) /* (E24) OSPI0_CSn3.GPIO0_14 */

			AM62X_IOPAD(0x1b8, PIN_OUTPUT, 7) /* (C13) SPI0_CS1.GPIO1_16 */
			AM62X_IOPAD(0x1bc, PIN_OUTPUT, 7) /* (A14) SPI0_CLK.GPIO1_17*/
			AM62X_IOPAD(0x1c0, PIN_OUTPUT, 7) /* (B13) SPI0_D0.GPIO1_18 */
			AM62X_IOPAD(0x1c4, PIN_OUTPUT, 7) /* (B14) SPI0_D1.GPIO1_19 */
		>;
	};

	main_mdio1_pins_default: main-mdio1-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0160, PIN_OUTPUT, 0) /* (AD24) MDIO0_MDC */
			AM62X_IOPAD(0x015c, PIN_INPUT, 0) /* (AB22) MDIO0_MDIO */
		>;
	};

	main_rgmii1_pins_default: main-rgmii1-default-pins {
		bootph-all;
		pinctrl-single,pins = <
			AM62X_IOPAD(0x014c, PIN_INPUT, 0) /* (AB17) RGMII1_RD0 */
			AM62X_IOPAD(0x0150, PIN_INPUT, 0) /* (AC17) RGMII1_RD1 */
			AM62X_IOPAD(0x0154, PIN_INPUT, 0) /* (AB16) RGMII1_RD2 */
			AM62X_IOPAD(0x0158, PIN_INPUT, 0) /* (AA15) RGMII1_RD3 */
			AM62X_IOPAD(0x0148, PIN_INPUT, 0) /* (AD17) RGMII1_RXC */
			AM62X_IOPAD(0x0144, PIN_INPUT, 0) /* (AE17) RGMII1_RX_CTL */
			AM62X_IOPAD(0x0134, PIN_INPUT, 0) /* (AE20) RGMII1_TD0 */
			AM62X_IOPAD(0x0138, PIN_INPUT, 0) /* (AD20) RGMII1_TD1 */
			AM62X_IOPAD(0x013c, PIN_INPUT, 0) /* (AE18) RGMII1_TD2 */
			AM62X_IOPAD(0x0140, PIN_INPUT, 0) /* (AD18) RGMII1_TD3 */
			AM62X_IOPAD(0x0130, PIN_INPUT, 0) /* (AE19) RGMII1_TXC */
			AM62X_IOPAD(0x012c, PIN_INPUT, 0) /* (AD19) RGMII1_TX_CTL */
		>;
	};

	main_rgmii2_pins_default: main-rgmii2-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0184, PIN_INPUT, 0) /* (AE23) RGMII2_RD0 */
			AM62X_IOPAD(0x0188, PIN_INPUT, 0) /* (AB20) RGMII2_RD1 */
			AM62X_IOPAD(0x018c, PIN_INPUT, 0) /* (AC21) RGMII2_RD2 */
			AM62X_IOPAD(0x0190, PIN_INPUT, 0) /* (AE22) RGMII2_RD3 */
			AM62X_IOPAD(0x0180, PIN_INPUT, 0) /* (AD23) RGMII2_RXC */
			AM62X_IOPAD(0x017c, PIN_INPUT, 0) /* (AD22) RGMII2_RX_CTL */
			AM62X_IOPAD(0x016c, PIN_INPUT, 0) /* (Y18) RGMII2_TD0 */
			AM62X_IOPAD(0x0170, PIN_INPUT, 0) /* (AA18) RGMII2_TD1 */
			AM62X_IOPAD(0x0174, PIN_INPUT, 0) /* (AD21) RGMII2_TD2 */
			AM62X_IOPAD(0x0178, PIN_INPUT, 0) /* (AC20) RGMII2_TD3 */
			AM62X_IOPAD(0x0168, PIN_INPUT, 0) /* (AE21) RGMII2_TXC */
			AM62X_IOPAD(0x0164, PIN_INPUT, 0) /* (AA19) RGMII2_TX_CTL */
		>;
	};

	rgmii1_reset_pins: rgmii1-reset-pins {
		bootph-all;
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0090, PIN_INPUT, 7) /* (M24) GPMC0_BE0n_CLE.GPIO0_35 */
		>;
	};

	rgmii2_reset_pins: rgmii2-reset-pins {
		bootph-all;
		pinctrl-single,pins = <
			AM62X_IOPAD(0x00a4, PIN_INPUT, 7) /* (M22) GPMC0_DIR.GPIO0_40 */
		>;
	};

	main_usb1_pins_default: main-usb1-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0258, PIN_OUTPUT | PIN_DS_PULLUD_ENABLE | PIN_DS_PULL_UP, 0) /* (F18) USB1_DRVVBUS */
		>;
	};

	main_usb0_pins_default: main-usb0-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0254, PIN_OUTPUT | PIN_DS_PULLUD_ENABLE | PIN_DS_PULL_UP, 0) /* (C20) USB0_DRVVBUS */
		>;
	};

	main_mcasp0_pins_default: main-mcasp0-pins-default {
		pinctrl-single,pins = <
			// AM62X_IOPAD(0x01d4, PIN_INPUT, 5) /* (B15) UART0_RTSn.AUDIO_EXT_REFCLK1 */

			AM62X_IOPAD(0x01a4, PIN_OUTPUT, 0) /* (B20) MCASP0_ACLKX */
			AM62X_IOPAD(0x01a8, PIN_OUTPUT, 0) /* (D20) MCASP0_AFSX */
			AM62X_IOPAD(0x0198, PIN_OUTPUT, 0) /* (A19) MCASP0_AXR2 */
			AM62X_IOPAD(0x0194, PIN_INPUT, 0) /* (B19) MCASP0_AXR3 */
		>;
	};

	audio_ext_refclk1_pins_default: audio-ext-refclk1-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01d4, PIN_INPUT, 5) /* (B15) UART0_RTSn.AUDIO_EXT_REFCLK1 */
		>;
	};

	main_mcasp1_pins_default: main-mcasp1-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x090, PIN_INPUT, 2) /* (M24/K17) GPMC0_BE0N_CLE.MCASP1_ACLKX */
			AM62X_IOPAD(0x098, PIN_INPUT, 2) /* (U23/P21) GPMC0_WAIT0.MCASP1_AFSX */
			AM62X_IOPAD(0x08c, PIN_OUTPUT, 2) /* (L25/J17) GPMC0_WEN.MCASP1_AXR0 */
			AM62X_IOPAD(0x084, PIN_INPUT, 2) /* (L23/K20) GPMC0_ADVN_ALE.MCASP1_AXR2 */
		>;
	};

	main_dss0_pins_default: main-dss0-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x100, PIN_OUTPUT, 0) /* (AC25) VOUT0_VSYNC */
			AM62X_IOPAD(0x0f8, PIN_OUTPUT, 0) /* (AB24) VOUT0_HSYNC */
			AM62X_IOPAD(0x104, PIN_OUTPUT, 0) /* (AC24) VOUT0_PCLK */
			AM62X_IOPAD(0x0fc, PIN_OUTPUT, 0) /* (Y20) VOUT0_DE */
			AM62X_IOPAD(0x0b8, PIN_OUTPUT, 0) /* (U22) VOUT0_DATA0 */
			AM62X_IOPAD(0x0bc, PIN_OUTPUT, 0) /* (V24) VOUT0_DATA1 */
			AM62X_IOPAD(0x0c0, PIN_OUTPUT, 0) /* (W25) VOUT0_DATA2 */
			AM62X_IOPAD(0x0c4, PIN_OUTPUT, 0) /* (W24) VOUT0_DATA3 */
			AM62X_IOPAD(0x0c8, PIN_OUTPUT, 0) /* (Y25) VOUT0_DATA4 */
			AM62X_IOPAD(0x0cc, PIN_OUTPUT, 0) /* (Y24) VOUT0_DATA5 */
			AM62X_IOPAD(0x0d0, PIN_OUTPUT, 0) /* (Y23) VOUT0_DATA6 */
			AM62X_IOPAD(0x0d4, PIN_OUTPUT, 0) /* (AA25) VOUT0_DATA7 */
			AM62X_IOPAD(0x0d8, PIN_OUTPUT, 0) /* (V21) VOUT0_DATA8 */
			AM62X_IOPAD(0x0dc, PIN_OUTPUT, 0) /* (W21) VOUT0_DATA9 */
			AM62X_IOPAD(0x0e0, PIN_OUTPUT, 0) /* (V20) VOUT0_DATA10 */
			AM62X_IOPAD(0x0e4, PIN_OUTPUT, 0) /* (AA23) VOUT0_DATA11 */
			AM62X_IOPAD(0x0e8, PIN_OUTPUT, 0) /* (AB25) VOUT0_DATA12 */
			AM62X_IOPAD(0x0ec, PIN_OUTPUT, 0) /* (AA24) VOUT0_DATA13 */
			AM62X_IOPAD(0x0f0, PIN_OUTPUT, 0) /* (Y22) VOUT0_DATA14 */
			AM62X_IOPAD(0x0f4, PIN_OUTPUT, 0) /* (AA21) VOUT0_DATA15 */
		>;
	};

	oldi0_pins_default: oldi0-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x260, PIN_OUTPUT, 0) /* (AA5) OLDI0_A0N */
			AM62X_IOPAD(0x25c, PIN_OUTPUT, 0) /* (Y6) OLDI0_A0P */
			AM62X_IOPAD(0x268, PIN_OUTPUT, 0) /* (AD3) OLDI0_A1N */
			AM62X_IOPAD(0x264, PIN_OUTPUT, 0) /* (AB4) OLDI0_A1P */
			AM62X_IOPAD(0x270, PIN_OUTPUT, 0) /* (Y8) OLDI0_A2N */
			AM62X_IOPAD(0x26c, PIN_OUTPUT, 0) /* (AA8) OLDI0_A2P */
			AM62X_IOPAD(0x278, PIN_OUTPUT, 0) /* (AB6) OLDI0_A3N */
			AM62X_IOPAD(0x274, PIN_OUTPUT, 0) /* (AA7) OLDI0_A3P */
			AM62X_IOPAD(0x280, PIN_OUTPUT, 0) /* (AC6) OLDI0_A4N */
			AM62X_IOPAD(0x27c, PIN_OUTPUT, 0) /* (AC5) OLDI0_A4P */
			AM62X_IOPAD(0x288, PIN_OUTPUT, 0) /* (AE5) OLDI0_A5N */
			AM62X_IOPAD(0x284, PIN_OUTPUT, 0) /* (AD6) OLDI0_A5P */
			AM62X_IOPAD(0x290, PIN_OUTPUT, 0) /* (AE6) OLDI0_A6N */
			AM62X_IOPAD(0x28c, PIN_OUTPUT, 0) /* (AD7) OLDI0_A6P */
			AM62X_IOPAD(0x298, PIN_OUTPUT, 0) /* (AD8) OLDI0_A7N */
			AM62X_IOPAD(0x294, PIN_OUTPUT, 0) /* (AE7) OLDI0_A7P */
			AM62X_IOPAD(0x2a0, PIN_OUTPUT, 0) /* (AD4) OLDI0_CLK0N */
			AM62X_IOPAD(0x29c, PIN_OUTPUT, 0) /* (AE3) OLDI0_CLK0P */
			AM62X_IOPAD(0x2a8, PIN_OUTPUT, 0) /* (AE4) OLDI0_CLK1N */
			AM62X_IOPAD(0x2a4, PIN_OUTPUT, 0) /* (AD5) OLDI0_CLK1P */
		>;
    };

	ospi0_pins_default: ospi0-default-pins {
		bootph-all;
		pinctrl-single,pins = <
			AM62X_IOPAD(0x000, PIN_OUTPUT, 0) /* (H24/G19) OSPI0_CLK */
			AM62X_IOPAD(0x02c, PIN_OUTPUT, 0) /* (F23/F19) OSPI0_CSn0 */
			AM62X_IOPAD(0x00c, PIN_INPUT, 0) /* (E25/F18) OSPI0_D0 */
			AM62X_IOPAD(0x010, PIN_INPUT, 0) /* (G24/G17) OSPI0_D1 */
			AM62X_IOPAD(0x014, PIN_INPUT, 0) /* (F25/F21) OSPI0_D2 */
			AM62X_IOPAD(0x018, PIN_INPUT, 0) /* (F24/F20) OSPI0_D3 */
		>;
	};

	wifi_enable_h: wifi-enable-h {
        pinctrl-single,pins = <
            AM62X_IOPAD(0x0124, PIN_INPUT, 7) /* (A23) MMC2_SDCD.GPIO0_71 */
        >;
    };

	net_5g_rst_gpio_default: net-5g-rst-gpio-default {
        pinctrl-single,pins = <
            AM62X_IOPAD(0x007c, PIN_INPUT, 7) /* (P25) GPMC0_CLK.GPIO0_31 */
        >;
    };

	pruss_uart_pins: pruss-uart-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01d8, PIN_INPUT, 6) /* (C15) MCAN0_TX.PR0_UART0_RXD */
			AM62X_IOPAD(0x01dc, PIN_OUTPUT, 6) /* (E15) MCAN0_RX.PR0_UART0_TXD */
		>;
	};

	pinctrl_pmic_extint: pinctrl-pmic-extint {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01f4, PIN_INPUT, 0) /* (D16) EXTINTn */
		>;
	};

	main_epwm1_pins_default: main-epwm1-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x019c, PIN_INPUT, 6) /* (B18) MCASP0_AXR1.EHRPWM1_A */
			AM62X_IOPAD(0x01a0, PIN_INPUT, 6) /* (E18) MCASP0_AXR0.EHRPWM1_B */
		>;
	};

	lvds_pwr_en: lvds-pwr-en {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x00a0, PIN_INPUT, 7) /* (K25) GPMC0_WPn.GPIO0_39 */
		>;
	};

	vdd_rgb_pins_default: vdd-rgb-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01d0, PIN_OUTPUT, 7) /* (A15) UART0_CTSn.GPIO1_22 */
		>;
	};

	otg0_pins_default: otg1-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0094, PIN_INPUT, 7) /* (N20) GPMC0_BE1n.GPIO0_36 */
		>;
	};

	main_mcan0_pins_default: main-mcan0-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01dc, PIN_INPUT, 0) /* (E15) MCAN0_RX */
			AM62X_IOPAD(0x01d8, PIN_OUTPUT, 0) /* (C15) MCAN0_TX */
		>;
	};

	ov5640_pins_default: ov5640-pins-default{
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0030, PIN_OUTPUT, 7) /* (G21) CSI_RESET.GPIO0_12 */
			AM62X_IOPAD(0x0128, PIN_OUTPUT, 7) /* (B23) CSI_PWDN.GPIO0_72 */
		>;
	};

	gt911_pins_default:gt911-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01c, PIN_INPUT, 7) /* J23 OSPI0_D4.GPIO0_7*/
			AM62X_IOPAD(0x020, PIN_OUTPUT, 7) /* J25 OSPI0_D5.GPIO0_8*/			
		>;
	
	};
	
	gt928_pins_default:gt928-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x024, PIN_INPUT, 7) /* H25 OSPI0_D6.GPIO0_9*/
			AM62X_IOPAD(0x028, PIN_OUTPUT, 7) /* J22 OSPI0_D7.GPIO0_10*/
		>;
	};
	
	tsc_2007_pins_default:tsc2007-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x1b4, PIN_INPUT, 7) /* A13 SPI0_CS0.GPIO1_15*/
		>;
	};
};

&mcu_pmx0 {
	mcu_jtag1_pins_default: mcu-jtag1-pins-default {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x0078, PIN_INPUT_PULLUP, 0) /* (E12) EMU0 */
			AM62X_MCU_IOPAD(0x007c, PIN_INPUT_PULLUP, 0) /* (C11) EMU1 */
			AM62X_MCU_IOPAD(0x0064, PIN_INPUT_PULLUP, 0) /* (A10) TCK */
			AM62X_MCU_IOPAD(0x006c, PIN_INPUT_PULLUP, 0) /* (A11) TDI */
			AM62X_MCU_IOPAD(0x0070, PIN_OUTPUT_PULLUP, 0) /* (D12) TDO */
			AM62X_MCU_IOPAD(0x0074, PIN_INPUT_PULLUP, 0) /* (B11) TMS */
			AM62X_MCU_IOPAD(0x0068, PIN_INPUT_PULLDOWN, 0) /* (B10) TRSTn */
		>;
	};

	mcu_gpio_pins_default: mcu_gpio-pins-default {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x001c, PIN_INPUT, 7) /* (A6) MCU_UART0_CTSn.MCU_GPIO0_7 */
			AM62X_MCU_IOPAD(0x0020, PIN_INPUT, 7) /* (B6) MCU_UART0_RTSn.MCU_GPIO0_8 */
			AM62X_MCU_IOPAD(0x002c, PIN_INPUT, 7) /* (C6) WKUP_UART0_CTSn.MCU_GPIO0_11 */
			AM62X_MCU_IOPAD(0x0030, PIN_INPUT, 7) /* (A4) WKUP_UART0_RTSn.MCU_GPIO0_12 */
			AM62X_MCU_IOPAD(0x0040, PIN_INPUT, 7) /* (D4) MCU_MCAN1_RX.MCU_GPIO0_16 */
		>;
	};

	mcu_i2c0_pins_default: mcu_i2c0-pins-default {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x0044, PIN_INPUT, 0) /* (A8) MCU_I2C0_SCL */
			AM62X_MCU_IOPAD(0x0048, PIN_INPUT, 0) /* (D10) MCU_I2C0_SDA */
		>;
	};
	mcu_mcan0_pins_default: mcu_mcan0-pins-default {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x0038, PIN_INPUT, 0) /* (B3) MCU_MCAN0_RX */
			AM62X_MCU_IOPAD(0x0034, PIN_OUTPUT, 0) /* (D6) MCU_MCAN0_TX */
		>;
	};
	mcu_system_pins_default: mcu_system-pins-default {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x0060, PIN_INPUT_PULLDOWN, 0) /* (D1) MCU_ERRORn */
			AM62X_MCU_IOPAD(0x0058, PIN_INPUT, 0) /* (D2) MCU_PORz */
			AM62X_MCU_IOPAD(0x005c, PIN_OUTPUT, 0) /* (B12) MCU_RESETSTATz */
			AM62X_MCU_IOPAD(0x0054, PIN_INPUT_PULLUP, 0) /* (E11) MCU_RESETz */
		>;
	};
	wkup_i2c0_pins_default: wkup_i2c0-pins-default {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x004c, PIN_INPUT, 0) /* (B9) WKUP_I2C0_SCL */
			AM62X_MCU_IOPAD(0x0050, PIN_INPUT, 0) /* (A9) WKUP_I2C0_SDA */
		>;
	};
	wkup_system_pins_default: wkup_system-pins-default {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x0084, PIN_OUTPUT, 0) /* (A12) WKUP_CLKOUT0 */
		>;
	};
	wkup_uart0_pins_default: wkup_uart0-pins-default {
		bootph-pre-ram;
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x0024, PIN_INPUT, 0) /* (B4) WKUP_UART0_RXD */
			AM62X_MCU_IOPAD(0x0028, PIN_OUTPUT, 0) /* (C5) WKUP_UART0_TXD */
		>;
	};

	mcu_spi0_pins_default: mcu-spi0-pins-default {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x0008, PIN_INPUT, 0) /* (A7) MCU_SPI0_CLK */
			AM62X_MCU_IOPAD(0x0000, PIN_INPUT, 0) /* (E8) MCU_SPI0_CS0 */
			AM62X_MCU_IOPAD(0x000c, PIN_INPUT, 0) /* (D9) MCU_SPI0_D0 */
			AM62X_MCU_IOPAD(0x0010, PIN_INPUT, 0) /* (C9) MCU_SPI0_D1 */
		>;
	};
};



&mcu_spi0 {
    pinctrl-names = "default";
    pinctrl-0 = <&mcu_spi0_pins_default>;
    status = "okay";

    spidev1: spi@0 {
        reg = <0>;
        compatible = "rohm,dh2228fv";
		spi-max-frequency = <40000000>;
    };
};

&main_mcan0 {
	pinctrl-names = "default";
	pinctrl-0 = <&main_mcan0_pins_default>;
	status = "okay";
};

&main_uart0 {
	bootph-all;
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_uart0_pins_default>;
	interrupts-extended = <&gic500 GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>,
			       <&main_pmx0 0x1c8>; /* (D14) UART0_RXD PADCONFIG114 */
	interrupt-names = "irq", "wakeup";
};

&main_uart1 {
	/* Main UART1 is used by TIFS firmware */
	bootph-pre-ram;
	status = "reserved";
	pinctrl-names = "default";
	pinctrl-0 = <&main_uart1_pins_default>;
};

&main_uart5 {
	pinctrl-names = "default";
	pinctrl-0 = <&main_uart5_pins_default>;
	status = "okay";
};

&wkup_uart0 {
	/* WKUP UART0 is used by DM firmware */
	bootph-pre-ram;
	status = "reserved";
	pinctrl-names = "default";
	pinctrl-0 = <&wkup_uart0_pins_default>;
};

&main_i2c0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_i2c0_pins_default>;
	clock-frequency = <400000>;

	// eeprom@51 {
	// 	/* AT24C512C-MAHM-T or M24512-DFMC6TG */
	// 	compatible = "atmel,24c512";
	// 	reg = <0x51>;
	// };

	pmic@30 {
		compatible = "ti,tps65219";
		reg = <0x30>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_pmic_extint>;
		interrupt-parent = <&gic500>;
		interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;

		buck1-supply = <&reg_vsodimm>;
		buck2-supply = <&reg_vsodimm>;
		buck3-supply = <&reg_vsodimm>;
		ldo1-supply = <&reg_3v3>;
		ldo2-supply = <&reg_1v8>;
		ldo3-supply = <&reg_3v3>;
		ldo4-supply = <&reg_3v3>;
		system-power-controller;
		ti,power-button;

		regulators {
			reg_vdd_core: buck1 {
				regulator-always-on;
				regulator-boot-on;
				regulator-max-microvolt = <850000>;
				regulator-min-microvolt = <750000>;
				regulator-name = "VCC_CORE";
			};

			reg_1v8: buck2 {
				regulator-always-on;
				regulator-boot-on;
				regulator-max-microvolt = <3300000>;
				regulator-min-microvolt = <3300000>;
				regulator-name = "V3.3"; /* On-module and SODIMM 214 */
			};

			reg_vdd_ddr: buck3 {
				regulator-always-on;
				regulator-boot-on;
				regulator-max-microvolt = <1200000>;
				regulator-min-microvolt = <1200000>;
				regulator-name = "VDD_DDR";
			};

			reg_sd_3v3_1v8: ldo1 {
				regulator-allow-bypass;
				regulator-always-on;
				regulator-boot-on;
				regulator-max-microvolt = <3300000>;
				regulator-min-microvolt = <3300000>;
				regulator-name = "V3.3_1.8_SD";
			};

			reg_vddr_core: ldo2 {
				regulator-always-on;
				regulator-boot-on;
				regulator-max-microvolt = <850000>;
				regulator-min-microvolt = <850000>;
				regulator-name = "VDDR_CORE";
			};

			reg_1v8a: ldo3 {
				regulator-always-on;
				regulator-boot-on;
				regulator-max-microvolt = <1800000>;
				regulator-min-microvolt = <1800000>;
				regulator-name = "VDDA_1V8";
			};

			reg_eth_2v5: ldo4 {
				regulator-always-on;
				regulator-boot-on;
				regulator-max-microvolt = <2500000>;
				regulator-min-microvolt = <2500000>;
				regulator-name = "VPP_DDR";
			};
		};
	};
	
};

&main_i2c1 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_i2c1_pins_default>;
	clock-frequency = <400000>;

	ov5645: camera@3c {
		compatible = "ovti,ov5645";
		reg = <0x3c>;
		pinctrl-names = "default";
		pinctrl-0 = <&ov5640_pins_default>;
		clocks = <&clk_ov5645_fixed>;
		clock-names = "xclk";
		clock-frequency = <24000000>;
		enable-gpios = <&main_gpio0 72 GPIO_ACTIVE_HIGH>;
		reset-gpios = <&main_gpio0 12 GPIO_ACTIVE_LOW>;
		port {
			csi2_cam0: endpoint {
				remote-endpoint = <&csi2rx0_in_sensor>;
				clock-lanes = <0>;
				data-lanes = <1 2>;
			};
		};
	};


	tsc2007:tsc2007@48 {
		compatible = "ti,tsc2007";
		reg = <0x48>;
		pinctrl-names = "default";
		pinctrl-0 = <&tsc_2007_pins_default>;
		interrupt-parent = <&main_gpio1>;
		interrupts = <15 IRQ_TYPE_EDGE_FALLING>;
		gpios = <&main_gpio1 15 GPIO_ACTIVE_HIGH>;
		ti,fuzzx = <4095>;
		ti,fuzzy = <4095>; 
		touchscreen-size-x = <4000>;
		touchscreen-size-y = <4000>;
		ti,x-plate-ohms = <180>;
		
	};


	gt911: gt911_ts@5d {
		compatible = "goodix,gt911";
		reg = <0x5d>;
		pinctrl-names = "default";
		pinctrl-0 = <&gt911_pins_default>;
		interrupt-parent = <&main_gpio0>;
		interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
		irq-gpios = <&main_gpio0 7  GPIO_ACTIVE_HIGH>;
		reset-gpios = <&main_gpio0 8 GPIO_ACTIVE_HIGH>;
		touchscreen-size-x = <800>;
		touchscreen-size-y = <480>;
		touchscreen-inverted-x;
		touchscreen-inverted-y;
		status = "okay";
	};

};

&main_i2c2 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_i2c2_pins_default>;
	clock-frequency = <400000>;

	pcf8563:rtc@51 {
		compatible = "nxp,pcf8563";
		reg = <0x51>;
		status = "okay";
	};

	gt928: gt928_ts@14 {
		compatible = "goodix,gt928";
		reg = <0x14>;
		pinctrl-names = "default";
		pinctrl-0 = <&gt928_pins_default>; 
		interrupt-parent = <&main_gpio0>;
		interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
		irq-gpios = <&main_gpio0 9  GPIO_ACTIVE_HIGH>;
		reset-gpios = <&main_gpio0 10 GPIO_ACTIVE_HIGH>;
		touchscreen-size-x = <1280>;
		touchscreen-size-y = <800>;
		touchscreen-swapped-x-y;
		status = "okay";
	};

	es8388: es8388@10 {
		pinctrl-names = "default";
		pinctrl-0 = <&audio_ext_refclk1_pins_default>;
		compatible = "everest,es8388";
		reg = <0x10>;
		#sound-dai-cells = <0>;
		clocks = <&clk_es8388_fixed>;
		// clocks = <&audio_refclk1>;
	};

};

&wkup_i2c0 {
	pinctrl-names = "default";
	pinctrl-0 = <&wkup_i2c0_pins_default>;
	status = "okay";
};

&mcu_i2c0 {
	pinctrl-names = "default";
	pinctrl-0 = <&mcu_i2c0_pins_default>;
	status = "okay";
};

&sdhci0 {
	bootph-all;
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_mmc0_pins_default>;
	disable-wp;
};

&sdhci1 {
	/* SD/MMC */
	bootph-all;
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_mmc1_pins_default>;
	vmmc-supply = <&vdd_mmc1>;
	// vqmmc-supply = <&vdd_sd_dv>;
	disable-wp;
	no-1-8-v;
};

&sdhci2 {
	pinctrl-names = "default";
	pinctrl-0 = <&main_mmc2_pins_default>;
	vqmmc-supply = <&wlan_en>;
	mmc-pwrseq = <&sdio_pwrseq>;
	bus-width = <4>;
    non-removable;
    ti,fails-without-test-cd;
    cap-power-off-card;
    keep-power-in-suspend;
    ti,driver-strength-ohm = <50>;
    assigned-clocks = <&k3_clks 157 158>;
    assigned-clock-parents = <&k3_clks 157 160>;
	status = "okay";
};

&ospi0 {
	bootph-all;
	status = "disabled";
	pinctrl-names = "default";
	pinctrl-0 = <&ospi0_pins_default>;

	flash@0 {
		bootph-all;
		compatible = "jedec,spi-nor";
		reg = <0x0>;
		spi-tx-bus-width = <8>;
		spi-rx-bus-width = <8>;
		spi-max-frequency = <40000000>;
		cdns,tshsl-ns = <60>;
		cdns,tsd2d-ns = <60>;
		cdns,tchsh-ns = <60>;
		cdns,tslch-ns = <60>;
		cdns,read-delay = <4>;
		cdns,read-delay-dtr = <10>;
		#address-cells = <1>;
		#size-cells = <1>;
		cdns,phy-mode;

		partitions {
			bootph-all;
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;

			partition@0 {
				label = "ospi.tiboot3";
				reg = <0x0 0x80000>;
			};

			partition@80000 {
				label = "ospi.tispl";
				reg = <0x80000 0x200000>;
			};

			partition@280000 {
				label = "ospi.u-boot";
				reg = <0x280000 0x400000>;
			};

			partition@680000 {
				label = "ospi.env";
				reg = <0x680000 0x40000>;
			};

			partition@6c0000 {
				label = "ospi.env.backup";
				reg = <0x6c0000 0x40000>;
			};

			partition@800000 {
				label = "ospi.rootfs";
				reg = <0x800000 0x37c0000>;
			};

			partition@3fc0000 {
				bootph-pre-ram;
				label = "ospi.phypattern";
				reg = <0x3fc0000 0x40000>;
			};
		};
	};
};

/* ETHERNET */
&phy_gmii_sel {
	bootph-all;
};

&cpsw_mac_syscon {
	bootph-all;
};

&cpsw3g {
	bootph-all;
	pinctrl-names = "default";
	pinctrl-0 = <&main_rgmii1_pins_default>, <&rgmii1_reset_pins>,
				<&main_rgmii2_pins_default>, <&rgmii2_reset_pins>;
	// pinctrl-0 = <&main_rgmii1_pins_default>, <&main_rgmii2_pins_default>;

	cpts@3d000 {
		/* MAP HW3_TS_PUSH to GENF1 */
		ti,pps = <2 1>;
	};
};

&cpsw_port1 {
	bootph-all;
	phy-mode = "rgmii-rxid";
	phy-handle = <&cpsw3g_phy0>;
	status = "okay";
};

&cpsw_port2 {
	bootph-all;
	phy-mode = "rgmii-rxid";
	phy-handle = <&cpsw3g_phy1>;
	status = "okay";
};

&cpsw3g_mdio {
	bootph-all;
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_mdio1_pins_default>;

	cpsw3g_phy0: ethernet-phy@1 {
		bootph-all;
		reg = <1>;
		// compatible = "ethernet-phy-ieee802.3-c22";
		// ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
		// ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
		ti,min-output-impedance;
		rstn-gpios = <&main_gpio0 35 GPIO_ACTIVE_HIGH>;
	};

	cpsw3g_phy1: ethernet-phy@2 {
		reg = <2>;
		// ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
		// ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
		ti,min-output-impedance;
		rstn-gpios = <&main_gpio0 40 GPIO_ACTIVE_HIGH>;
	};
};



&mailbox0_cluster0 {
	mbox_m4_0: mbox-m4-0 {
		ti,mbox-rx = <0 0 0>;
		ti,mbox-tx = <1 0 0>;
	};

	mbox_r5_0: mbox-r5-0 {
		ti,mbox-rx = <2 0 0>;
		ti,mbox-tx = <3 0 0>;
	};
};

&mcu_m4fss {
	mboxes = <&mailbox0_cluster0 &mbox_m4_0>;
	memory-region = <&mcu_m4fss_dma_memory_region>,
			<&mcu_m4fss_memory_region>;
	status = "okay";
};

&wkup_r5fss0 {
	status = "okay";
};

&wkup_r5fss0_core0 {
	mboxes = <&mailbox0_cluster0 &mbox_r5_0>;
	memory-region = <&wkup_r5fss0_core0_dma_memory_region>,
					<&wkup_r5fss0_core0_memory_region>;
};

&usbss0 {
	bootph-all;
	status = "okay";
	ti,vbus-divider;
	
};

&usb0 {
	bootph-all;
	status = "okay";
	dr_mode = "host";
	usb-role-switch;
	// extcon = <&usbss0>;
	pinctrl-names = "default";
	pinctrl-0 = <&main_usb0_pins_default>;
	// pinctrl-0 = <&main_usb0_pins_default>, <&otg0_pins_default>;
};

&usbss1 {
	status = "okay";
	ti,vbus-divider;
};

&usb1 {
	status = "okay";
	dr_mode = "host";
	pinctrl-names = "default";
	pinctrl-0 = <&main_usb1_pins_default>;
};

&audio_refclk1 {
	status = "okay";
	// assigned-clock-rates = <11289600>;
	clocks = <&k3_clks 157 10>;
	assigned-clocks = <&k3_clks 157 10>;
	assigned-clock-parents = <&clk_es8388_fixed>;
	// assigned-clock-parents = <&k3_clks 157 18>;
};

&mcasp0 {
	pinctrl-names = "default";
	pinctrl-0 = <&main_mcasp0_pins_default>;
    status = "okay";
	#sound-dai-cells = <0>;
	op-mode = <0>;          /* MCASP_IIS_MODE */
	tdm-slots = <2>;

	/*
	DEV_MCASP0_MCASP_AHCLKR_PIN	DEV_MCASP0_MCASP_AHCLKR_PIN_PARENT_BOARD_0_AUDIO_EXT_REFCLK1_OUT
	DEV_MCASP0_MCASP_AHCLKX_PIN DEV_MCASP0_MCASP_AHCLKX_PIN_PARENT_BOARD_0_AUDIO_EXT_REFCLK1_OUT
	*/
	// clocks = <&k3_clks 190 9>;
	// clock-names = "fck";
	// assigned-clocks = <&k3_clks 190 9>;
	// assigned-clock-parents = <&k3_clks 190 13>;
	// assigned-clock-rates = <11289600>;
	// assigned-clocks = <&k3_clks 190 9>, <&k3_clks 190 15>;
	// assigned-clock-parents = <&k3_clks 190 13>, <&k3_clks 190 19>;
	// assigned-clock-rates = <11289600>, <24576000>;
	// assigned-clocks = <&k3_clks 190 9>, <&k3_clks 190 15>;
	// assigned-clock-parents = <&k3_clks 190 13>, <&k3_clks 190 19>;


	/* 16 serializers */
	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
		0 0 1 2
		0 0 0 0
		0 0 0 0
		0 0 0 0
	>;
	tx-num-evt = <32>;
	rx-num-evt = <32>;
};

&mcasp1 {
	status = "disabled";
	#sound-dai-cells = <0>;

	pinctrl-names = "default";
	pinctrl-0 = <&main_mcasp1_pins_default>;

	op-mode = <0>;          /* MCASP_IIS_MODE */
	tdm-slots = <2>;

	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
	       1 0 2 0
	       0 0 0 0
	       0 0 0 0
	       0 0 0 0
	>;
};

&epwm1 {
	pinctrl-names = "default";
	pinctrl-0 = <&main_epwm1_pins_default>;
	status = "okay";
};

&csi0_port0 {
	status = "okay";
	
	csi2rx0_in_sensor: endpoint {
		remote-endpoint = <&csi2_cam0>;
		bus-type = <4>; /* CSI2 DPHY. */
		clock-lanes = <0>;
		data-lanes = <1 2>;
	};
};

&dss_oldi_io_ctrl {
	bootph-all;
};

&dss {
	bootph-all;
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&oldi0_pins_default>, <&main_dss0_pins_default>;
};

&oldi0 {
	status = "okay";
	ti,companion-oldi = <&oldi1>;
};

&oldi1 {
	status = "okay";
	ti,secondary-oldi;
};

&oldi0_ports {
	#address-cells = <1>;
	#size-cells = <0>;

	port@0 {
		reg = <0>;
		oldi_0_in: endpoint {
			remote-endpoint = <&dpi0_out0>;
		};
	};

	port@1 {
		reg = <1>;
		oldi_0_out: endpoint {
			remote-endpoint = <&lcd_in0>;
		};
	};
};

&oldi1_ports {
        #address-cells = <1>;
        #size-cells = <0>;

        port@0 {
			reg = <0>;
			oldi_1_in: endpoint {
				remote-endpoint = <&dpi0_out1>;
			};
        };

        port@1 {
			reg = <1>;
			oldi_1_out: endpoint {
				remote-endpoint = <&lcd_in1>;
			};
        };
};

&dss_ports {
	#address-cells = <1>;
	#size-cells = <0>;

	/* VP2: DPI Output */
	port@0 {
		reg = <0>;
		dpi0_out0: endpoint@0 {
			reg = <0>;
			remote-endpoint = <&oldi_0_in>;
		};
		dpi0_out1: endpoint@1 {
			reg = <1>;
			remote-endpoint = <&oldi_1_in>;
		};
	};

	port@1 {
		reg = <1>;

		dpi1_out: endpoint {
			remote-endpoint = <&rgb_in0>;
		};
	};

	// port@2 {
	// 	reg = <2>;

	// 	oldi_out1: endpoint {
	// 		remote-endpoint = <&oldi_in1>;
	// 	};
	// };
};

/* mcu_gpio0 and mcu_gpio_intr are reserved for mcu firmware usage */
// &mcu_gpio0 {
// 	status = "reserved";
// };

// &mcu_gpio_intr {
// 	status = "reserved";
// };

&pruss_uart {
	pinctrl-names = "default";
	pinctrl-0 = <&pruss_uart_pins>;
	status = "disabled";
};

&fss {
	bootph-all;
};

&timesync_router {
	mux-reg-masks-state = <
		K3_TS_OFFSET(12, 0x0001ffff, 17)
		>;
	status = "okay";
};

&gpu {
	status = "disabled";
};

&main_rti15 {
	status = "disabled";
};

After the system boots up, audio recording and playback are not working.

When using arecord to record audio, the following error is reported:

When using aplay to play audio, there is no sound, and the program hangs indefinitely until terminated with Ctrl+C.

Please help check if there is any issue with the device tree configuration. I am currently using Linux SDK version 11.00.09.04.