blob: 6cbce1972a900e65034a04365272ff24516b2c2d [file] [log] [blame]
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2021 Amlogic, Inc. All rights reserved.
*/
/dts-v1/;
#include "mesont5w.dtsi"
#include "partition_mbox_ab.dtsi"
#include "mesont5w_at301-panel.dtsi"
/ {
model = "Amlogic T5W AT301 2G";
amlogic-dt-id = "t5w_at301_2g";
compatible = "amlogic, t5w";
interrupt-parent = <&gic>;
#address-cells = <2>;
#size-cells = <2>;
aliases {
serial0 = &uart_B;
serial1 = &uart_A;
serial2 = &uart_C;
i2c0 = &i2c0;
i2c1 = &i2c1;
i2c2 = &i2c2;
i2c3 = &i2c3;
tsensor0 = &p_tsensor;
};
memory@00000000 {
device_type = "memory";
linux,usable-memory = <0x0 0x0 0x0 0x80000000>;
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
/* global autoconfigured region for contiguous allocations */
secmon_reserved: linux,secmon {
compatible = "shared-dma-pool";
reusable;
size = <0x0 0x400000>;
alignment = <0x0 0x400000>;
alloc-ranges = <0x0 0x05000000 0x0 0x400000>;
};
logo_reserved:linux,meson-fb {
compatible = "shared-dma-pool";
reusable;
/* keep sync with fb */
/* fox example:logo_addr = "0x3f800000"*/
size = <0x0 0x800000>;
alignment = <0x0 0x400000>;
alloc-ranges = <0x0 0x3f800000 0x0 0x800000>;
};
lcd_tcon_reserved:linux,lcd_tcon {
compatible = "shared-dma-pool";
reusable;
/* alloc-ranges start should not be 0x0*/
size = <0x0 0x00c00000>;
alignment = <0x0 0x400000>;
alloc-ranges = <0x0 0x3c000000 0x0 0x00c00000>;
};
/* vdin0 CMA pool */
/*vdin0_cma_reserved:linux,vdin0_cma {*/
/* compatible = "shared-dma-pool";*/
/* reusable;*/
/* up to 1920x1080 yuv422 8bit and 5 buffers
* 1920x1080x2x5 = 20 M
*/
/* size = <0x0 0x01400000>;*/
/* alignment = <0x0 0x400000>;*/
/*};*/
/* vdin1 CMA pool */
vdin1_cma_reserved:linux,vdin1_cma {
compatible = "shared-dma-pool";
reusable;
/* up to 1920x1080 yuv422 8bit and 5 buffers
* 1920x1080x2x5 = 20 M
*/
size = <0x0 0x01400000>;
alignment = <0x0 0x400000>;
};
codec_mm_cma:linux,codec_mm_cma {
compatible = "shared-dma-pool";
reusable;
/* ion_codec_mm max can alloc size 80M*/
size = <0x0 0x1bc00000>;
alignment = <0x0 0x400000>;
linux,contiguous-region;
};
demod_cma_reserved:linux,demod_cma {
compatible = "shared-dma-pool";
reusable;
/* 40M */
size = <0x0 0x02800000>;
alignment = <0x0 0x400000>;
alloc-ranges = <0x0 0x0 0x0 0x3f000000>;
};
/*di CMA pool */
di_cma_reserved:linux,di_cma {
compatible = "shared-dma-pool";
reusable;
/* buffer_size = 3621952(yuv422 8bit)
* | 4736064(yuv422 10bit)
* | 4074560(yuv422 10bit full pack mode)
* 10x3621952=34.6M(0x23) support 8bit
* 10x4736064=45.2M(0x2e) support 12bit
* 10x4074560=40M(0x28) support 10bit
*/
//size = <0x0 0x0B000000>;
size = <0x0 0x0>;
alignment = <0x0 0x400000>;
};
/* codec shared reserved */
codec_mm_reserved:linux,codec_mm_reserved {
compatible = "amlogic, codec-mm-reserved";
size = <0x0 0x0>;
alignment = <0x0 0x100000>;
//no-map;
};
ion_cma_reserved:linux,ion-dev {
compatible = "shared-dma-pool";
reusable;
/* device/amlogic/xxx/BoardConfig.mk
* |HWC_PRIMARY_FRAMEBUFFER_WIDTH := 1920
* |HWC_PRIMARY_FRAMEBUFFER_HEIGHT := 1080
* |NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
* size = 1920 * 1080 * 3 * 4
* (RGBA: 4 bytes/pixel) + 4M(10% * afbc)
*/
size = <0x0 0x00400000>;
alignment = <0x0 0x400000>;
alloc-ranges = <0x0 0x0 0x0 0x3f400000>;
};
ion_fb_reserved:linux,ion-fb {
compatible = "shared-dma-pool";
reusable;
/* 1920x1080x4x3 round up 4M align */
size = <0x0 0x1c00000>;
alignment = <0x0 0x400000>;
alloc-ranges = <0x0 0x0 0x0 0x3f400000>;
};
ldc_mem_reserved:linux,ldc_mem {
compatible = "shared-dma-pool";
reusable;
size = <0x0 0x400000>;
alignment = <0x0 0x400000>;
};
};
vddio_3v3_reg: fixedregulator@5{
vin-supply = <&vddao3v3_reg>;
compatible = "regulator-fixed";
regulator-name = "VDDIO_3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
/* pinctrl-names = "default"; */
gpio = <&gpio_ao GPIOD_10 GPIO_ACTIVE_HIGH>; /* gpio d 10 */
startup-delay-us = <70000>;
enable-active-high;
};
afe_1v8_reg: fixedregulator@6{
compatible = "regulator-fixed";
vin-supply = <&vddio_3v3_reg>;
regulator-name = "AFE_1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
regulator-always-on;
};
unifykey{
compatible = "amlogic,unifykey";
status = "okay";
unifykey-num = <24>;
unifykey-index-0 = <&keysn_0>;
unifykey-index-1 = <&keysn_1>;
unifykey-index-2 = <&keysn_2>;
unifykey-index-3 = <&keysn_3>;
unifykey-index-4 = <&keysn_4>;
unifykey-index-5 = <&keysn_5>;
unifykey-index-6 = <&keysn_6>;
unifykey-index-7 = <&keysn_7>;
unifykey-index-8 = <&keysn_8>;
unifykey-index-9 = <&keysn_9>;
unifykey-index-10= <&keysn_10>;
unifykey-index-11= <&keysn_11>;
unifykey-index-12= <&keysn_12>;
unifykey-index-13= <&keysn_13>;
unifykey-index-14= <&keysn_14>;
unifykey-index-15= <&keysn_15>;
unifykey-index-16= <&keysn_16>;
unifykey-index-17= <&keysn_17>;
unifykey-index-18= <&keysn_18>;
unifykey-index-19= <&keysn_19>;
unifykey-index-20= <&keysn_20>;
unifykey-index-21= <&keysn_21>;
unifykey-index-22= <&keysn_22>;
unifykey-index-23= <&keysn_23>;
keysn_0: key_0{
key-name = "usid";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_1:key_1{
key-name = "mac";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_2:key_2{
key-name = "hdcp";
key-device = "secure";
key-type = "sha1";
key-permit = "read","write","del";
};
keysn_3:key_3{
key-name = "secure_boot_set";
key-device = "efuse";
key-permit = "write";
};
keysn_4:key_4{
key-name = "mac_bt";
key-device = "normal";
key-permit = "read","write","del";
key-type = "mac";
};
keysn_5:key_5{
key-name = "mac_wifi";
key-device = "normal";
key-permit = "read","write","del";
key-type = "mac";
};
keysn_6:key_6{
key-name = "hdcp2_tx";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_7:key_7{
key-name = "hdcp2_rx";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_8:key_8{
key-name = "widevinekeybox";
key-device = "secure";
key-permit = "read","write","del";
};
keysn_9:key_9{
key-name = "deviceid";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_10:key_10{
key-name = "hdcp22_fw_private";
key-device = "secure";
key-permit = "read","write","del";
};
keysn_11:key_11{
key-name = "PlayReadykeybox25";
key-device = "secure";
key-permit = "read","write","del";
};
keysn_12:key_12{
key-name = "prpubkeybox";// PlayReady
key-device = "secure";
key-permit = "read","write","del";
};
keysn_13:key_13{
key-name = "prprivkeybox";// PlayReady
key-device = "secure";
key-permit = "read","write","del";
};
keysn_14:key_14{
key-name = "attestationkeybox";// attestation key
key-device = "secure";
key-permit = "read","write","del";
};
keysn_15:key_15{
key-name = "region_code";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_16:key_16{
key-name = "netflix_mgkid";
key-device = "secure";
key-permit = "read","write","del";
};
keysn_17:key_17{
key-name = "attestationdevidbox";// attest dev id box
key-device = "secure";
key-permit = "read","write","del";
};
keysn_18:key_18{
key-name = "oemkey";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_19:key_19{
key-name = "lcd";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_20:key_20{
key-name = "lcd_extern";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_21:key_21{
key-name = "backlight";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_22:key_22{
key-name = "lcd_tcon";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_23:key_23{
key-name = "lcd_tcon_spi";
key-device = "normal";
key-permit = "read","write","del";
};
};//End unifykey
cvbsout {
compatible = "amlogic, cvbsout-t5w";
status = "okay";
/* clk path */
/* 0:vid_pll vid2_clk */
/* 2:vid_pll vid1_clk */
clk_path = <0>;
/* performance: reg_address, reg_value */
/* tm2 */
performance = <0x1bf0 0x9
0x1b56 0x333
0x1b12 0x8080
0x1b05 0xfd
0x1c59 0xf850
0xffff 0x0>; /* ending flag */
performance_sarft = <0x1bf0 0x9
0x1b56 0x333
0x1b12 0x0
0x1b05 0x9
0x1c59 0xfc48
0xffff 0x0>; /* ending flag */
performance_revB_telecom = <0x1bf0 0x9
0x1b56 0x546
0x1b12 0x8080
0x1b05 0x9
0x1c59 0xf850
0xffff 0x0>; /* ending flag */
};
/* for external keypad */
adc_keypad {
compatible = "amlogic, adc_keypad";
status = "okay";
key_name = "power","vol-","vol+","enter","menu","source","exit";
key_num = <7>;
io-channels = <&saradc SARADC_CH1>,<&saradc SARADC_CH2>;
io-channel-names = "key-chan-1", "key-chan-2";
key_chan = <SARADC_CH1 SARADC_CH1 SARADC_CH1 SARADC_CH1
SARADC_CH1 SARADC_CH2 SARADC_CH2>;
key_code = <116 114 115 28 139 466 174>;
key_val = <0 143 266 389 507 143 266>; //val=voltage/1800mV*1023
key_tolerance = <40 40 40 40 40 40 40>;
};
/* Audio Related start */
auge_sound {
compatible = "amlogic, auge-sound-card";
aml-audio-card,name = "AML-AUGESOUND";
avout_mute-gpios = <&gpio_ao GPIOD_6 GPIO_ACTIVE_HIGH>;
interrupts = <GIC_SPI 235 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "audio_exception64";
aml-audio-card,dai-link@0 {
format = "i2s";
mclk-fs = <256>;
//continuous-clock;
//bitclock-inversion;
//frame-inversion;
/* master mode */
bitclock-master = <&tdma>;
frame-master = <&tdma>;
/* slave mode */
/*
* bitclock-master = <&tdmacodec>;
* frame-master = <&tdmacodec>;
*/
/* suffix-name, sync with android audio hal used for */
suffix-name = "alsaPORT-pcm";
tdmacpu: cpu {
sound-dai = <&tdma>;
dai-tdm-slot-tx-mask =
<1 1>;
dai-tdm-slot-rx-mask =
<1 1>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
system-clock-frequency = <12288000>;
};
tdmacodec: codec {
sound-dai = <&dummy_codec>;
};
};
aml-audio-card,dai-link@1 {
format = "i2s";
mclk-fs = <256>;
//continuous-clock;
//bitclock-inversion;
//frame-inversion;
/* master mode */
bitclock-master = <&tdmb>;
frame-master = <&tdmb>;
/* slave mode */
//bitclock-master = <&tdmbcodec>;
//frame-master = <&tdmbcodec>;
/* suffix-name, sync with android audio hal used for */
suffix-name = "alsaPORT-i2s-i2s4hdmirx";
cpu {
sound-dai = <&tdmb>;
dai-tdm-slot-tx-mask = <1 1>;
dai-tdm-slot-rx-mask = <1 1>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
system-clock-frequency = <12288000>;
};
tdmbcodec: codec {
prefix-names = "AMP";
sound-dai = <&tas5805 &acodec>;
};
};
aml-audio-card,dai-link@2 {
format = "i2s";
mclk-fs = <256>;
//continuous-clock;
//bitclock-inversion;
//frame-inversion;
/* master mode */
bitclock-master = <&tdmc>;
frame-master = <&tdmc>;
/* slave mode */
//bitclock-master = <&tdmccodec>;
//frame-master = <&tdmccodec>;
/* suffix-name, sync with android audio hal used for */
suffix-name = "alsaPORT-i2s4parser";
cpu {
sound-dai = <&tdmc>;
dai-tdm-slot-tx-mask = <1 1>;
dai-tdm-slot-rx-mask = <1 1>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
system-clock-frequency = <12288000>;
};
tdmccodec: codec {
sound-dai = <&dummy_codec>;
};
};
aml-audio-card,dai-link@3 {
mclk-fs = <64>;
/* suffix-name, sync with android audio hal used for */
suffix-name = "alsaPORT-pdm";
cpu {
sound-dai = <&pdm>;
};
codec {
sound-dai = <&dummy_codec>;
};
};
aml-audio-card,dai-link@4 {
mclk-fs = <128>;
continuous-clock;
/* suffix-name, sync with android audio hal used for */
suffix-name = "alsaPORT-spdif";
cpu {
sound-dai = <&spdifa>;
system-clock-frequency = <6144000>;
};
codec {
sound-dai = <&dummy_codec>;
};
};
aml-audio-card,dai-link@5 {
mclk-fs = <128>;
suffix-name = "alsaPORT-spdifb";
cpu {
sound-dai = <&spdifb>;
system-clock-frequency = <6144000>;
};
codec {
sound-dai = <&dummy_codec>;
};
};
aml-audio-card,dai-link@6 {
mclk-fs = <256>;
suffix-name = "alsaPORT-tv";
cpu {
sound-dai = <&extn>;
system-clock-frequency = <12288000>;
};
codec {
sound-dai = <&dummy_codec>;
};
};
aml-audio-card,dai-link@7 {
mclk-fs = <256>;
continuous-clock;
suffix-name = "alsaPORT-loopback";
cpu {
sound-dai = <&loopbacka>;
system-clock-frequency = <12288000>;
};
codec {
sound-dai = <&dummy_codec>;
};
};
aml-audio-card,dai-link@8 {
mclk-fs = <256>;
suffix-name = "alsaPORT-earc";
cpu {
sound-dai = <&earc>;
system-clock-frequency = <12288000>;
};
codec {
sound-dai = <&dummy_codec>;
};
};
};
codec_mm {
compatible = "amlogic, codec, mm";
memory-region = <&codec_mm_cma &codec_mm_reserved>;
dev_name = "codec_mm";
status = "okay";
};
tvafe_avin_detect {
compatible = "amlogic, t5w_tvafe_avin_detect";
status = "okay";
device_mask = <1>;/*bit0:ch1;bit1:ch2*/
reg = <0x0 0xffd00000 0x0 0xf0a0>; /* cvbs irq base */
interrupts = <0 12 1>,
<0 13 1>;
};
tvafe {
compatible = "amlogic, tvafe-t5w";
/*memory-region = <&tvafe_cma_reserved>;*/
status = "okay";
flag_cma = <1>;/*1:share with codec_mm;0:cma alone*/
cma_size = <5>;/*MByte*/
reg = <0x0 0xff654000 0x0 0x2000/*tvafe reg base*/
0x0 0xff63C000 0x0 0x2000>; /*hiu reg base*/
reserve-iomap = "true";
tvafe_id = <0>;
//pinctrl-names = "default";
/*!!particular sequence, no more and no less!!!*/
tvafe_pin_mux = <
3 /* TVAFE_CVBS_IN2, CVBS_IN0 = 0 */
1 /* TVAFE_CVBS_IN0, CVBS_IN1 */
2 /* TVAFE_CVBS_IN1, CVBS_IN2 */
4 /* TVAFE_CVBS_IN3, CVBS_IN3 */
>;
clocks = <&clkc CLKID_CDAC_CLK>;
clock-names = "vdac_clk_gate";
cutwindow_val_h = <0 0 0 0 8>; /* level 0~4 */
cutwindow_val_v = <4 8 14 16 24>; /* level 0~4 */
};
vbi {
compatible = "amlogic, vbi";
status = "okay";
interrupts = <0 83 1>;
};
hdmirx {
compatible = "amlogic, hdmirx_t5w";
#address-cells=<1>;
#size-cells=<1>;
/*memory-region = <&hdmirx_emp_cma_reserved>;*/
status = "okay";
pinctrl-names = "hdmirx_pins";
pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
&hdmirx_c_mux>;
repeat = <0>;
/*power-domains = <&pwrdm PDID_T5W_HDMIRX>;*/
interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>;
clocks =<&clkc CLKID_HDMIRX_CFG>,
<&clkc CLKID_HDMIRX_ACR>,
<&clkc CLKID_HDMIRX_METER>,
<&clkc CLKID_HDMIRX_2M>,
<&clkc CLKID_HDMIRX_5M>,
<&clkc CLKID_HDMIRX_HDCP>,
<&xtal>,
<&clkc CLKID_FCLK_DIV4>,
<&clkc CLKID_FCLK_DIV5>;
clock-names = "hdmirx_cfg_clk",
"cts_hdmirx_acr_ref_clk",
"cts_hdmirx_meter_clk",
"cts_hdmirx_2m_clk",
"cts_hdmirx_5m_clk",
"cts_hdmirx_hdcp2x_eclk",
"xtal",
"fclk_div4",
"fclk_div5";
hdmirx_id = <0>;
en_4k_2_2k = <0>;
hpd_low_cec_off = <0>;
arc_port = <1>;
/* bit4: enable feature, bit3~0: port number */
disable_port = <0x0>;
/* MAP_ADDR_MODULE_CBUS */
/* MAP_ADDR_MODULE_HIU */
/* MAP_ADDR_MODULE_HDMIRX_CAPB3 */
/* MAP_ADDR_MODULE_SEC_AHB */
/* MAP_ADDR_MODULE_SEC_AHB2 */
/* MAP_ADDR_MODULE_APB4 */
/* MAP_ADDR_MODULE_TOP */
/* MAP_ADDR_MODULE_CLK_CTRL */
/* MAP_ADDR_MODULE_ANA_CTRL */
reg = < 0x0 0x0 0x0 0x0
0x0 0xff63C000 0x0 0x2000
0x0 0xffe0d000 0x0 0x2000
0x0 0x0 0x0 0x0
0x0 0x0 0x0 0x0
0x0 0x0 0x0 0x0
0x0 0xff688000 0x0 0x18000
0x0 0xff646000 0x0 0x1fff
0x0 0xfe008000 0x280 0x334>;
};
multi-di {
//status = "okay";
/***************************************************
* memory: default is 4
* 0:use reserved;
* 1:use cma;
* 2:use cma as reserved
* 4:use codec mem
***************************************************/
flag_cma = <4>;//t5d unsupport 4K,di 1CH need 42M
//memory-region = <&di_cma_reserved>;
/***************************************************
* clock-range: <min max>
* default: <334 667>
***************************************************/
//clock-range = <334 667>;
/***************************************************
* en_4k: t5d not support 4k
***************************************************/
en_4k = <1>;
keep_dec_vf = <2>;
po_fmt = <6>;
/***************************************************
* post_nub: default is 11 (T7/T3/SC2/S4 new path)
* local 7*4075520 = 28
* post 11*5222400 = 56
***************************************************/
post_nub = <11>;
/***************************************************
* 0:not support
* bit 0: for 4k
* bit 1: for 1080p
***************************************************/
alloc_sct = <1>;
/***************************************************
* hf: default is 0 (T7/T3/SC2/S4 new path)
* 0:not enable;
* 1: enable
***************************************************/
hf = <0>;
};
aml_dtv_demod {
compatible = "amlogic, ddemod-t5w";
dev_name = "aml_dtv_demod";
status = "okay";
diseqc_name = "sgm_41286";
pinctrl-names="if_agc_pins", "diseqc", "rf_agc_pins";
pinctrl-0=<&dtvdemod_if_agc_pins>;
pinctrl-1=<&diseqc_out>;
pinctrl-2=<&dtvdemod_rf_agc_pins>;
lnb_en-gpios = <&gpio GPIOZ_2 GPIO_ACTIVE_HIGH>;
lnb_sel-gpios = <&gpio GPIOZ_3 GPIO_ACTIVE_HIGH>;
interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "demod_isr";
power-domains = <&pwrdm PDID_T5_DEMOD>;
clocks = <&clkc CLKID_DEMOD_32K>;
clock-names = "demod_32k";
reg = <0x0 0xff670000 0x0 0x10000 /*dtv demod base*/
0x0 0xff646000 0x0 0x2000 /*hiu reg base*/
0x0 0xff800000 0x0 0x1000 /*io_aobus_base*/
0x0 0xffd01000 0x0 0x1000 /*reset*/
>;
dtv_demod0_mem = <0>; // need move to aml_dtv_demod ?
spectrum = <1>;
cma_flag = <1>;
cma_mem_size = <8>;
memory-region = <&demod_cma_reserved>;//<&demod_reserved>;
};
atv-demod {
compatible = "amlogic, atv-demod";
status = "okay";
btsc_sap_mode = <1>;
interrupts = <0 236 1>;
/* pinctrl-names="atvdemod_agc_pins"; */
/* pinctrl-0=<&atvdemod_agc_pins>; */
reg = <0x0 0xff656000 0x0 0x2000 /* demod reg */
0x0 0xff646000 0x0 0x2000 /* hiu reg */
0x0 0xff634400 0x0 0x400 /* periphs reg */
0x0 0xff64a000 0x0 0x2000>; /* audio reg */
reg_23cf = <0x88188832>;
/*default:0x88188832;r840 on haier:0x48188832*/
};
dvb-extern {
compatible = "amlogic, dvb-extern";
dev_name = "dvb-extern";
status = "okay";
fe_num = <1>;
fe0_demod = "internal";
tuner_num = <2>; /* tuner number, multi tuner support */
tuner0_name = "si2151_tuner";
tuner0_i2c_adap = <&i2c0>;
tuner0_i2c_addr = <0x60>; /* 7 bits */
/* tuner0_xtal = <1>; */ /* unuse for si2151 */
/* tuner0_xtal_mode = <0>; */
/* tuner0_xtal_cap = <8>; */
tuner1_name = "rt710_tuner";
tuner1_i2c_adap = <&i2c0>;
tuner1_i2c_addr = <0xF4>; /* 8 bits */
tuner1_xtal = <0>; /* 0: 16MHz, 1: 24MHz */
tuner1_xtal_mode = <0>;
/* NO_SHARE_XTAL(0)
* SLAVE_XTAL_SHARE(3)
*/
tuner1_xtal_cap = <30>;
};
dmx_aucpu: aucpu {
compatible = "amlogic, aucpu";
dev_name = "aml_aucpu";
status = "okay";
interrupts = <0 95 1>;
interrupt-names = "aucpu_irq";
#address-cells=<2>;
#size-cells=<2>;
ranges;
io_reg_base{
reg = <0x0 0xff650080 0x0 0x100>;
};
};
dvb-demux {
compatible = "amlogic sc2, dvb-demux";
dev_name = "dvb-demux";
status = "okay";
reg = <0x0 0xff610000 0x0 0x10000>;
dmxdev_num = <4>;
tsn_from = "demod";
ts2_sid = <0x12>;
ts2 = "parallel";
ts2_control = <0x0>;
ts2_invert = <0>;
ts1_sid = <0x11>;
ts1 = "parallel";
ts1_control = <0x0>;
ts1_invert = <0>;
pinctrl-names = "p_ts1";
pinctrl-0 = <&dvb_p_ts1_pins>;
};
dvbci {
compatible = "amlogic, dvbci";
dev_name = "dvbci";
io_type = <4>; /* 0=iobus,1=spi,2=cimax,3=spi-t312 4:T5D,ci bus*/
addr_ts_mode_multiplex = <0>; /*AT301 not multi ts and addr,default 1*/
le_enable_level = <0>; /*LE pin enable level*/
/*gpio pin define*/
pinctrl-names= "ci_ts_pins", "ci_addr_pins";
pinctrl-0=<&dvb_ci_bus_pins_all &ci_ts_pins &ci_ts_clk_pins>;
pinctrl-1=<&dvb_ci_bus_pins &ci_addr_pins &ci_gpio_pins>;
reg = <0x0 0xffd20000 0x0 0x1FFF>;
/*irq define*/
interrupts = <0 186 1
0 187 1>;
interrupt-names = "irq_cmp",
"irq_timeout";
dvbci_io {
/*gpio define GPIOM_27 GPIOM_28 GPIOM_29*/
cd_pin1 = <&gpio GPIOM_27 GPIO_ACTIVE_HIGH>;
pwr_pin = <&gpio GPIOM_28 GPIO_ACTIVE_HIGH>;
le_pin = <&gpio GPIOM_29 GPIO_ACTIVE_HIGH>;
};
};
/* SMC */
smartcard {
compatible = "amlogic,smartcard-sc2";
dev_name = "smartcard";
status = "disabled";
reg = <0x0 0xffd25000 0x0 0x1000>;
irq_trigger_type = "GPIO_IRQ_LOW";
reset_pin-gpios = <&gpio GPIOZ_3 GPIO_ACTIVE_HIGH>;
detect_pin-gpios = <&gpio GPIOM_27 GPIO_ACTIVE_HIGH>;
enable_5v3v_pin-gpios = <&gpio GPIOM_28 GPIO_ACTIVE_HIGH>;
enable_pin-gpios = <&gpio GPIOZ_2 GPIO_ACTIVE_HIGH>;
interrupts = <0 37 1>;
interrupt-names = "smc0_irq";
/*
*Smc clock source, if change this,
*you must adjust clk and divider in smartcard.c
*/
smc0_clock_source = <0>;
/*0: high voltage on detect pin indicates card in.*/
smc0_det_invert = <0>;
smc0_5v3v_level = <0>;
/*Ordinarily,smartcard controller needs a enable pin.*/
smc_need_enable_pin = "yes";
reset_level = <0>;
smc0_enable_level = <0>;
pinctrl-names = "default";
pinctrl-0 = <&sd_iso7816_pins>;
/* For NSK2 Smartcard
* pinctrl-names = "default", "pins-mode0", "pins-mode1",
* "pins-mode2", "data-m0-h",
* "data-m1-h", "data-m2-h",
* "data-m0-l", "data-m1-l",
* "data-m2-l";
* pinctrl-0 = <&sd_iso7816_pins>;
* pinctrl-1 = <&iso7816_pins_mode_0>;
* pinctrl-2 = <&iso7816_pins_mode_1>;
* pinctrl-3 = <&iso7816_pins_mode_2>;
* pinctrl-4 = <&iso7816_pin_data_m_0_h>;
* pinctrl-5 = <&iso7816_pin_data_m_1_h>;
* pinctrl-6 = <&iso7816_pin_data_m_2_h>;
* pinctrl-7 = <&iso7816_pin_data_m_0_l>;
* pinctrl-8 = <&iso7816_pin_data_m_1_l>;
* pinctrl-9 = <&iso7816_pin_data_m_2_l>;
*/
clocks = <&clkc CLKID_CLK81_SMARTCARD>;
clock-names = "smartcard";
};
}; /* end of reserved-memory */
/*audio soc*/
&audiobus {
tdma:tdm@0 {
compatible = "amlogic, t7-snd-tdma";
#sound-dai-cells = <0>;
dai-tdm-lane-slot-mask-in = <1 0>;
dai-tdm-lane-slot-mask-out = <1 1>;
dai-tdm-clk-sel = <0>;
clocks = <&clkaudio CLKID_AUDIO_MCLK_A
&clkc CLKID_MPLL0>;
clock-names = "mclk", "clk_srcpll";
status = "okay";
};
tdmb:tdm@1 {
compatible = "amlogic, t7-snd-tdmb";
#sound-dai-cells = <0>;
dai-tdm-lane-slot-mask-in = <1 1 1 1>;
dai-tdm-lane-slot-mask-out = <1 1 1 1>;
dai-tdm-clk-sel = <1>;
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
&clkc CLKID_MPLL1>;
clock-names = "mclk", "clk_srcpll";
pinctrl-names = "tdm_pins";
pinctrl-0 =
<&tdm_b_pins
&tdm_d0_pins
&tdm_clk_pins>;
/*
* 0: tdmout_a;
* 1: tdmout_b;
* 2: tdmout_c;
* 3: spdifout;
* 4: spdifout_b;
*/
samesource_sel = <3>;
/* In for ACODEC_ADC */
/* tdmin-src-name = "acodec_adc"; */
tdmin-src-name = "hdmirx";
/*enable default mclk(12.288M), before extern codec start*/
start_clk_enable = <1>;
/*tdm clk tuning enable*/
clk_tuning_enable = <1>;
/* enable control gain */
ctrl_gain = <1>;
status = "okay";
/* !!!For --TV platform-- ONLY */
Channel_Mask {
/*i2s has 4 pins, 8channel, mux output*/
Spdif_samesource_Channel_Mask = "i2s_2/3";
};
};
tdmc:tdm@2 {
compatible = "amlogic, t7-snd-tdmc";
#sound-dai-cells = <0>;
dai-tdm-lane-slot-mask-in = <1 1 1 1>;
dai-tdm-lane-slot-mask-out = <1 0 0 0>;
dai-tdm-clk-sel = <2>;
clocks = <&clkaudio CLKID_AUDIO_MCLK_C
&clkc CLKID_MPLL2>;
clock-names = "mclk", "clk_srcpll";
tdmin-src-name = "hdmirx";
status = "okay";
};
pdm:pdm {
compatible = "amlogic, tm2-snd-pdm";
#sound-dai-cells = <0>;
clocks = <&clkaudio CLKID_AUDIO_GATE_PDM
&clkc CLKID_FCLK_DIV3
&clkc CLKID_MPLL3
&clkaudio CLKID_AUDIO_PDMIN0
&clkaudio CLKID_AUDIO_PDMIN1>;
clock-names = "gate",
"sysclk_srcpll",
"dclk_srcpll",
"pdm_dclk",
"pdm_sysclk";
pinctrl-names = "pdm_pins";
pinctrl-0 = <&pdmin>;
train_sample_count = <10>;
/* mode 0~4, defalut:1 */
filter_mode = <1>;
status = "okay";
};
spdifa:spdif@0 {
compatible = "amlogic, tm2-revb-snd-spdif-a";
#sound-dai-cells = <0>;
clocks = <&clkc CLKID_MPLL0
&clkc CLKID_FCLK_DIV4
&clkaudio CLKID_AUDIO_GATE_SPDIFIN
&clkaudio CLKID_AUDIO_GATE_SPDIFOUT_A
&clkaudio CLKID_AUDIO_SPDIFIN
&clkaudio CLKID_AUDIO_SPDIFOUT_A>;
clock-names = "sysclk", "fixed_clk", "gate_spdifin",
"gate_spdifout", "clk_spdifin", "clk_spdifout";
interrupts =
<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins",
"spdif_pins_mute";
pinctrl-0 = <&spdifout_d8_pins
&spdifin_z19_pins>;
pinctrl-1 = <&spdifout_d8_mute>;
/*
* 0: tdmout_a;
* 1: tdmout_b;
* 2: tdmout_c;
* 3: spdifout;
* 4: spdifout_b;
* 5: earc;
*/
samesource_sel = <5>;
/*spdif clk tuning enable*/
clk_tuning_enable = <1>;
status = "okay";
};
spdifb:spdif@1 {
compatible = "amlogic, tm2-revb-snd-spdif-b";
#sound-dai-cells = <0>;
clocks = <&clkc CLKID_MPLL2 /*CLKID_HIFI_PLL*/
&clkaudio CLKID_AUDIO_GATE_SPDIFOUT_B
&clkaudio CLKID_AUDIO_SPDIFOUT_B>;
clock-names = "sysclk",
"gate_spdifout", "clk_spdifout";
status = "okay";
};
extn:extn {
compatible = "amlogic, t7-snd-extn";
#sound-dai-cells = <0>;
interrupts =
<GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_frhdmirx";
status = "okay";
};
aed:effect {
compatible = "amlogic, snd-effect-v4";
#sound-dai-cells = <0>;
clocks = <&clkaudio CLKID_AUDIO_GATE_EQDRC
&clkc CLKID_FCLK_DIV5
&clkaudio CLKID_AUDIO_EQDRC>;
clock-names = "gate", "srcpll", "eqdrc";
/*
* 0:tdmout_a
* 1:tdmout_b
* 2:tdmout_c
* 3:spdifout
* 4:spdifout_b
*/
eqdrc_module = <1>;
/* max 0xf, each bit for one lane, usually one lane */
lane_mask = <0x1>;
/* max 0xff, each bit for one channel */
channel_mask = <0xff>;
status = "okay";
};
asrca: resample@0 {
compatible = "amlogic, t5-resample-a";
clocks = <&clkc CLKID_MPLL1
&clkaudio CLKID_AUDIO_MCLK_B
&clkaudio CLKID_AUDIO_RESAMPLE_A>;
clock-names = "resample_pll", "resample_src", "resample_clk";
/*same with toddr_src
* TDMIN_A, 0
* TDMIN_B, 1
* TDMIN_C, 2
* SPDIFIN, 3
* PDMIN, 4
* FRATV, 5
* TDMIN_LB, 6
* LOOPBACK_A, 7
* FRHDMIRX, 8
* LOOPBACK_B, 9
* SPDIFIN_LB, 10
* EARC_RX, 11
*/
resample_module = <8>;
status = "okay";
};
asrcb: resample@1 {
compatible = "amlogic, t5-resample-b";
clocks = <&clkc CLKID_MPLL3
&clkaudio CLKID_AUDIO_MCLK_F
&clkaudio CLKID_AUDIO_RESAMPLE_B>;
clock-names = "resample_pll", "resample_src", "resample_clk";
/*this resample is only used for loopback_A.*/
status = "okay";
};
vad:vad {
compatible = "amlogic, snd-vad";
#sound-dai-cells = <0>;
clocks = <&clkaudio CLKID_AUDIO_GATE_TOVAD
&clkc CLKID_FCLK_DIV5
&clkaudio CLKID_AUDIO_VAD>;
clock-names = "gate", "pll", "clk";
interrupts = <GIC_SPI 155 IRQ_TYPE_EDGE_RISING
GIC_SPI 47 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_wakeup", "irq_frame_sync";
/*
* Data src sel:
* 0: tdmin_a;
* 1: tdmin_b;
* 2: tdmin_c;
* 3: spdifin;
* 4: pdmin;
* 5: loopback_b;
* 6: tdmin_lb;
* 7: loopback_a;
*/
src = <4>;
/*
* deal with hot word in user space or kernel space
* 0: in user space
* 1: in kernel space
*/
level = <1>;
mic-src = <&pdm>;
wakeup_sample_rate = <16000>;
status = "okay";
};
loopbacka:loopback@0 {
compatible = "amlogic, t5-loopbacka";
#sound-dai-cells = <0>;
clocks = <&clkaudio CLKID_AUDIO_GATE_PDM
&clkc CLKID_FCLK_DIV3
&clkc CLKID_MPLL3
&clkaudio CLKID_AUDIO_PDMIN0
&clkaudio CLKID_AUDIO_PDMIN1
&clkc CLKID_MPLL0
&clkaudio CLKID_AUDIO_MCLK_A>;
clock-names = "pdm_gate",
"pdm_sysclk_srcpll",
"pdm_dclk_srcpll",
"pdm_dclk",
"pdm_sysclk",
"tdminlb_mpll",
"tdminlb_mclk";
/* datain src
* 0: tdmin_a;
* 1: tdmin_b;
* 2: tdmin_c;
* 3: spdifin;
* 4: pdmin;
*/
datain_src = <4>;
datain_chnum = <4>;
datain_chmask = <0xf>;
/* config which data pin for loopback */
datain-lane-mask-in = <1 1 0 0>;
/* calc mclk for datalb */
mclk-fs = <256>;
/* tdmin_lb src
* 0: tdmoutA
* 1: tdmoutB
* 2: tdmoutC
* 3: PAD_TDMINA_DIN*, refer to core pinmux
* 4: PAD_TDMINB_DIN*, refer to core pinmux
* 5: PAD_TDMINC_DIN*, refer to core pinmux
* 6: PAD_TDMINA_D*, oe, refer to core pinmux
* 7: PAD_TDMINB_D*, oe, refer to core pinmux
*/
/* if tdmin_lb >= 3, use external loopback */
datalb_src = <1>;
datalb_chnum = <2>;
datalb_chmask = <0x3>;
/* config which data pin as loopback */
datalb-lane-mask-in = <1 0 0 0>;
/* define loopack with pdm mic. */
mic-src = <&pdm>;
status = "okay";
};
loopbackb:loopback@1 {
compatible = "amlogic, t5-loopbackb";
#sound-dai-cells = <0>;
clocks = <&clkaudio CLKID_AUDIO_GATE_PDM
&clkc CLKID_FCLK_DIV3
&clkc CLKID_MPLL3
&clkaudio CLKID_AUDIO_PDMIN0
&clkaudio CLKID_AUDIO_PDMIN1
&clkc CLKID_MPLL0
&clkaudio CLKID_AUDIO_MCLK_A>;
clock-names = "pdm_gate",
"pdm_sysclk_srcpll",
"pdm_dclk_srcpll",
"pdm_dclk",
"pdm_sysclk",
"tdminlb_mpll",
"tdminlb_mclk";
/* calc mclk for datain_lb */
mclk-fs = <256>;
/* datain src
* 0: tdmin_a;
* 1: tdmin_b;
* 2: tdmin_c;
* 3: spdifin;
* 4: pdmin;
*/
datain_src = <4>;
datain_chnum = <4>;
datain_chmask = <0xf>;
/* config which data pin for loopback */
datain-lane-mask-in = <1 0 1 0>;
/* tdmin_lb src
* 0: tdmoutA
* 1: tdmoutB
* 2: tdmoutC
* 3: PAD_TDMINA_DIN*, refer to core pinmux
* 4: PAD_TDMINB_DIN*, refer to core pinmux
* 5: PAD_TDMINC_DIN*, refer to core pinmux
* 6: PAD_TDMINA_D*, oe, refer to core pinmux
* 7: PAD_TDMINB_D*, oe, refer to core pinmux
*/
/* if tdmin_lb >= 3, use external loopback */
datalb_src = <1>;
datalb_chnum = <2>;
datalb_chmask = <0x3>;
/* config which data pin as loopback */
datalb-lane-mask-in = <1 0 0 0>;
status = "disabled";
};
}; /* end of audiobus */
&i2c0 {
status = "okay";
clock-frequency = <300000>;
pinctrl-names="default";
pinctrl-0=<&i2c0_z_pins>;
};
&i2c2 {
status = "okay";
clock-frequency = <100000>;
pinctrl-names="default";
pinctrl-0=<&i2c2_h_pins1>;
lcd_extern_i2c0: lcd_extern_i2c@29 {
compatible = "lcd_ext, i2c";
dev_name = "i2c_HV650LS";
reg = <0x29>;
status = "okay";
};
lcd_extern_i2c1: lcd_extern_i2c@33 {
compatible = "lcd_ext, i2c";
dev_name = "i2c_CS602";
reg = <0x33>;
status = "okay";
};
};
&pwm_cd {
status = "okay";
};
&pwm_ef {
pinctrl-0 = <&pwm_f_pins2>;
pinctrl-names = "default";
status = "okay";
};
/* SD card */
&sd_emmc_b {
status = "okay";
pinctrl-0 = <&sd_all_pins>;
pinctrl-1 = <&sd_1bit_pins>;
pinctrl-2 = <&sd_clk_gate_pins>;
pinctrl-names = "sd_default",
"sd_1bit_pins",
"clk-gate";
bus-width = <4>;
cap-sd-highspeed;
// sd-uhs-sdr12;
// sd-uhs-sdr25;
// sd-uhs-sdr50;
// sd_uhs-sdr104;
max-frequency = <200000000>;
disable-wp;
non-removable;
// amlogic,dram-access-quirk;
cd-gpios = <&gpio GPIOC_10 GPIO_ACTIVE_HIGH>;
// dat1-gpios = <&gpio GPIOC_1 GPIO_ACTIVE_HIGH>;
//vmmc-supply = <&vddao_3v3>;
//vqmmc-supply = <&emmc_1v8>;
};
&sd_emmc_c {
status = "okay";
pinctrl-names = "default", "clk-gate";
pinctrl-0 = <&emmc_clk_cmd_pins>;
pinctrl-1 = <&emmc_conf_pull_up &emmc_conf_pull_done>;
pinctrl-2 = <&emmc_pins_sleep>;
bus-width = <8>;
cap-mmc-highspeed;
//mmc-ddr-1_8v;
mmc-hs200-1_8v;
mmc-hs400-1_8v;
max-frequency = <200000000>;
non-removable;
disable-wp;
// mmc-pwrseq = <&emmc_pwrseq>;
// vmmc-supply = <&vddao_3v3>;
// vqmmc-supply = <&vddao_1v8>;
};
&mtd_nand {
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
bl_mode = <1>;
fip_copies = <4>;
fip_size = <0x200000>;
ship_bad_block = <1>;
disa_irq_flag = <1>;
nand@bootloader {
reg = <0>;
#address-cells = <1>;
#size-cells = <1>;
nand-ecc-maximize;
partition@0 {
label = "bootloader";
reg = <0x0 0x00000000>;
};
};
nand@normal {
reg = <0>;
#address-cells = <1>;
#size-cells = <1>;
nand-ecc-maximize;
partition@0 {
label = "tpl";
reg = <0x0 0x00000000>;
};
partition@1 {
label = "logo";
reg = <0x0 0x00200000>;
};
partition@2 {
label = "recovery";
reg = <0x0 0x1000000>;
};
partition@3 {
label = "boot";
reg = <0x0 0x0F00000>;
};
partition@4 {
label = "system";
reg = <0x0 0x11800000>;
};
partition@5 {
label = "data";
reg = <0x0 0xffffffff>;
};
};
};
&i2c1 {
pinctrl-names = "default";
pinctrl-0 = <&i2c1_ao_pins1>;
status = "okay";
};
&amlvecm {
status = "okay";
gamma_en = <1>;/*1:enabel ;0:disable*/
wb_en = <1>;/*1:enabel ;0:disable*/
cm_en = <1>;/*1:enabel ;0:disable*/
wb_sel = <0>;/*1:mtx ;0:gainoff*/
vlock_en = <1>;/*1:enable;0:disable*/
vlock_mode = <0x8>;
/*vlock work mode:
*bit0:auto ENC
*bit1:auto PLL
*bit2:manual PLL
*bit3:manual ENC
*bit4:manual soft ENC
*bit5:manual MIX PLL ENC
*/
vlock_pll_m_limit = <1>;
vlock_line_limit = <2>;
};
/*if you want to use vdin just modify status to "ok"*/
&vdin0 {
/*memory-region = <&vdin0_cma_reserved>;*/
status = "okay";
/*MByte, if 10bit disable: 64M(YUV422),
*if 10bit enable: 64*1.5 = 96M(YUV422)
*if support 4K2K-YUV444-10bit-WR:3840*2160*4*4 ~= 128M
*if support 4K2K-YUV422-10bit-wr:3840*2160*3*4 ~= 96M
*if support 4K2K-YUV422-8BIT-WR:3840*2160*2*4 ~= 64M
*if support 1080p-YUV422-8BIT-WR:1920*1080*2*4 ~= 16M
* onebuffer:
* worst case:(4096*2160*3 + 2M(afbce issue)) = 27.5M
* dw:960x540x3 = 1.5M
* total size:(27.5+1.5)x buffernumber
*/
cma_size = <300>;
frame_buff_num = <11>;
};
&vdin1 {
memory-region = <&vdin1_cma_reserved>;
status = "okay";
};
&aml_wifi{
status = "okay";
interrupt-gpios = <&gpio GPIOC_12 GPIO_ACTIVE_HIGH>;
power_on-gpios = <&gpio GPIOC_11 GPIO_ACTIVE_HIGH>;
};
&aml_bt {
status = "okay";
reset-gpios = <&gpio GPIOC_13 GPIO_ACTIVE_HIGH>;
//hostwake-gpios = <&gpio GPIOC_14 GPIO_ACTIVE_HIGH>;
};
&fb {
status = "okay";
display_size_default = <1920 1080 1920 2160 32>;
mem_size = <0x00800000 0x1980000 0x100000 0x100000>;
logo_addr = "0x3f800000";
/* display_device_cnt = <2>; */ /* for dual screen upport */
mem_alloc = <0>;
pxp_mode = <0>; /** 0:normal mode 1:pxp mode */
};
&crg {
status = "okay";
};
&usb2_phy_v2 {
status = "okay";
portnum = <3>;
};
&usb3_phy_v2 {
status = "okay";
portnum = <0>;
portconfig-30 = <0>;
portconfig-31 = <0>;
otg = <0>;
};
&dwc2_a {
status = "okay";
/** 0: normal, 1: otg+dwc3 host only, 2: otg+dwc3 device only*/
controller-type = <1>;
};
&ethmac {
status = "okay";
phy-handle = <&internal_ephy>;
phy-mode = "rmii";
};
&pinctrl_periphs {
pdmin: pdmin {
mux { /* GPIOH_19, GPIOH_18 */
groups = "pdm_dclk_h19",
"pdm_din0_h18",
"pdm_din1_h14";
function = "pdm";
};
};
tdm_b_pins: tdm_a_pin {
mux { /* GPIOH_16, GPIOH_15, GPIOH_17 */
groups = "tdm_sclk1_h",
"tdm_fs1_h",
"tdm_d0_h";
function = "tdm";
};
};
/*backlight*/
bl_pwm_vs_on_pins:bl_pwm_vs_on_pin {
mux {
groups = "pwm_vs_h12";
function = "pwm_vs";
};
};
bl_pwm_off_pins:bl_pwm_off_pin {
mux {
groups = "GPIOH_12";
function = "gpio_periphs";
output-low;
};
};
bl_pwm_combo_0_vs_on_pins:bl_pwm_combo_0_vs_on_pin {
mux {
groups = "pwm_vs_h12";
function = "pwm_vs";
};
};
bl_pwm_combo_1_vs_on_pins:bl_pwm_combo_1_vs_on_pin {
mux {
groups = "pwm_vs_h13";
function = "pwm_vs";
};
};
bl_pwm_combo_off_pins:bl_pwm_combo_off_pin {
mux {
groups = "GPIOH_12","GPIOH_13";
function = "gpio_periphs";
output-low;
};
};
};
&saradc {
status = "okay";
};
&pinctrl_audio {
tdm_d0_pins: tdm_d0_pin {
mux {
groups = "tdm_d0";
function = "tdmoutb_lane0";
};
};
tdm_clk_pins: tdm_clk_pin {
mux {
groups = "tdm_sclk0", "tdm_lrclk0";
function = "tdm_clk_outb";
};
};
};
&i2c1 {
status = "okay";
tas5805: tas5805@2e {
compatible = "ti, tas5805";
#sound-dai-cells = <0>;
codec_name = "tas5805";
reset_pin = <&gpio_ao GPIOD_9 GPIO_ACTIVE_HIGH>;
reg = <0x2e>;
status = "okay";
};
};
&uart_A {
status = "disabled";
uart-has-rtscts;
};
&earc {
status = "okay";
};