ODROID-C5: very first minimal device tree
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
index d846d24..e50cd82 100644
--- a/arch/arm64/boot/dts/amlogic/Makefile
+++ b/arch/arm64/boot/dts/amlogic/Makefile
@@ -136,6 +136,7 @@
dtb-y += s7d_s905x5m_bm202.dtb
dtb-y += s7d_s905x5m_bm202_linux.dtb
dtb-y += s7d_s905x5m_bm209.dtb
+dtb-y += s7d_s905x5m_odroidc5.dtb
dtb-y += s6_pxp.dtb
dtb-y += s6_s905d5_bq201.dtb
dtb-y += s6_s905d5_bq201_16g.dtb
diff --git a/arch/arm64/boot/dts/amlogic/s7d_s905x5m_odroidc5.dts b/arch/arm64/boot/dts/amlogic/s7d_s905x5m_odroidc5.dts
new file mode 100644
index 0000000..92cf332
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/s7d_s905x5m_odroidc5.dts
@@ -0,0 +1,1215 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2019 Amlogic, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include "meson-s7d.dtsi"
+#include "mesons7d_drm.dtsi"
+#include "mesons7d_audio.dtsi"
+
+/ {
+ model = "Hardkernel ODROID-C5";
+ compatible = "s7d_s905x5m_bm201";
+
+ amlogic-dt-id = "s7d_s905x5m_bm201";
+
+ interrupt-parent = <&gic>;
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ aliases {
+ serial0 = &uart_B;
+ serial1 = &uart_A;
+ serial2 = &uart_C;
+ serial3 = &uart_D;
+ serial4 = &uart_E;
+ i2c0 = &i2c0;
+ i2c1 = &i2c1;
+ i2c2 = &i2c2;
+ i2c3 = &i2c3;
+ i2c4 = &i2c4;
+ spi0 = &spifc;
+ spi1 = &spicc0;
+ tsensor0 = &p_tsensor;
+ };
+
+ memory@00000000 {
+ device_type = "memory";
+ linux,usable-memory = <0x0 0x0 0x0 0x80000000>;
+ };
+
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ ramdump_bl33z@00000000 {
+ reg = <0x0 0x0 0x0 0x1800000>; /* 0 ~ 24M */
+ status = "disabled";
+ };
+
+ /* global autoconfigured region for contiguous allocations */
+ ramoops@0x07400000 {
+ compatible = "ramoops";
+ reg = <0x0 0x07400000 0x0 0x00100000>;
+ record-size = <0x20000>;
+ console-size = <0x40000>;
+ ftrace-size = <0x80000>;
+ pmsg-size = <0x10000>;
+ bconsole-size = <0x10000>;
+ };
+
+ debug_reserved:linux,iotrace {
+ compatible = "amlogic, iotrace";
+ reg = <0x0 0x04f00000 0x0 0x00100000>;
+ io-size = <0x1b000>;
+ sched-size = <0x2000>;
+ irq-size = <0x1000>;
+ smc-size = <0x1000>;
+ misc-size = <0x1000>;
+ };
+
+ secmon_reserved:linux,secmon {
+ compatible = "shared-dma-pool";
+ /*reusable;*/
+ no-map;
+ alignment = <0x0 0x100000>;
+ reg = <0x0 0x05000000 0x0 0x2400000>;
+ };
+
+ logo_reserved:linux,meson-fb {
+ compatible = "amlogic, meson-fb";
+ alignment = <0x0 0x400000>;
+ reg = <0x0 0x1f800000 0x0 0x800000>;
+ };
+
+ ion_cma_reserved:linux,ion-dev {
+ compatible = "shared-dma-pool";
+ reusable;
+ size = <0x0 0x0>;
+ alignment = <0x0 0x400000>;
+ };
+ ion_fb_reserved:linux,ion-fb {
+ compatible = "shared-dma-pool";
+ reusable;
+ size = <0x0 0x0>;
+ alignment = <0x0 0x400000>;
+ };
+ dmaheap_cma_reserved:heap-gfx {
+ compatible = "shared-dma-pool";
+ reusable;
+ /* 1080p STB androidU size 88M */
+ size = <0x0 0x5800000>;
+ alignment = <0x0 0x400000>;
+ };
+ dmaheap_fb_reserved:heap-fb {
+ compatible = "shared-dma-pool";
+ reusable;
+ size = <0x0 0x3800000>;
+ alignment = <0x0 0x400000>;
+ };
+ dmaheap_secure_reserved:heap-secure {
+ compatible = "amlogic, heap-secure-mem";
+ no-map;
+ /* advice heap-secure size 208M */
+ size = <0x0 0x0>;
+ alignment = <0x0 0x400000>;
+ };
+ mali_protected:mali_protected@c0000000 {
+ compatible = "mali-reserved";
+ no-map;
+ /* 16M with high version than valhall-r41p0,
+ * 64M with low version than valhall-r41p0
+ */
+ size = <0x0 0x0>;
+ alignment = <0x0 0x400000>;
+ //reg = <0x0 0x20000000 0x0 0x1000000>;
+ };
+ /*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>;
+ };
+
+ /* POST PROCESS MANAGER */
+ ppmgr_reserved:linux,ppmgr {
+ compatible = "shared-dma-pool";
+ size = <0x0 0x0>;
+ };
+
+ codec_mm_cma:linux,codec_mm_cma {
+ compatible = "shared-dma-pool";
+ reusable;
+ /* The CTS test is the largest scenario, requiring 364MB */
+ size = <0x0 0x16C00000>;
+ alignment = <0x0 0x400000>;
+ linux,contiguous-region;
+ };
+
+ /* codec shared reserved */
+ codec_mm_reserved:linux,codec_mm_reserved {
+ compatible = "amlogic, codec-mm-reserved";
+ size = <0x0 0x0>;
+ alignment = <0x0 0x100000>;
+ //no-map;
+ };
+
+ secure_vdec_reserved:linux,secure_vdec_reserved {
+ compatible = "amlogic, secure-vdec-reserved";
+ no-map;
+ size = <0x0 0x1000000>;
+ alignment = <0x0 0x100000>;
+ };
+ /* 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 1280x720 nv21 8bit and 4 buffers
+ * 1280x720x1.5x4 = 8 M
+ */
+ size = <0x0 0x00800000>;
+ alignment = <0x0 0x400000>;
+ };
+ /* global autoconfigured region for contiguous allocations */
+ linux,cma {
+ compatible = "shared-dma-pool";
+ reusable;
+ size = <0x0 0x800000>;
+ alignment = <0x0 0x400000>;
+ linux,cma-default;
+ alloc-ranges = <0x0 0x0 0x0 0x30000000>;
+ };
+ };
+ codec_mm {
+ compatible = "amlogic, codec, mm";
+ memory-region = <&codec_mm_cma &codec_mm_reserved &secure_vdec_reserved>;
+ dev_name = "codec_mm";
+ status = "okay";
+ };
+ amdolby_vision {
+ compatible = "amlogic, dolby_vision_s7d";
+ dev_name = "aml_amdolby_vision_driver";
+ status = "okay";
+ tv_mode = <0>;/*1:enable ;0:disable*/
+ };
+
+ gpio_leds {
+ compatible = "gpio-leds";
+ status = "okay";
+ pwr_led {
+ label = "pwr_led";
+ default-state = "on";
+ };
+
+ bt_led {
+ label = "bt_led";
+ gpios = <&gpio GPIODV_6 GPIO_ACTIVE_HIGH>;
+ default-state = "on";
+ };
+
+ };
+
+ ionvideo {
+ compatible = "amlogic, ionvideo";
+ dev_name = "ionvideo";
+ status = "okay";
+ };
+
+ amlvideo2_0 {
+ compatible = "amlogic, amlvideo2";
+ dev_name = "amlvideo2";
+ status = "okay";
+ amlvideo2_id = <0>;
+ cma_mode = <1>;
+ };
+
+ amlvideo2_1 {
+ compatible = "amlogic, amlvideo2";
+ dev_name = "amlvideo2";
+ status = "okay";
+ amlvideo2_id = <1>;
+ cma_mode = <1>;
+ };
+
+ ppmgr {
+ compatible = "amlogic, ppmgr";
+ memory-region = <&ppmgr_reserved>;
+ dev_name = "ppmgr";
+ status = "disabled";
+ };
+
+ amlvecm {
+ compatible = "amlogic, vecm-s7d";
+ dev_name = "aml_vecm";
+ status = "okay";
+ gamma_en = <0>;/*1:enable ;0:disable*/
+ wb_en = <0>;/*1:enable ;0:disable*/
+ /*0: 709/601 1: bt2020*/
+ tx_op_color_primary = <0>;
+ };
+
+ thermal-zones {
+ soc_thermal: soc_thermal {
+ polling-delay = <1000>;
+ polling-delay-passive = <100>;
+ sustainable-power = <1160>;
+ thermal-sensors = <&p_tsensor 0>;
+ trips {
+ pswitch_on: trip-point@0 {
+ temperature = <85000>;
+ hysteresis = <5000>;
+ type = "passive";
+ };
+ pcontrol: trip-point@1 {
+ temperature = <95000>;
+ hysteresis = <5000>;
+ type = "passive";
+ };
+ pcritical: trip-point@2 {
+ temperature = <105000>;
+ hysteresis = <1000>;
+ type = "critical";
+ };
+ };
+
+ cooling-maps {
+ cpufreq_cooling_map {
+ trip = <&pcontrol>;
+ cooling-device = <&CPU0 0 8>;
+ contribution = <1024>;
+ };
+ gpufreq_cooling_map {
+ trip = <&pcontrol>;
+ cooling-device = <&gpu 0 3>;
+ contribution = <1024>;
+ };
+ };
+ };
+
+ dmc_thermal: dmc_thermal {
+ polling-delay = <500>;
+ polling-delay-passive = <500>;
+ thermal-sensors = <&dmc_tsensor 2>;
+ trips {
+ dmc_hot: trip-point@0 {
+ temperature = <15000>;
+ hysteresis = <5000>;
+ type = "hot";
+ };
+ };
+
+ cooling-maps {
+ dmc_cooling_map {
+ trip = <&dmc_hot>;
+ cooling-device = <&dmc_tsensor 0 0>;
+ contribution = <1024>;
+ };
+ };
+ };
+ };/*thermal zone end*/
+
+ multi-di {
+ compatible = "amlogic, dim-s7d";
+ status = "okay";
+ /* 0:use reserved; 1:use cma; 2:use cma as reserved */
+ flag_cma = <4>; //<1>;
+ //memory-region = <&di_reserved>;
+ //memory-region = <&di_cma_reserved>;
+ interrupts = <0 203 1
+ 0 202 1>;
+ interrupt-names = "pre_irq", "post_irq";
+ clocks = <&clkc CLKID_VPU_CLKB>,
+ <&clkc CLKID_VPU>;
+ clock-names = "vpu_clkb",
+ "vpu_mux";
+ clock-range = <334 667>;
+ /* buffer-size = <3621952>;(yuv422 8bit) */
+ buffer-size = <4074560>;/*yuv422 fullpack*/
+ /* reserve-iomap = "true"; */
+ /* if enable nr10bit, set nr10bit-support to 1 */
+ post-wr-support = <1>;
+ nr10bit-support = <1>;
+ nrds-enable = <1>;
+ post_nub = <10>;
+ };
+
+ aml_dtv_demod {
+ compatible = "amlogic, ddemod-s4";
+ dev_name = "aml_dtv_demod";
+ status = "disabled";
+ /* diseqc_name = "sgm_41286"; */
+ pinctrl-names="if_agc_pins", "if_agc2_pins";
+ pinctrl-0=<&dtvdemod_if_agc_pins>;
+ pinctrl-1=<&dtvdemod_if_agc2_pins>;
+ /* pinctrl-2=<&diseqc_out>; */
+ /* 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_S4_DEMOD>;
+ /* clocks = <&clkc CLKID_DAC_CLK>; */
+ /* clock-names = "vdac_clk_gate"; */
+
+ reg = <0x0 0xfe350000 0x0 0x10000 /* dtv demod base */
+ 0x0 0xfe000000 0x0 0x2000 /* div base */
+ 0x0 0xff800000 0x0 0x1000 /* io_aobus_base */
+ 0x0 0xffd01000 0x0 0x1000 /* reset */
+ >;
+
+ spectrum = <1>;
+ cma_mem_size = <0>; //MB
+ };
+
+ provisionkey {
+ compatible = "amlogic, provisionkey";
+ status = "disabled";
+ key-permit-default = "write";
+ //new key not need add dts if started with KEY_PROVISION_
+ KEY_PROVISION_XXX { };
+ //test_my_added_keyname { };
+ };//End provisionkey
+
+ unifykey{
+ compatible = "amlogic,unifykey";
+ status = "okay";
+ unifykey-num = <19>;
+ 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>;
+
+ 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";
+ };
+ };//End unifykey
+
+ efusekey:efusekey{
+ keynum = <4>;
+ key0 = <&key_0>;
+ key1 = <&key_1>;
+ key2 = <&key_2>;
+ key3 = <&key_3>;
+ key_0:key_0{
+ keyname = "mac";
+ offset = <0>;
+ size = <6>;
+ };
+ key_1:key_1{
+ keyname = "mac_bt";
+ offset = <6>;
+ size = <6>;
+ };
+ key_2:key_2{
+ keyname = "mac_wifi";
+ offset = <12>;
+ size = <6>;
+ };
+ key_3:key_3{
+ keyname = "usid";
+ offset = <18>;
+ size = <16>;
+ };
+ };//End efusekey
+ /* Audio Related start */
+ auge_sound {
+ compatible = "amlogic, auge-sound-card";
+ aml-audio-card,name = "AML-AUGESOUND";
+
+ aml-audio-card,dai-link@0 {
+ format = "dsp_b";
+ mclk-fs = <512>;
+ //continuous-clock;
+ //bitclock-inversion;
+ //frame-inversion;
+ /* master mode */
+ bitclock-master = <&tdma>;
+ frame-master = <&tdma>;
+ /* slave mode */
+ /*
+ * bitclock-master = <&tdmacodec>;
+ * frame-master = <&tdmacodec>;
+ */
+ suffix-name = "alsaPORT-pcm";
+ tdmacpu: cpu {
+ sound-dai = <&tdma>;
+ dai-tdm-slot-tx-mask =
+ <1>;
+ dai-tdm-slot-rx-mask =
+ <1>;
+ dai-tdm-slot-num = <2>;
+ dai-tdm-slot-width = <16>;
+ system-clock-frequency = <256000>;
+ };
+ tdmacodec: codec {
+ sound-dai = <&dummy_codec>;
+ };
+ };
+
+ aml-audio-card,dai-link@1 {
+ format = "i2s";//"dsp_a";
+ 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
+ * what's the dai link used for
+ */
+ suffix-name = "alsaPORT-i2s2hdmi";
+ 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-tx-mask =
+ * <1 1 1 1 1 1 1 1>;
+ * dai-tdm-slot-rx-mask =
+ * <1 1 1 1 1 1 1 1>;
+ * dai-tdm-slot-num = <8>;
+ */
+ dai-tdm-slot-width = <32>;
+ system-clock-frequency = <12288000>;
+ };
+ tdmbcodec: codec {
+ sound-dai = <&dummy_codec>;
+ };
+ };
+
+ 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-i2s";
+ 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 {
+ prefix-names = "AMP";
+ sound-dai = <&sy602x_54 &amlogic_codec>;
+ };
+ };
+
+ aml-audio-card,dai-link@3 {
+ mclk-fs = <64>;
+ /* suffix-name, sync with android audio hal
+ * what's the dai link used for
+ */
+ suffix-name = "alsaPORT-pdm-builtinmic";
+ cpu {
+ sound-dai = <&pdma>;
+ };
+ codec {
+ sound-dai = <&dummy_codec>;
+ };
+ };
+
+#if 0
+ 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>;
+ };
+ };
+ /* spdif_b to hdmi, only playback */
+ aml-audio-card,dai-link@5 {
+ mclk-fs = <128>;
+ continuous-clock;
+ /* suffix-name, sync with android audio hal
+ * what's the dai link used for
+ */
+ suffix-name = "alsaPORT-spdifb";
+ cpu {
+ sound-dai = <&spdifb>;
+ system-clock-frequency = <6144000>;
+ };
+ codec {
+ sound-dai = <&dummy_codec>;
+ };
+ };
+#endif
+ aml-audio-card,dai-link@6 {
+ 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@7 {
+ * mclk-fs = <256>;
+ * suffix-name = "alsaPORT-earc";
+ * cpu {
+ * sound-dai = <&earc>;
+ * system-clock-frequency = <12288000>;
+ * };
+ * codec {
+ * sound-dai = <&dummy_codec>;
+ * };
+ *};
+ */
+ };
+
+ picdec {
+ compatible = "amlogic, picdec";
+ status = "disabled";
+ };
+
+ audiolocker: locker {
+ compatible = "amlogic, audiolocker";
+ clock-names = "lock_out", "lock_in", "out_src",
+ "in_src", "out_calc", "in_ref";
+ interrupts = <GIC_SPI 1 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "irq";
+ frequency = <49000000>; /* pll */
+ dividor = <49>; /* locker's parent */
+ status = "disabled";
+ };/* Audio Related end */
+
+ adc_keypad {
+ compatible = "amlogic, adc_keypad";
+ status = "okay";
+ key_name = "vol-", "vol+", "power";
+ key_num = <3>;
+ io-channels = <&saradc 0>;
+ io-channel-names = "key-chan-0";
+ key_chan = <SARADC_CH0 SARADC_CH0 SARADC_CH0>;
+ key_code = <KEY_VOLUMEDOWN KEY_VOLUMEUP KEY_POWER>;
+ key_val = <1109 1601 35>; /* Unit: millivolt */
+ key_tolerance = <70 70 70>; /* Unit: millivolt */
+ };
+
+ gpio_keypad {
+ compatible = "amlogic, gpio_keypad";
+ status = "okay";
+ scan_period = <20>;
+ key_num = <2>;
+ key_name = "bluetooth", "mute";
+ key_code = <600 SW_MUTE_DEVICE>;
+ key_type = <EV_KEY EV_SW>;
+ key-gpios = <&gpio GPIOD_2 GPIO_ACTIVE_HIGH
+ &gpio GPIOD_3 GPIO_ACTIVE_HIGH>;
+ /* 0:polling mode, 1:irq mode */
+ detect_mode = <0>;
+ };
+
+ vin_12v_reg: fixed@vin_12v_reg {
+ compatible = "regulator-fixed";
+ regulator-name = "12V";
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ vddao_5v_reg: fixed@vddao_5v_reg {
+ vin-supply = <&vin_12v_reg>;
+ compatible = "regulator-fixed";
+ regulator-name = "VDDAO_5V";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ vcc5v_reg: fixed@vcc5v_reg {
+ vin-supply = <&vddao_5v_reg>;
+ compatible = "regulator-fixed";
+ regulator-name = "VCC5V";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ pinctrl-names = "default";
+ gpio = <&gpio GPIOC_7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ startup-delay-us = <7000>;
+ enable-active-high;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ vddq_reg: fixed@vddq_reg {
+ compatible = "regulator-fixed";
+ vin-supply = <&vin_12v_reg>;
+ regulator-name = "VDDQ1.2V";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ vddao_3v3p_reg: fixed@vddao_3v3p_reg {
+ vin-supply = <&vin_12v_reg>;
+ compatible = "regulator-fixed";
+ regulator-name = "VDDAO_3V3_P";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ vddao_3v3_reg: fixed@vddao_3v3_reg {
+ vin-supply = <&vddao_3v3p_reg>;
+ compatible = "regulator-fixed";
+ regulator-name = "VDDAO_3V3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ vdd3v3_soc_reg: fixed@vdd3v3_soc_reg {
+ vin-supply = <&vddao_3v3_reg>;
+ compatible = "regulator-fixed";
+ regulator-name = "VDD3V3_SOC";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ vdd1v8_dcdc_reg: fixed@vdd1v8_dcdc_reg {
+ compatible = "regulator-fixed";
+ vin-supply = <&vin_12v_reg>;
+ regulator-name = "VDD_1V8_DCDC";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ vddio_x_reg: fixed@vddio_x_reg {
+ compatible = "regulator-fixed";
+ vin-supply = <&vdd1v8_dcdc_reg>;
+ regulator-name = "VDDIO_X";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ vdd_ao1v8_ldo_reg: fixed@vdd_ao1v8_ldo_reg {
+ compatible = "regulator-fixed";
+ vin-supply = <&vddao_3v3p_reg>;
+ regulator-name = "VDD_AO18_LDO";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ ddr4_2v5_reg: fixed@ddr4_2v5 {
+ vin-supply = <&vddao_3v3_reg>;
+ compatible = "regulator-fixed";
+ regulator-name = "DDR4_2.5V";
+ regulator-min-microvolt = <2500000>;
+ regulator-max-microvolt = <2500000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+};
+
+&i2c4 {
+ status = "disabled";
+ pinctrl-names="default";
+ pinctrl-0=<&i2c4_pins3>;
+ clock-frequency = <300000>;
+};
+
+&i2c3 {
+ status = "okay";
+ pinctrl-names="default";
+ pinctrl-0=<&i2c3_pins2>;
+ clock-frequency = <300000>; /* default 100k */
+
+ sy602x_54: sy602x_54@2a {
+ compatible = "silergy,sy602x";
+ #sound-dai-cells = <0>;
+ reg = <0x2a>;
+ status = "okay";
+ reset_pin = <&gpio GPIOH_7 GPIO_ACTIVE_HIGH>;
+ };
+
+ aw9523: aw9523_led@5b {
+ compatible = "amlogic,aw9523b_led";
+ reg = <0x5b>;
+ status = "okay";
+ // reset-gpio = <&gpio GPIOD_4 GPIO_ACTIVE_HIGH>;
+ platform = <10>;
+
+ led1 {
+ default_colors = <0 0 0>;
+ r_io_number = <2>;
+ g_io_number = <12>;
+ b_io_number = <7>;
+ };
+
+ led2 {
+ default_colors = <0 0 0>;
+ r_io_number = <4>;
+ g_io_number = <10>;
+ b_io_number = <9>;
+ };
+
+ led3 {
+ default_colors = <0 0 0>;
+ r_io_number = <3>;
+ g_io_number = <11>;
+ b_io_number = <8>;
+ };
+
+ led4 {
+ default_colors = <0 0 0>;
+ r_io_number = <0>;
+ g_io_number = <14>;
+ b_io_number = <5>;
+ };
+ led9 {
+ default_colors = <0 0 0>;
+ r_io_number = <1>;
+ g_io_number = <13>;
+ b_io_number = <6>;
+ };
+ };
+};
+
+&vddcpu0 {
+ status = "okay";
+};
+
+&CPU0 {
+ #cooling-cells = <2>;
+ operating-points-v2 = <&cpu_opp_table0>,
+ <&cpu_opp_table1>,
+ <&cpu_opp_table2>,
+ <&cpu_opp_table3>;
+};
+
+&periphs_pinctrl {
+ dvb_s_ts0_pins: dvb_s_ts0_pins {
+ tsin_a {
+ groups = "tsin_a_sop",
+ "tsin_a_valid",
+ "tsin_a_clk",
+ "tsin_a_d0";
+ function = "tsin";
+ };
+ };
+}; /* end of periphs_pinctrl */
+
+&audio_data {
+ status = "okay";
+};
+
+&usb_phy20 {
+ portnum = <1>;
+ status = "okay";
+};
+
+&usb_phy21 {
+ portnum = <1>;
+ status = "okay";
+ gpio-vbus-power = "GPIOH_8";
+ gpios = <&gpio GPIOH_8 GPIO_ACTIVE_HIGH>;
+};
+
+&usb_phy30 {
+ status = "okay";
+};
+
+&usb_phy31 {
+ status = "okay";
+};
+
+&crg_otg {
+ status = "okay";
+ controller-type = <1>; /* 0~3: normal, host, device, otg */
+};
+
+&crg_drd {
+ status = "okay";
+};
+
+&crg_udc {
+ status = "okay";
+};
+
+&crg {
+ status = "okay";
+};
+
+&pcie {
+ reset-gpio = <&gpio GPIOX_7 GPIO_ACTIVE_HIGH>;
+ status = "disable";
+};
+
+/* SDIO */
+&sd_emmc_a {
+ status = "okay";
+ pinctrl-0 = <&sdio_pins>;
+ pinctrl-1 = <&sdio_clk_gate_pins>;
+ pinctrl-names = "default", "clk-gate";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ bus-width = <4>;
+ cap-sd-highspeed;
+ sd-uhs-sdr50;
+ sd-uhs-sdr104;
+ max-frequency = <200000000>;
+
+ non-removable;
+ disable-wp;
+
+ //vmmc-supply = <&vddao_3v3>;
+ //vqmmc-supply = <&vddio_ao1v8>;
+
+ brcmf: wifi@1 {
+ reg = <1>;
+ compatible = "brcm,bcm4329-fmac";
+ };
+};
+
+/* SD card */
+&sd_emmc_b {
+ status = "okay";
+ pinctrl-0 = <&sdcard_pins>;
+ pinctrl-1 = <&sdcard_clk_gate_pins>;
+ pinctrl-2 = <&sd_1bit_pins>;
+ //pinctrl-3 = <&sd_to_ao_uart_clr_pins
+ // &sdcard_pins &ao_to_sd_uart_pins>;
+ //pinctrl-4 = <&sd_to_ao_uart_clr_pins
+ // &sd_1bit_pins &ao_to_sd_uart_pins>;
+ //pinctrl-5 = <&sdcard_pins &ao_uart_pins>;
+ //pinctrl-6 = <&sd_to_ao_uart_clr_pins
+ // &ao_to_sd_uart_pins>;
+ //pinctrl-7 = <&sdcard_pins &ao_uart_pins>;
+ //pinctrl-8 = <&sd_to_ao_uart_clr_pins
+ // &ao_to_sd_uart_pins>;
+ pinctrl-names = "sd_default",
+ "clk-gate",
+ "sd_1bit_pins";
+ // "sd_clk_cmd_uart_pins",
+ // "sd_1bit_uart_pins",
+ // "sd_to_ao_uart_pins",
+ // "ao_to_sd_uart_pins",
+ // "sd_to_ao_jtag_pins",
+ // "ao_to_sd_jtag_pins";
+ bus-width = <4>;
+ cap-sd-highspeed;
+// sd-uhs-sdr12;
+// sd-uhs-sdr25;
+// sd-uhs-sdr50;
+// sd-uhs-sdr104;
+ max-frequency = <200000000>;
+ disable-wp;
+
+ cd-gpios = <&gpio GPIOC_6 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-0 = <&emmc_pins>, <&emmc_ds_pins>;
+ pinctrl-1 = <&emmc_clk_gate_pins>;
+ pinctrl-names = "default", "clk-gate";
+
+ 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>;
+};
+
+&saradc {
+ status = "okay";
+};
+
+&ext_mdio {
+ external_phy: ethernet-phy@0 {
+ reg = <0>;
+ max-speed = <1000>;
+ reset-assert-us = <10000>;
+ reset-deassert-us = <80000>;
+ reset-gpios = <&gpio GPIOH_9 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
+ };
+};
+
+&internal_ephy {
+ status = "disabled";
+};
+
+ðmac {
+ status = "okay";
+ pinctrl-0 = <ð_pins>, <ð_rgmii_pins>;
+ pinctrl-names = "default";
+ phy-mode = "rgmii";
+ phy-handle = <&external_phy>;
+ amlogic,tx-delay-ns = <2>;
+ internal_phy = <2>;
+ cali_val = <0x80000>;
+ analog_version = <1>;
+};
+
+&ir {
+ status = "okay";
+ pinctrl-0 = <&remote_pins>;
+ pinctrl-names = "default";
+};
+
+&spicc0 {
+ status = "disabled";
+ pinctrl-names = "default";
+ pinctrl-0 = <&spicc0_pins_z>;
+};
+
+&fb {
+ status = "okay";
+ display_size_default = <1920 1080 1920 2160 32>;
+ mem_size = <0x00800000 0x1980000 0x100000>;
+ logo_addr = "0x1f800000";
+ mem_alloc = <0>;
+ pxp_mode = <0>; /** 0:normal mode 1:pxp mode */
+};
+
+&drm_vpu {
+ status = "okay";
+ logo_addr = "0x1f800000";
+
+};
+
+&amhdmitx {
+ status = "okay";
+};
+
+&drm_amhdmitx {
+ status = "okay";
+ hdcp = "disabled";
+};
+
+/*if you want to use vdin just modify status to "ok"*/
+&vdin0 {
+ /*compatible = "amlogic, vdin-s7d";*/
+ /*memory-region = <&vdin0_cma_reserved>;*/
+ /*status = "disabled";*/
+ /* up to 1920x1080 yuv422 8bit and 5 buffers
+ * 1920x1080x2x5 = 20 M
+ */
+ cma_size = <20>;
+ /*vdin write mem color depth support:
+ *bit0:support 8bit
+ *bit1:support 9bit
+ *bit2:support 10bit
+ *bit3:support 12bit
+ *bit4:support yuv422 10bit full pack mode (from txl new add)
+ */
+ tv_bit_mode = <0x1>;
+};
+
+&vdin1 {
+ /*compatible = "amlogic, vdin-s7d";*/
+ memory-region = <&vdin1_cma_reserved>;
+ frame_buff_num = <4>;
+ /*status = "disabled";*/
+ /*vdin write mem color depth support:
+ *bit0:support 8bit
+ *bit1:support 9bit
+ *bit2:support 10bit
+ *bit3:support 12bit
+ */
+ tv_bit_mode = <1>;
+};
+
+&pwm_e {
+ pinctrl-0 = <&pwm_e_pins1>;
+ pinctrl-names = "default";
+ status = "okay";
+};
+
+&uart_A {
+ status = "okay";
+ uart-has-rtscts;
+};
+
+&drm_subsystem {
+ fbdev_sizes = <1280 720 1280 1440 32>;
+};
+
+&spdifa {
+ status = "disabled";
+};
+
+&spdifb {
+ status = "disabled";
+};