Files
Arch-R/projects/WeTek_Play/patches/linux/30-g18dtd.patch
2015-01-15 19:13:03 +01:00

2716 lines
87 KiB
Diff

diff -Naur a/arch/arm/boot/dts/amlogic/meson6_g18.dtd b/arch/arm/boot/dts/amlogic/meson6_g18.dtd
--- a/arch/arm/boot/dts/amlogic/meson6_g18.dtd 2015-01-12 21:28:39.000000000 +0100
+++ b/arch/arm/boot/dts/amlogic/meson6_g18.dtd 2015-01-12 21:25:40.000000000 +0100
@@ -1,761 +1,751 @@
-/*
- * Amlogic-MX SKT Device Tree Source
- *
- * Copyright Amlogic 2013
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- */
-
-/dts-v1/;
-/// ***************************************************************************************\n
-//$$ PROJECT="meson6"
-//$$ REMOVE 1
-void root_func(){
-//$$ ADD /{
- compatible = "AMLOGIC,8726_MX";
- model = "AMLOGIC";
- interrupt-parent = <&gic>;
- #address-cells = <1>;
- #size-cells = <1>;
-
-/// ***************************************************************************************
-/// - CPU
-//$$ MODULE="CPU"
- cpus {
- #address-cells = <1>;
- #size-cells = <0>;
-//$$ DEVICE="cpu0"
- cpu@0 {
- device_type = "cpu";
- compatible = "arm,cortex-a9";
- reg = <0x200>;
- };
-//$$ DEVICE="cpu1"
- cpu@1 {
- device_type = "cpu";
- compatible = "arm,cortex-a9";
- reg = <0x1>;
- };
- };
+/*
+ * Amlogic-MX SKT Device Tree Source
+ *
+ * Copyright Amlogic 2013
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ */
+
+/dts-v1/;
+/// ***************************************************************************************\n
+//$$ PROJECT="meson6"
+//$$ REMOVE 1
+void root_func(){
+//$$ ADD /{
+ compatible = "AMLOGIC,8726_MX";
+ model = "AMLOGIC";
+ interrupt-parent = <&gic>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ chosen {
+ bootargs = "root=/dev/ram0 rdinit=/init boot=/dev/mmcblk0p1 disk=/dev/mmcblk0p2 BOOT_IMAGE=kernel.img console=tty0 consoleblank=0 scaling_governor=hotplug scaling_min_freq=200000 scaling_max_freq=1512000 systemd.show_status=auto";
+ };
+
+/// ***************************************************************************************
+/// - CPU
+//$$ MODULE="CPU"
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+//$$ DEVICE="cpu0"
+ cpu@0 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a9";
+ reg = <0x200>;
+ };
+//$$ DEVICE="cpu1"
+ cpu@1 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a9";
+ reg = <0x1>;
+ };
+ };
/// ***************************************************************************************
/// - Cache
//$$ MODULE="Cache"
//$$ DEVICE="cache"
cache-controller {
compatible = "arm,meson-pl310-cache";
- reg = <0xc4200000 0x1000>;
+ reg = <0xc4200000 0x1000>;
cache-unified;
cache-level = <2>;
aux-instruction_prefetch;
aux-data_prefetch;
- aux-ns_lockdown;
- aux-ns_int_ctrl;
- aux-share_override;
- aux-cache_replace_policy_round_robin;
- prefetch-prefetch_offset = <6>;
- };
-
-/// ***************************************************************************************
-/// - Memory
-//$$ MODULE="Memory"
-//$$ DEVICE="memory"
-//$$ L2 PROP_U32 = "aml_reserved_start"
-//$$ L2 PROP_U32 = "aml_reserved_end"
-//$$ L2 PROP_U32 = "linux,usable-memory"
- memory{
- device_type = "memory";
- aml_reserved_start = <0x85000000>; /**reserved memory start-for kernel */
- aml_reserved_end = <0x84000000>;/**reserved uImage and dtb memory-for uboot*/
+ aux-ns_lockdown;
+ aux-ns_int_ctrl;
+ aux-share_override;
+ aux-cache_replace_policy_round_robin;
+ prefetch-prefetch_offset = <6>;
+ };
+
+/// ***************************************************************************************
+/// - Memory
+//$$ MODULE="Memory"
+//$$ DEVICE="memory"
+//$$ L2 PROP_U32 = "aml_reserved_start"
+//$$ L2 PROP_U32 = "aml_reserved_end"
+//$$ L2 PROP_U32 = "linux,usable-memory"
+ memory{
+ device_type = "memory";
+ aml_reserved_start = <0x85000000>; /**reserved memory start-for kernel */
+ aml_reserved_end = <0x84000000>;/**reserved uImage and dtb memory-for uboot*/
phys_offset = <0x80000000>;
- linux,total-memory = <0x40000000>;/**0x40000000--1G memory 0x80000000--2G memory*/
- };
-
-/// ***************************************************************************************
-/// - GIC
-//$$ MODULE="GIC"
-//$$ DEVICE="gic"
- gic:interrupt-controller{
- compatible = "arm,cortex-a9-gic";
- reg = <0xc4301000 0x1000
- 0xc4300100 0x0100>;
- interrupt-controller;
- #interrupt-cells = <3>;
- #address-cells = <0>;
- };
-
-/// ***************************************************************************************
-/// - ION
-//$$ MODULE="ION"
-//$$ DEVICE="ion_dev"
-//$$ L2 PROP_STR = "status"
- ion_dev{
- compatible = "amlogic,ion_dev";
- dev_name = "ion_dev";
- status = "ok";
+ linux,total-memory = <0x40000000>;/**0x40000000--1G memory 0x80000000--2G memory*/
+ };
+
+/// ***************************************************************************************
+/// - GIC
+//$$ MODULE="GIC"
+//$$ DEVICE="gic"
+ gic:interrupt-controller{
+ compatible = "arm,cortex-a9-gic";
+ reg = <0xc4301000 0x1000
+ 0xc4300100 0x0100>;
+ interrupt-controller;
+ #interrupt-cells = <3>;
+ #address-cells = <0>;
+ };
+
+/// ***************************************************************************************
+/// - ION
+//$$ MODULE="ION"
+//$$ DEVICE="ion_dev"
+//$$ L2 PROP_STR = "status"
+ ion_dev{
+ compatible = "amlogic,ion_dev";
+ dev_name = "ion_dev";
+ status = "ok";
reserve-memory = <0x02000000>;
- reserve-iomap = "true";
- };
-
-/// **************************************************************************************
-/// - DISP&MM-FB
-//$$ MODULE = "DISP&MM-FB"
-//$$ DEVICE = "mesonfb"
-//$$ L2 PROP_STR = "status"
-//$$ L3 PROP_U32 2 ="reserve-memory"
-//$$ L2 PROP_U32 = "vmode"
-//$$ L2 PROP_U32 5 = "display_size_default"
- mesonfb{
- compatible = "amlogic,mesonfb";
- dev_name = "mesonfb";
- status = "okay";
- reserve-memory = <0x01000000 0x00100000>;
- reserve-iomap = "true";
- vmode = <0>; /*0:VMODE_720P 1:VMODE_LCD 2:VMODE_LVDS_1080P 3:VMODE_1080P*/
- scale_mode = <0>; /*0:default 1:new*/
- display_size_default = <1280 1080 1280 3240 32>; // osd0:16M, osd1:1m 1280*1080*4*3 = 16,588,800
- };
-//$$ DEVICE="deinterlace"
-//$$ L2 PROP_STR = "status"
-//$$ L2 PROP_U32 = "reserve-memory"
- deinterlace{
- compatible = "amlogic,deinterlace";
- dev_name = "deinterlace";
- status = "okay";
- reserve-memory = <0x01c00000>; // 27M
- reserve-iomap = "true";
- };
-
-/// ***************************************************************************************
-/// - DISP&MM-A/V stream
-//$$ MODULE = "DISP&MM-A/V stream"
-//$$ DEVICE="mesonstream"
-//$$ L2 PROP_STR = "status"
-//$$ L3 PROP_U32 4 ="reserve-memory"
- mesonstream{
- compatible = "amlogic,mesonstream";
- dev_name = "mesonstream.0";
- status = "okay";
- reserve-memory = <0x00a00000>; //10M
- reserve-iomap = "true";
- };
-
-
-/// ***************************************************************************************
-/// - DISP&MM-A/V stream
-//$$ MODULE = "DISP&MM-A/V video dec"
-//$$ DEVICE="vdec"
-//$$ L2 PROP_STR = "status"
-//$$ L3 PROP_U32 4 ="reg"
- vdec{
- compatible = "amlogic,vdec";
- dev_name = "vdec.0";
- status = "okay";
- reserve-memory = <0x02000000>; //32M
- reserve-iomap = "true";
- };
-
-/// ***************************************************************************************
-/// - DISP&MM-PostProcess
-//$$ MODULE="DISP&MM-PostProcess"
-//$$ DEVICE="ppmgr"
-//$$ L2 PROP_STR = "status"
-//$$ L3 PROP_U32 ="reserve-memory"
- ppmgr{
- compatible = "amlogic,ppmgr";
- dev_name = "ppmgr";
- status = "okay";
- reserve-memory = <0x01300000>; // 1280*732*21 = 19,676,160
- reserve-iomap = "true";
- };
-
-
-/// ***************************************************************************************
-/// - DISP&MM-Vout
-//$$ MODULE = "DISP&MM-Vout"
-//$$ DEVICE = "mesonvout"
-//$$ L2 PROP_STR = "status"
- mesonvout{
- compatible = "amlogic,mesonvout";
- dev_name = "mesonvout";
- status = "okay";
- };
-
-/// ***************************************************************************************
-/// - EARLY_INIT
-//$$ MODULE="early_init"
-//$$ DEVICE = "early_init"
-//$$ L2 PROP_STR = "status"
-//$$ L3 PROP_STR ="gpio-1"
-//$$ L2 PROP_STR = "gpio-2"
- early_init{
- compatible = "amlogic,early_init";
- dev_name = "early_init";
- status = "ok";
- gpio-1 = "GPIOAO_3";
- gpio-2 = "GPIOAO_2";
- };
-
-/// ***************************************************************************************
-/// - RTC
-//$$ MODULE="RTC"
-//$$ DEVICE="Rtc"
-//$$ L2 PROP_STR = "status"
- rtc{
- compatible = "amlogic,aml_rtc";
- status = "okay";
- };
-
-/// ***************************************************************************************
-/// - UART
-//$$ MODULE="UART"
-//$$ DEVICE="uart_ao"
-//$$ L2 PROP_STR = "status"
-//$$ L2 PROP_STR = "pinctrl-names"
-//$$ L3 PROP_CHOICE "uart_ao_pin_match" = "pinctrl-0"
- uart_ao{
- compatible = "amlogic,aml_uart";
- port_name = "uart_ao";
- status = "okay";
- dev_name = "uart_ao";
- pinctrl-names = "default";
- pinctrl-0 = <&ao_uart_pins>;
- };
-
-//$$ DEVICE="uart_0"
-//$$ L2 PROP_STR = "status"
- uart_0{
- compatible = "amlogic,aml_uart";
- port_name = "uart_a";
- status = "okay";
- dev_name = "uart_0";
- };
-
-//$$ DEVICE="uart_1"
-//$$ L2 PROP_STR = "status"
- uart_1{
- compatible = "amlogic,aml_uart";
- port_name = "uart_b";
- status = "disabled";
- dev_name = "uart_1";
- };
-
-//$$ DEVICE="uart_2"
-//$$ L2 PROP_STR = "status"
- uart_2{
- compatible = "amlogic,aml_uart";
- port_name = "uart_c";
- status = "disabled";
- dev_name = "uart_2";
- };
-
-//$$ DEVICE="uart_3"
-//$$ L2 PROP_STR = "status"
- uart_3{
- compatible = "amlogic,aml_uart";
- port_name = "uart_d";
- status = "ok";
- dev_name = "uart_3";
- };
-
-/// ***************************************************************************************
-/// - WiFi
-//$$ MODULE="WiFi"
-//$$ DEVICE="wifi_power"
-//$$ L2 PROP_STR = "status"
-//$$ L2 PROP_STR = "power_gpio"
- wifi_power{
- compatible = "amlogic,wifi_power";
- dev_name = "wifi_power";
- status = "okay";
- power_gpio = "GPIOE_11";
- };
-
-/// ***************************************************************************************
-/// - MMC
-//$$ MODULE="MMC"
-//$$ DEVICE="aml_sdio"
-//$$ L2 PROP_STR = "status"
-//$$ L3 PROP_U32 2 ="reg"
-//$$ L2 PROP_STR 7 = "pinctrl-names"
-//$$ L2 PROP_CHOICE "sdio_pin_0_match" = "pinctrl-0"
-//$$ L2 PROP_CHOICE "sdio_pin_1_match" = "pinctrl-1"
-//$$ L2 PROP_CHOICE "sdio_pin_2_match" = "pinctrl-2"
-//$$ L2 PROP_CHOICE "sdio_pin_3_match" = "pinctrl-3"
-//$$ L2 PROP_CHOICE "sdio_pin_4_match" = "pinctrl-4"
-//$$ L2 PROP_CHOICE "sdio_pin_5_match" = "pinctrl-5"
-// L2 PROP_CHOICE "sdio_pin_6_match" = "pinctrl-6"
- sdio{
- compatible = "amlogic,aml_sdio";
- dev_name = "aml_sdio.0";
- status = "okay";
- reg = <0xc1108c20 0x20>;
- pinctrl-names = "sd_clk_cmd_pins", "sd_all_pins", "emmc_clk_cmd_pins", "emmc_all_pins", "sdio_clk_cmd_pins", "sdio_all_pins"; /*sd:sdio_b, emmc:sdio_c, sdio:sdio_a*/
- // pinctrl-0 = <&sd_pins>;
- // pinctrl-1 = <&emmc_pins>;
- // pinctrl-2 = <&sdio_pins>;
- pinctrl-0 = <&sd_clk_cmd_pins>;
- pinctrl-1 = <&sd_all_pins>;
- pinctrl-2 = <&emmc_clk_cmd_pins>;
- pinctrl-3 = <&emmc_all_pins>;
- pinctrl-4 = <&sdio_clk_cmd_pins>;
- pinctrl-5 = <&sdio_all_pins>;
-
-//$$ DEVICE="sd"
-//$$ L2 PROP_STR = "status"
-//$$ L3 PROP_U32 = "port"
-//$$ L2 PROP_STR = "pinname"
-//$$ L3 PROP_U32 = "ocr_avail"
-//$$ L2 PROP_STR 3 = "caps"
-//$$ L3 PROP_U32 = "f_min"
-//$$ L3 PROP_U32 = "f_max"
-//$$ L3 PROP_U32 = "f_max_w"
-//$$ L3 PROP_U32 = "max_req_size"
-//$$ L2 PROP_STR = "gpio_dat3"
-//$$ L2 PROP_STR = "jtag_pin"
-//$$ L2 PROP_STR = "gpio_cd"
-//$$ L2 PROP_STR = "gpio_ro"
-//$$ L2 PROP_U32 = "irq_in"
-//$$ L2 PROP_U32 = "irq_out"
-//$$ L2 PROP_U32 = "card_type"
- sd{
- status = "okay";
- port = <1>; /**0:sdio_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
- pinname = "sd";
- ocr_avail = <0x200000>; /**VDD voltage 3.3 ~ 3.4 */
- caps = "MMC_CAP_4_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED";
- f_min = <300000>;
- f_max = <50000000>;
- f_max_w = <50000000>;
- max_req_size = <0x20000>; /**128KB*/
- gpio_dat3 = "CARD_3";
- gpio_cd = "CARD_6";
- gpio_power = "CARD_8";
- power_level = <0>;
- irq_in = <5>;
- #irq_in_edge = "GPIO_IRQ_FALLING";
- irq_out = <6>;
- #irq_out_edge = "GPIO_IRQ_RISING";
- card_type = <5>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
- };
-
-//$$ DEVICE="emmc"
-//$$ L2 PROP_STR = "status"
-//$$ L3 PROP_U32 = "port"
-//$$ L2 PROP_STR = "pinname"
-//$$ L3 PROP_U32 = "ocr_avail"
-//$$ L2 PROP_STR 4 = "caps"
-//$$ L3 PROP_U32 = "f_min"
-//$$ L3 PROP_U32 = "f_max"
-//$$ L3 PROP_U32 = "f_max_w"
-//$$ L3 PROP_U32 = "max_req_size"
-//$$ L2 PROP_STR = "gpio_dat3"
-//$$ L2 PROP_U32 = "card_type"
- // emmc{
- // port = <2>; /*0:sdio_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
- // pinname = "emmc";
- // ocr_avail = <0x200000>; /*VDD voltage 3.3 ~ 3.4 */
- // caps = "MMC_CAP_4_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED", "MMC_CAP_NONREMOVABLE"; // MMC_CAP_NEEDS_POLL -- for detect, MMC_CAP_NONREMOVABLE -- for eMMC/TSD
- // f_min = <300000>;
- // f_max = <50000000>;
- // f_max_w = <50000000>;
- // max_req_size = <0x20000>; /*128KB*/
- // gpio_dat3 = "BOOT_3";
- // #gpio_cd = "CARD_6";
- // #gpio_power = "CARD_8";
- // #power_level = <0>;
- // card_type = <5>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
- // };
-
- // sdio{
- // port = <0>; /*0:sdio_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
- // pinname = "sdio";
- // ocr_avail = <0x200000>; /*VDD voltage 3.3 ~ 3.4 */
- // caps = "MMC_CAP_4_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED", "MMC_CAP_NONREMOVABLE";
- // f_min = <300000>;
- // f_max = <50000000>;
- // f_max_w = <50000000>;
- // max_req_size = <0x20000>; /*128KB*/
- // card_type = <3>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
- // };
- };
-
- // sdhc{
- // compatible = "amlogic,aml_sdhc";
- // dev_name = "aml_sdhc.0";
- // reg = <0xc1108e00 0x30>;
- // pinctrl-names = "sd"; /*sd:sdio_b, emmc:sdio_c, sdio:sdio_a*/
- // pinctrl-0 = <&sdhc_b_pins>;
-
- // sd{
- // port = <4>; /*0:sdio_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
- // pinname = "sd";
- // ocr_avail = <0x200000>; /*VDD voltage 3.3 ~ 3.4 */
- // caps = "MMC_CAP_4_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED";
- // f_min = <300000>;
- // f_max = <50000000>;
- // f_max_w = <50000000>;
- // max_req_size = <0x80000>; /*512KB*/
- // gpio_cd = "CARD_6";
- // gpio_power = "CARD_8";
- // power_level = <0>;
- // irq_in = <5>;
- // irq_out = <6>;
- // };
- // };
-
-
-/// ***************************************************************************************
-/// - I2C
-//$$ MODULE="I2C"
-//$$ DEVICE="I2C_AO"
-//$$ L2 PROP_STR = "status"
-//$$ L3 PROP_U32 2 ="reg"
-//$$ L3 PROP_STR = "pinctrl-names"
-//$$ L2 PROP_CHOICE "I2C_AO_pin_match" = "pinctrl-0"
- i2c@c8100500{ /*I2C-AO*/
- compatible = "amlogic,aml_i2c";
- dev_name = "i2c-AO";
- status = "ok";
- reg = <0xc8100500 0x1d>;
- #address-cells = <1>;
- #size-cells = <0>;
- device_id = <0>;
- pinctrl-names="default";
- pinctrl-0=<&ao_i2c_master>;
- use_pio = <0>;
- master_i2c_speed = <100000>;
- };
-
-//$$ DEVICE = "I2C_A"
-//$$ L2 PROP_STR = "status"
-//$$ L3 PROP_U32 2 ="reg"
-//$$ L3 PROP_STR = "pinctrl-names"
-//$$ L2 PROP_CHOICE "I2C_A_pin_match" = "pinctrl-0"
- i2c@c1108500{ /*I2C-A*/
- compatible = "amlogic,aml_i2c";
- dev_name = "i2c-A";
- status = "ok";
- reg = <0xc1108500 0x20>;
- device_id = <1>;
- pinctrl-names="default";
- pinctrl-0=<&a_i2c_master>;
- #address-cells = <1>;
- #size-cells = <0>;
- use_pio = <0>;
- master_i2c_speed = <300000>;
- };
-
-//$$ DEVICE="I2C_B"
-//$$ L2 PROP_STR = "status"
-//$$ L3 PROP_U32 2="reg"
-//$$ L3 PROP_STR = "pinctrl-names"
-//$$ L2 PROP_CHOICE "I2C_B_pin_match" = "pinctrl-0"
- i2c@c11087c0{ /*I2C-B*/
- compatible = "amlogic,aml_i2c";
- dev_name = "i2c-B";
- status = "ok";
- reg = <0xc11087c0 0x20>;
- device_id = <2>;
- pinctrl-names="default";
- pinctrl-0=<&b_i2c_master>;
- #address-cells = <1>;
- #size-cells = <0>;
- use_pio = <0>;
- master_i2c_speed = <300000>;
- };
-
-/// ***************************************************************************************
-/// - Power
-//$$ MODULE="Power"
-//$$ DEVICE="dvfs"
-//$$ L2 PROP_STR = "status"
- dvfs {
- compatible = "amlogic, amlogic-dvfs"; /** fixed for driver, don't change */
- #address-cells = <1>;
- #size-cells = <0>;
- status = "ok";
-
-//$$ L2 PROP_U32 = "dvfs_id"
-//$$ L2 PROP_U32 = "table_count"
-//$$ L2 PROP_U32 11*3 = "dvfs_table"
- vcck_dvfs {
- dvfs_id = <1>; /** must be value of (1 << n) */
- table_count = <11>; /** must be correct count for dvfs_table */
- dvfs_table = <
- /* NOTE: frequent in this table must be ascending order */
- /* frequent(Khz) min_uV max_uV */
- 200000 1079000 1079000
- 600000 1079000 1079000
- 792000 1079000 1079000
- 816000 1147000 1147000
- 840000 1147000 1147000
- 984000 1147000 1147000
- 1000000 1147000 1147000
- 1080000 1249000 1249000
- 1200000 1266000 1266000
- 1320000 1334000 1334000
- 1500000 1334000 1334000
- >;
- };
- };
-//$$ DEVICE="meson_vcck_dvfs_driver"
-//$$ L2 PROP_STR = "status"
-//$$ L2 PROP_STR = "pinctrl-names"
-//$$ L2 PROP_CHOICE "meson_vcck_dvfs_pin_0_match" = "pinctrl-0"
-//$$ L2 PROP_U32 = "use_pwm"
-//$$ L2 PROP_U32 = "table_count"
-//$$ L2 PROP_U32 16*2 = "cs_voltage_table"
- meson_vcck_dvfs_driver{
- compatible = "amlogic, meson_vcck_dvfs";
- dev_name = "meson_vcck_dvfs_driver";
- status = "ok";
- pinctrl-names = "default";
- pinctrl-0 = <&aml_pwm_pins>;
- use_pwm = <1>;
- pmw_controller = "PWM_C";
- table_count = <16>;
- cs_voltage_table = <
- /*
- * Note: This table is hardware depended, If your hardware use PWM method,
- * then first line in this table is PWM register value, second line is
- * voltage of VCCK according this PWM register value. If your platform use
- * constant-current source to adjust vcck voltage, then the first line should
- * set to 0, means not valid, member 'use_pwm' in this node should set to 0.
- *
- * ---- This table must be in ascending order by voltage ----
- *
- * PWM value VCCK voltage
- */
- 0x130009 1079000
- 0x12000a 1096000
- 0x11000b 1113000
- 0x10000c 1130000
- 0x0f000d 1147000
- 0x0e000e 1164000
- 0x0d000f 1181000
- 0x0c0010 1198000
- 0x0b0011 1215000
- 0x0a0012 1232000
- 0x090013 1249000
- 0x080014 1266000
- 0x070015 1283000
- 0x060016 1300000
- 0x050017 1317000
- 0x040018 1334000
- >;
- };
-
-
-
-/// ***************************************************************************************
-/// - USB Controller
-//$$ MODULE="USB Controller"
- usb_con {
- lm-compatible = "logicmodule-bus";
-
-//$$ DEVICE="usb_b"
-//$$ L2 PROP_U32 = "lm-periph-id"
-//$$ L2 PROP_STR = "clock-src"
-//$$ L2 PROP_U32 = "port-id"
-//$$ L2 PROP_U32 = "port-type"
-//$$ L2 PROP_U32 = "port-speed"
-//$$ L2 PROP_U32 = "port-config"
-//$$ L2 PROP_U32 = "port-dma"
-//$$ L2 PROP_U32 = "port-id-mode"
-//$$ L2 PROP_STR = "status"
- usb_b{
- lm-compatible = "amlogic,usb";
- lm-periph-id = <1>; /** lm name */
- clock-src = "usb1"; /** clock src */
- port-id = <1>; /** ref to mach/usb.h */
- port-type = <1>; /** 0: otg, 1: host, 2: slave */
- port-speed = <0>; /** 0: default, 1: high, 2: full */
- port-config = <0>; /** 0: default */
- port-dma = <0>; /** 0: default, 1: single, 2: incr, 3: incr4, 4: incr8, 5: incr16, 6: disable*/
- port-id-mode = <1>; /** 0: hardware, 1: sw_host, 2: sw_slave*/
- status = "okay";
- };
-
-//$$ DEVICE="usb_a"
-//$$ L2 PROP_U32 = "lm-periph-id"
-//$$ L2 PROP_STR = "clock-src"
-//$$ L2 PROP_U32 = "port-id"
-//$$ L2 PROP_U32 = "port-type"
-//$$ L2 PROP_U32 = "port-speed"
-//$$ L2 PROP_U32 = "port-config"
-//$$ L2 PROP_U32 = "port-dma"
-//$$ L2 PROP_U32 = "port-id-mode"
-//$$ L2 PROP_STR = "gpio-vbus-power"
-//$$ L2 PROP_U32 = "gpio-work-mask"
-// L2 PROP_U32 = "charger_detect"
-//$$ L2 PROP_STR = "status"
- usb_a{
- lm-compatible = "amlogic,usb";
- lm-periph-id = <0>; /** lm name */
- clock-src = "usb0"; /** clock src */
- port-id = <0>; /** ref to mach/usb.h */
- port-type = <0>; /** 0: otg, 1: host, 2: slave */
- port-speed = <0>; /** 0: default, high, 1: full */
- port-config = <0>; /** 0: default */
- port-dma = <0>; /** 0: default, 1: single, 2: incr, 3: incr4, 4: incr8, 5: incr16, 6: disable*/
- port-id-mode = <0>; /** 0: hardware, 1: sw_host, 2: sw_slave*/
- gpio-vbus-power = "GPIOD_9";
- gpio-work-mask = <1>; /**0: work on pulldown,1:work on pullup*/
- status = "okay";
- };
- };
-
-
-
-/// ***************************************************************************************
-/// - Audio
-//$$ MODULE="Audio"
-//$$ DEVICE="audio"
-//$$ L2 PROP_STR = "status"
- audio{
- compatible = "amlogic,aml-audio";
- dev_name = "aml-audio.0";
- status = "okay";
- };
-
-//$$ DEVICE="audio_dai"
-//$$ L2 PROP_STR = "status"
- audio_dai{
- compatible = "amlogic,aml-dai";
- dev_name = "aml-dai.0";
- status = "okay";
- };
-
-//$$ DEVICE="dummy_codec_audio"
-//$$ L2 PROP_STR = "status"
-//$$ L2 PROP_STR = "pinctrl-names"
-//$$ L3 PROP_CHOICE "dummy_codec_audio_0_pin_match" = "pinctrl-0"
- dummy_codec_audio{
- status = "okay";
- compatible = "amlogic,aml_dummy_codec_audio";
- dev_name = "aml_dummy_codec_audio.0";
- pinctrl-names = "dummy_codec_audio";
- pinctrl-0 = <&aml_dummy_codec_pins>;
- };
-
-//$$ DEVICE="dummy_codec"
-//$$ L2 PROP_STR = "status"
- dummy_codec{
- status = "okay";
- compatible = "amlogic,aml_dummy_codec";
- dev_name = "dummy_codec.0";
- };
-
-
-
-/// ***************************************************************************************
-/// - Input
-//$$ MODULE="Input"
-//$$ DEVICE="saradc"
-//$$ L2 PROP_STR = "status"
- saradc{
- compatible = "amlogic,saradc";
- status = "okay";
- };
-//$$ DEVICE="adc_keypad"
-//$$ L2 PROP_STR = "status"
-//$$ L2 PROP_STR 5 = "key_name"
-//$$ L2 PROP_U32 = "key_num"
-//$$ L2 PROP_U32 = "name_len"
-//$$ L2 PROP_U32 5 = "key_code"
-//$$ L2 PROP_U32 5 = "key_chan"
-//$$ L2 PROP_U32 5 = "key_val"
-//$$ L2 PROP_U32 5 = "key_tolerance"
- adc_keypad{
- compatible = "amlogic,adc_keypad";
- status = "okay";
- key_num = <6>;
- name_len = <20>;
- key_name = "menu","vol-","vol+","back","home","ok";
- key_code = <139 114 115 158 102 232>;
- key_chan = <4 4 4 4 4 4>;
- key_val = <9 150 275 392 513 639>;
- key_tolerance = <40 40 40 40 40 40>;
- };
-//$$ DEVICE="key_input"
-//$$ L2 PROP_STR = "status"
-//$$ L2 PROP_U32 = "scan_period"
-//$$ L2 PROP_U32 = "fuzz_time"
-//$$ L2 PROP_U32 = "key_code_list"
-//$$ L2 PROP_U32 = "key_num"
-//$$ L2 PROP_U32 = "config"
- key_input{
- compatible = "amlogic,key_input";
- status = "okay";
- scan_period = <20>;
- fuzz_time = <60>;
- key_code_list = <116>;
- key_num = <1>;
- config = <0>;
- };
-//$$ DEVICE="aml_remote"
-//$$ L2 PROP_STR = "status"
-//$$ L2 PROP_U32 = "ao_baseaddr"
-//$$ L2 PROP_STR = "pinctrl-names"
-//$$ L2 PROP_CHOICE "Remote_pin_match" = "pinctrl-0"
- meson-remote{
- compatible = "amlogic,aml_remote";
- dev_name = "meson-remote";
- status = "okay";
- ao_baseaddr = <0xf3100480>;
- pinctrl-names="default";
- pinctrl-0=<&remote_pins>;
- };
-
-
-/// ***************************************************************************************
-/// - Spi
-//$$ MODULE="Spi"
-//$$ DEVICE="spi"
-//$$ L2 PROP_STR = "status"
-//$$ L2 PROP_U32 2 = "reg"
-//$$ L2 PROP_STR = "pinctrl-names"
-//$$ L2 PROP_CHOICE "Spi_pin_0_match" = "pinctrl-0"
-//$$ L2 PROP_U32 = "nr-parts"
-//$$ L2 PROP_CHOICE "Spi_nr-part-0_match" = "nr-part-0"
-//$$ L2 PROP_CHOICE "Spi_nr-part-1_match" = "nr-part-1"
- spi@cc000000{
- compatible = "amlogic,apollo_spi_nor";
- status = "ok";
- reg = <0xcc000000 0x04000000>;
- pinctrl-names = "default";
- pinctrl-0 = <&aml_spi_nor_pins>;
-
- nr-parts = <2>;
- nr-part-0 = <&bootloader>;
- nr-part-1 = <&ubootenv>;
-
-//$$ MATCH "Spi_nr-part-0_match" = <&bootloader>
-//$$ L2 PROP_STR = "name"
-//$$ L2 PROP_U32 = "offset"
-//$$ L2 PROP_U32 = "size"
- bootloader:bootloader{
- name = "bootloader";
- offset = <0>;
- size = <0x60000>;
- };
-
-//$$ MATCH "Spi_nr-part-1_match" = <&ubootenv>
-//$$ L2 PROP_STR = "name"
-//$$ L2 PROP_U32 = "offset"
-//$$ L2 PROP_U32 = "size"
- ubootenv:ubootenv{
- name = "ubootenv";
- offset = <0x80000>;
- size = <0x8000>;
- };
- };
-
-/// ***************************************************************************************
-/// - Nand
+ reserve-iomap = "true";
+ };
+
+/// **************************************************************************************
+/// - DISP&MM-FB
+//$$ MODULE = "DISP&MM-FB"
+//$$ DEVICE = "mesonfb"
+//$$ L2 PROP_STR = "status"
+//$$ L3 PROP_U32 2 ="reserve-memory"
+//$$ L2 PROP_U32 = "vmode"
+//$$ L2 PROP_U32 5 = "display_size_default"
+ mesonfb{
+ compatible = "amlogic,mesonfb";
+ dev_name = "mesonfb";
+ status = "okay";
+ reserve-memory = <0x01000000 0x00100000>;
+ reserve-iomap = "true";
+ vmode = <0>; /*0:VMODE_720P 1:VMODE_LCD 2:VMODE_LVDS_1080P 3:VMODE_1080P*/
+ scale_mode = <0>; /*0:default 1:new*/
+ display_size_default = <1280 720 1280 2160 32>; // osd0:8M, osd1:1m 1280*720*4*3 = 11,059,200
+ };
+//$$ DEVICE="deinterlace"
+//$$ L2 PROP_STR = "status"
+//$$ L2 PROP_U32 = "reserve-memory"
+ deinterlace{
+ compatible = "amlogic,deinterlace";
+ dev_name = "deinterlace";
+ status = "okay";
+ reserve-memory = <0x01c00000>; // 27M
+ reserve-iomap = "true";
+ };
+
+/// ***************************************************************************************
+/// - DISP&MM-A/V stream
+//$$ MODULE = "DISP&MM-A/V stream"
+//$$ DEVICE="mesonstream"
+//$$ L2 PROP_STR = "status"
+//$$ L3 PROP_U32 4 ="reserve-memory"
+ mesonstream{
+ compatible = "amlogic,mesonstream";
+ dev_name = "mesonstream.0";
+ status = "okay";
+ reserve-memory = <0x00a00000>; //10M
+ reserve-iomap = "true";
+ };
+
+
+/// ***************************************************************************************
+/// - DISP&MM-A/V stream
+//$$ MODULE = "DISP&MM-A/V video dec"
+//$$ DEVICE="vdec"
+//$$ L2 PROP_STR = "status"
+//$$ L3 PROP_U32 4 ="reg"
+ vdec{
+ compatible = "amlogic,vdec";
+ dev_name = "vdec.0";
+ status = "okay";
+ reserve-memory = <0x02000000>; //32M
+ reserve-iomap = "true";
+ };
+
+/// ***************************************************************************************
+/// - DISP&MM-PostProcess
+//$$ MODULE="DISP&MM-PostProcess"
+//$$ DEVICE="ppmgr"
+//$$ L2 PROP_STR = "status"
+//$$ L3 PROP_U32 ="reserve-memory"
+ ppmgr{
+ compatible = "amlogic,ppmgr";
+ dev_name = "ppmgr";
+ status = "okay";
+ reserve-memory = <0x01300000>; // 1280*732*21 = 19,676,160
+ reserve-iomap = "true";
+ };
+
+
+/// ***************************************************************************************
+/// - DISP&MM-Vout
+//$$ MODULE = "DISP&MM-Vout"
+//$$ DEVICE = "mesonvout"
+//$$ L2 PROP_STR = "status"
+ mesonvout{
+ compatible = "amlogic,mesonvout";
+ dev_name = "mesonvout";
+ status = "okay";
+ };
+
+/// ***************************************************************************************
+/// - EARLY_INIT
+//$$ MODULE="early_init"
+//$$ DEVICE = "early_init"
+//$$ L2 PROP_STR = "status"
+//$$ L3 PROP_STR ="gpio-1"
+//$$ L2 PROP_STR = "gpio-2"
+ early_init{
+ compatible = "amlogic,early_init";
+ dev_name = "early_init";
+ status = "ok";
+ gpio-1 = "GPIOAO_3";
+ gpio-2 = "GPIOAO_2";
+ };
+
+/// ***************************************************************************************
+/// - RTC
+//$$ MODULE="RTC"
+//$$ DEVICE="Rtc"
+//$$ L2 PROP_STR = "status"
+ rtc{
+ compatible = "amlogic,aml_rtc";
+ status = "okay";
+ };
+
+/// ***************************************************************************************
+/// - UART
+//$$ MODULE="UART"
+//$$ DEVICE="uart_ao"
+//$$ L2 PROP_STR = "status"
+//$$ L2 PROP_STR = "pinctrl-names"
+//$$ L3 PROP_CHOICE "uart_ao_pin_match" = "pinctrl-0"
+ uart_ao{
+ compatible = "amlogic,aml_uart";
+ port_name = "uart_ao";
+ status = "okay";
+ dev_name = "uart_ao";
+ pinctrl-names = "default";
+ pinctrl-0 = <&ao_uart_pins>;
+ };
+
+//$$ DEVICE="uart_0"
+//$$ L2 PROP_STR = "status"
+ uart_0{
+ compatible = "amlogic,aml_uart";
+ port_name = "uart_a";
+ status = "okay";
+ dev_name = "uart_0";
+ };
+
+//$$ DEVICE="uart_1"
+//$$ L2 PROP_STR = "status"
+ uart_1{
+ compatible = "amlogic,aml_uart";
+ port_name = "uart_b";
+ status = "disabled";
+ dev_name = "uart_1";
+ };
+
+//$$ DEVICE="uart_2"
+//$$ L2 PROP_STR = "status"
+ uart_2{
+ compatible = "amlogic,aml_uart";
+ port_name = "uart_c";
+ status = "disabled";
+ dev_name = "uart_2";
+ };
+
+//$$ DEVICE="uart_3"
+//$$ L2 PROP_STR = "status"
+ uart_3{
+ compatible = "amlogic,aml_uart";
+ port_name = "uart_d";
+ status = "ok";
+ dev_name = "uart_3";
+ };
+
+/// ***************************************************************************************
+/// - Bluetooth
+//$$ MODULE="Bluetooth"
+
+ bt-dev{
+ compatible = "amlogic,bt-dev";
+ dev_name = "bt-dev";
+ gpio_reset = "GPIOE_11";
+ gpio_en = "GPIOE_11";
+ status = "ok";
+ };
+
+/// ***************************************************************************************
+/// - WiFi
+//$$ MODULE="WiFi"
+//$$ DEVICE="aml_broadcm_wifi"
+//$$ L2 PROP_STR = "status"
+//$$ L2 PROP_STR = "interrupt_pin"
+//$$ L2 PROP_U32 = "irq_num"
+//$$ L2 PROP_STR = "irq_trigger_type"
+//$$ L2 PROP_STR = "power_on_pin"
+//$$ L2 PROP_STR = "clock_32k_pin"
+ wifi{
+ compatible = "amlogic,aml_broadcm_wifi";
+ dev_name = "aml_broadcm_wifi";
+ status = "okay";
+ interrupt_pin = "GPIOX_11";
+ irq_num = <4>;
+ irq_trigger_type = "GPIO_IRQ_HIGH";
+ power_on_pin = "GPIOC_7";
+ clock_32k_pin = "GPIOX_12";
+ };
+
+//$$ DEVICE="wifi_power"
+//$$ L2 PROP_STR = "status"
+//$$ L2 PROP_STR = "power_gpio"
+// wifi_power{
+// compatible = "amlogic,wifi_power";
+// dev_name = "wifi_power";
+// status = "okay";
+// power_gpio = "GPIOC_7";
+// };
+
+/// ***************************************************************************************
+/// - MMC
+//$$ MODULE="MMC"
+//$$ DEVICE="aml_sdio"
+//$$ L2 PROP_STR = "status"
+//$$ L3 PROP_U32 2 ="reg"
+//$$ L2 PROP_STR 7 = "pinctrl-names"
+//$$ L2 PROP_CHOICE "sdio_pin_0_match" = "pinctrl-0"
+//$$ L2 PROP_CHOICE "sdio_pin_1_match" = "pinctrl-1"
+//$$ L2 PROP_CHOICE "sdio_pin_2_match" = "pinctrl-2"
+//$$ L2 PROP_CHOICE "sdio_pin_3_match" = "pinctrl-3"
+//$$ L2 PROP_CHOICE "sdio_pin_4_match" = "pinctrl-4"
+//$$ L2 PROP_CHOICE "sdio_pin_5_match" = "pinctrl-5"
+// L2 PROP_CHOICE "sdio_pin_6_match" = "pinctrl-6"
+ sdio{
+ compatible = "amlogic,aml_sdio";
+ dev_name = "aml_sdio.0";
+ status = "okay";
+ reg = <0xc1108c20 0x20>;
+ pinctrl-names = "sd_clk_cmd_pins", "sd_all_pins", "emmc_clk_cmd_pins", "emmc_all_pins", "sdio_clk_cmd_pins", "sdio_all_pins"; /*sd:sdio_b, emmc:sdio_c, sdio:sdio_a*/
+ // pinctrl-0 = <&sd_pins>;
+ // pinctrl-1 = <&emmc_pins>;
+ // pinctrl-2 = <&sdio_pins>;
+ pinctrl-0 = <&sd_clk_cmd_pins>;
+ pinctrl-1 = <&sd_all_pins>;
+ pinctrl-2 = <&emmc_clk_cmd_pins>;
+ pinctrl-3 = <&emmc_all_pins>;
+ pinctrl-4 = <&sdio_clk_cmd_pins>;
+ pinctrl-5 = <&sdio_all_pins>;
+
+//$$ DEVICE="sd"
+//$$ L2 PROP_STR = "status"
+//$$ L3 PROP_U32 = "port"
+//$$ L2 PROP_STR = "pinname"
+//$$ L3 PROP_U32 = "ocr_avail"
+//$$ L2 PROP_STR 3 = "caps"
+//$$ L3 PROP_U32 = "f_min"
+//$$ L3 PROP_U32 = "f_max"
+//$$ L3 PROP_U32 = "f_max_w"
+//$$ L3 PROP_U32 = "max_req_size"
+//$$ L2 PROP_STR = "gpio_dat3"
+//$$ L2 PROP_STR = "jtag_pin"
+//$$ L2 PROP_STR = "gpio_cd"
+//$$ L2 PROP_STR = "gpio_ro"
+//$$ L2 PROP_U32 = "irq_in"
+//$$ L2 PROP_U32 = "irq_out"
+//$$ L2 PROP_U32 = "card_type"
+ sd{
+ status = "okay";
+ port = <1>; /**0:sdio_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
+ pinname = "sd";
+ ocr_avail = <0x200000>; /**VDD voltage 3.3 ~ 3.4 */
+ caps = "MMC_CAP_4_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED";
+ f_min = <300000>;
+ f_max = <50000000>;
+ f_max_w = <50000000>;
+ max_req_size = <0x20000>; /**128KB*/
+ gpio_dat3 = "CARD_3";
+ gpio_cd = "CARD_6";
+ gpio_power = "CARD_8";
+ power_level = <0>;
+ irq_in = <5>;
+ #irq_in_edge = "GPIO_IRQ_FALLING";
+ irq_out = <6>;
+ #irq_out_edge = "GPIO_IRQ_RISING";
+ card_type = <5>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
+ };
+
+//$$ L3 PROP_U32 = "port"
+//$$ L2 PROP_STR = "pinname"
+//$$ L3 PROP_U32 = "ocr_avail"
+//$$ L2 PROP_STR 4 = "caps"
+//$$ L3 PROP_U32 = "f_min"
+//$$ L3 PROP_U32 = "f_max"
+//$$ L3 PROP_U32 = "max_req_size"
+//$$ L2 PROP_U32 = "card_type"
+ sdio{
+ status = "okay";
+ port = <0>; /*0:sdio_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
+ pinname = "sdio";
+ ocr_avail = <0x200000>; /*VDD voltage 3.3 ~ 3.4 */
+ caps = "MMC_CAP_4_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED", "MMC_CAP_NONREMOVABLE";
+ f_min = <300000>;
+ f_max = <50000000>;
+ f_max_w = <50000000>;
+ max_req_size = <0x20000>; /*128KB*/
+ card_type = <3>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
+ };
+ };
+
+/// ***************************************************************************************
+/// - I2C
+//$$ MODULE="I2C"
+//$$ DEVICE="I2C_AO"
+//$$ L2 PROP_STR = "status"
+//$$ L3 PROP_U32 2 ="reg"
+//$$ L3 PROP_STR = "pinctrl-names"
+//$$ L2 PROP_CHOICE "I2C_AO_pin_match" = "pinctrl-0"
+ i2c@c8100500{ /*I2C-AO*/
+ compatible = "amlogic,aml_i2c";
+ dev_name = "i2c-AO";
+ status = "ok";
+ reg = <0xc8100500 0x1d>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ device_id = <0>;
+ pinctrl-names="default";
+ pinctrl-0=<&ao_i2c_master>;
+ use_pio = <0>;
+ master_i2c_speed = <100000>;
+ };
+
+//$$ DEVICE = "I2C_A"
+//$$ L2 PROP_STR = "status"
+//$$ L3 PROP_U32 2 ="reg"
+//$$ L3 PROP_STR = "pinctrl-names"
+//$$ L2 PROP_CHOICE "I2C_A_pin_match" = "pinctrl-0"
+ i2c@c1108500{ /*I2C-A*/
+ compatible = "amlogic,aml_i2c";
+ dev_name = "i2c-A";
+ status = "ok";
+ reg = <0xc1108500 0x20>;
+ device_id = <1>;
+ pinctrl-names="default";
+ pinctrl-0=<&a_i2c_master>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ use_pio = <0>;
+ master_i2c_speed = <300000>;
+ };
+
+//$$ DEVICE="I2C_B"
+//$$ L2 PROP_STR = "status"
+//$$ L3 PROP_U32 2="reg"
+//$$ L3 PROP_STR = "pinctrl-names"
+//$$ L2 PROP_CHOICE "I2C_B_pin_match" = "pinctrl-0"
+ i2c@c11087c0{ /*I2C-B*/
+ compatible = "amlogic,aml_i2c";
+ dev_name = "i2c-B";
+ status = "ok";
+ reg = <0xc11087c0 0x20>;
+ device_id = <2>;
+ pinctrl-names="default";
+ pinctrl-0=<&b_i2c_master>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ use_pio = <0>;
+ master_i2c_speed = <300000>;
+ };
+
+/// ***************************************************************************************
+/// - Power
+//$$ MODULE="Power"
+//$$ DEVICE="dvfs"
+//$$ L2 PROP_STR = "status"
+ dvfs {
+ compatible = "amlogic, amlogic-dvfs"; /** fixed for driver, don't change */
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "ok";
+
+//$$ L2 PROP_U32 = "dvfs_id"
+//$$ L2 PROP_U32 = "table_count"
+//$$ L2 PROP_U32 11*3 = "dvfs_table"
+ vcck_dvfs {
+ dvfs_id = <1>; /** must be value of (1 << n) */
+ table_count = <11>; /** must be correct count for dvfs_table */
+ dvfs_table = <
+ /* NOTE: frequent in this table must be ascending order */
+ /* frequent(Khz) min_uV max_uV */
+ 200000 1010000 1010000
+ 600000 1010000 1010000
+ 792000 1010000 1010000
+ 816000 1110000 1110000
+ 840000 1110000 1110000
+ 984000 1110000 1110000
+ 1000000 1110000 1110000
+ 1080000 1220000 1220000
+ 1200000 1240000 1240000
+ 1320000 1320000 1320000
+ 1512000 1320000 1320000
+ >;
+ };
+ };
+//$$ DEVICE="meson_vcck_dvfs_driver"
+//$$ L2 PROP_STR = "status"
+//$$ L2 PROP_STR = "pinctrl-names"
+//$$ L2 PROP_CHOICE "meson_vcck_dvfs_pin_0_match" = "pinctrl-0"
+//$$ L2 PROP_U32 = "use_pwm"
+//$$ L2 PROP_U32 = "table_count"
+//$$ L2 PROP_U32 16*2 = "cs_voltage_table"
+ meson_vcck_dvfs_driver{
+ compatible = "amlogic, meson_vcck_dvfs";
+ dev_name = "meson_vcck_dvfs_driver";
+ status = "ok";
+ pinctrl-names = "default";
+ pinctrl-0 = <&aml_pwm_pins>;
+ use_pwm = <1>;
+ pmw_controller = "PWM_C";
+ table_count = <16>;
+ cs_voltage_table = <
+ /*
+ * Note: This table is hardware depended, If your hardware use PWM method,
+ * then first line in this table is PWM register value, second line is
+ * voltage of VCCK according this PWM register value. If your platform use
+ * constant-current source to adjust vcck voltage, then the first line should
+ * set to 0, means not valid, member 'use_pwm' in this node should set to 0.
+ *
+ * ---- This table must be in ascending order by voltage ----
+ *
+ * PWM value VCCK voltage
+ */
+ 0x130009 1010000
+ 0x12000a 1050000
+ 0x11000b 1070000
+ 0x10000c 1090000
+ 0x0f000d 1110000
+ 0x0e000e 1130000
+ 0x0d000f 1150000
+ 0x0c0010 1170000
+ 0x0b0011 1190000
+ 0x0a0012 1210000
+ 0x090013 1220000
+ 0x080014 1240000
+ 0x070015 1270000
+ 0x060016 1280000
+ 0x050017 1300000
+ 0x040018 1320000
+ >;
+ };
+
+
+
+/// ***************************************************************************************
+/// - USB Controller
+//$$ MODULE="USB Controller"
+ usb_con {
+ lm-compatible = "logicmodule-bus";
+
+//$$ DEVICE="usb_b"
+//$$ L2 PROP_U32 = "lm-periph-id"
+//$$ L2 PROP_STR = "clock-src"
+//$$ L2 PROP_U32 = "port-id"
+//$$ L2 PROP_U32 = "port-type"
+//$$ L2 PROP_U32 = "port-speed"
+//$$ L2 PROP_U32 = "port-config"
+//$$ L2 PROP_U32 = "port-dma"
+//$$ L2 PROP_U32 = "port-id-mode"
+//$$ L2 PROP_STR = "status"
+ usb_b{
+ lm-compatible = "amlogic,usb";
+ lm-periph-id = <1>; /** lm name */
+ clock-src = "usb1"; /** clock src */
+ port-id = <1>; /** ref to mach/usb.h */
+ port-type = <1>; /** 0: otg, 1: host, 2: slave */
+ port-speed = <0>; /** 0: default, 1: high, 2: full */
+ port-config = <0>; /** 0: default */
+ port-dma = <0>; /** 0: default, 1: single, 2: incr, 3: incr4, 4: incr8, 5: incr16, 6: disable*/
+ port-id-mode = <1>; /** 0: hardware, 1: sw_host, 2: sw_slave*/
+ status = "okay";
+ };
+
+//$$ DEVICE="usb_a"
+//$$ L2 PROP_U32 = "lm-periph-id"
+//$$ L2 PROP_STR = "clock-src"
+//$$ L2 PROP_U32 = "port-id"
+//$$ L2 PROP_U32 = "port-type"
+//$$ L2 PROP_U32 = "port-speed"
+//$$ L2 PROP_U32 = "port-config"
+//$$ L2 PROP_U32 = "port-dma"
+//$$ L2 PROP_U32 = "port-id-mode"
+//$$ L2 PROP_STR = "gpio-vbus-power"
+//$$ L2 PROP_U32 = "gpio-work-mask"
+// L2 PROP_U32 = "charger_detect"
+//$$ L2 PROP_STR = "status"
+ usb_a{
+ lm-compatible = "amlogic,usb";
+ lm-periph-id = <0>; /** lm name */
+ clock-src = "usb0"; /** clock src */
+ port-id = <0>; /** ref to mach/usb.h */
+ port-type = <0>; /** 0: otg, 1: host, 2: slave */
+ port-speed = <0>; /** 0: default, high, 1: full */
+ port-config = <0>; /** 0: default */
+ port-dma = <0>; /** 0: default, 1: single, 2: incr, 3: incr4, 4: incr8, 5: incr16, 6: disable*/
+ port-id-mode = <0>; /** 0: hardware, 1: sw_host, 2: sw_slave*/
+ gpio-vbus-power = "GPIOD_9";
+ gpio-work-mask = <1>; /**0: work on pulldown,1:work on pullup*/
+ status = "okay";
+ };
+ };
+
+
+
+/// ***************************************************************************************
+/// - Audio
+//$$ MODULE="Audio"
+//$$ DEVICE="audio"
+//$$ L2 PROP_STR = "status"
+ audio{
+ compatible = "amlogic,aml-audio";
+ dev_name = "aml-audio.0";
+ status = "okay";
+ };
+
+//$$ DEVICE="audio_dai"
+//$$ L2 PROP_STR = "status"
+ audio_dai{
+ compatible = "amlogic,aml-dai";
+ dev_name = "aml-dai.0";
+ status = "okay";
+ };
+
+//$$ DEVICE="dummy_codec_audio"
+//$$ L2 PROP_STR = "status"
+//$$ L2 PROP_STR = "pinctrl-names"
+//$$ L3 PROP_CHOICE "dummy_codec_audio_0_pin_match" = "pinctrl-0"
+ dummy_codec_audio{
+ status = "okay";
+ compatible = "amlogic,aml_dummy_codec_audio";
+ dev_name = "aml_dummy_codec_audio.0";
+ pinctrl-names = "dummy_codec_audio";
+ pinctrl-0 = <&aml_dummy_codec_pins>;
+ };
+
+//$$ DEVICE="dummy_codec"
+//$$ L2 PROP_STR = "status"
+ dummy_codec{
+ status = "okay";
+ compatible = "amlogic,aml_dummy_codec";
+ dev_name = "dummy_codec.0";
+ };
+
+
+
+/// ***************************************************************************************
+/// - Input
+//$$ MODULE="Input"
+//$$ DEVICE="saradc"
+//$$ L2 PROP_STR = "status"
+ saradc{
+ compatible = "amlogic,saradc";
+ status = "okay";
+ };
+//$$ DEVICE="adc_keypad"
+//$$ L2 PROP_STR = "status"
+//$$ L2 PROP_STR 5 = "key_name"
+//$$ L2 PROP_U32 = "key_num"
+//$$ L2 PROP_U32 = "name_len"
+//$$ L2 PROP_U32 5 = "key_code"
+//$$ L2 PROP_U32 5 = "key_chan"
+//$$ L2 PROP_U32 5 = "key_val"
+//$$ L2 PROP_U32 5 = "key_tolerance"
+ adc_keypad{
+ compatible = "amlogic,adc_keypad";
+ status = "okay";
+ key_num = <6>;
+ name_len = <20>;
+ key_name = "menu","vol-","vol+","back","home","ok";
+ key_code = <139 114 115 158 102 232>;
+ key_chan = <4 4 4 4 4 4>;
+ key_val = <9 150 275 392 513 639>;
+ key_tolerance = <40 40 40 40 40 40>;
+ };
+//$$ DEVICE="key_input"
+//$$ L2 PROP_STR = "status"
+//$$ L2 PROP_U32 = "scan_period"
+//$$ L2 PROP_U32 = "fuzz_time"
+//$$ L2 PROP_U32 = "key_code_list"
+//$$ L2 PROP_U32 = "key_num"
+//$$ L2 PROP_U32 = "config"
+ key_input{
+ compatible = "amlogic,key_input";
+ status = "okay";
+ scan_period = <20>;
+ fuzz_time = <60>;
+ key_code_list = <116>;
+ key_num = <1>;
+ config = <0>;
+ };
+//$$ DEVICE="aml_remote"
+//$$ L2 PROP_STR = "status"
+//$$ L2 PROP_U32 = "ao_baseaddr"
+//$$ L2 PROP_STR = "pinctrl-names"
+//$$ L2 PROP_CHOICE "Remote_pin_match" = "pinctrl-0"
+ meson-remote{
+ compatible = "amlogic,aml_remote";
+ dev_name = "meson-remote";
+ status = "okay";
+ ao_baseaddr = <0xf3100480>;
+ pinctrl-names="default";
+ pinctrl-0=<&remote_pins>;
+ };
+
+
+/// ***************************************************************************************
+/// - Spi
+//$$ MODULE="Spi"
+//$$ DEVICE="spi"
+//$$ L2 PROP_STR = "status"
+//$$ L2 PROP_U32 2 = "reg"
+//$$ L2 PROP_STR = "pinctrl-names"
+//$$ L2 PROP_CHOICE "Spi_pin_0_match" = "pinctrl-0"
+//$$ L2 PROP_U32 = "nr-parts"
+//$$ L2 PROP_CHOICE "Spi_nr-part-0_match" = "nr-part-0"
+//$$ L2 PROP_CHOICE "Spi_nr-part-1_match" = "nr-part-1"
+ spi@cc000000{
+ compatible = "amlogic,apollo_spi_nor";
+ status = "ok";
+ reg = <0xcc000000 0x04000000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&aml_spi_nor_pins>;
+
+ nr-parts = <2>;
+ nr-part-0 = <&bootloader>;
+ nr-part-1 = <&ubootenv>;
+
+//$$ MATCH "Spi_nr-part-0_match" = <&bootloader>
+//$$ L2 PROP_STR = "name"
+//$$ L2 PROP_U32 = "offset"
+//$$ L2 PROP_U32 = "size"
+ bootloader:bootloader{
+ name = "bootloader";
+ offset = <0>;
+ size = <0x100000>;
+ };
+
+//$$ MATCH "Spi_nr-part-1_match" = <&ubootenv>
+//$$ L2 PROP_STR = "name"
+//$$ L2 PROP_U32 = "offset"
+//$$ L2 PROP_U32 = "size"
+ ubootenv:ubootenv{
+ name = "ubootenv";
+ offset = <0x100000>;
+ size = <0x8000>;
+ };
+ };
+
+/// ***************************************************************************************
+/// - Nand
+//$$ MODULE="Nand"
//$$ DEVICE="aml_nand"
//$$ L2 PROP_STR = "status"
//$$ L3 PROP_U32 2 ="reg"
@@ -765,7 +755,7 @@
//$$ L3 PROP_STR 2 ="plat-names"
//$$ L2 PROP_U32 = "plat-num"
//$$ L2 PROP_CHOICE "plat-part-0_match" = "plat-part-0"
-//$$ L2 PROP_CHOICE "plat-part-1_match" = "plat-part-1"
+// L2 PROP_CHOICE "plat-part-1_match" = "plat-part-1"
nand{
compatible = "amlogic,aml_nand";
dev_name = "nand";
@@ -779,34 +769,11 @@
&nand_ce0 &nand_ce1
&nand_ce2 &nand_ce3>;
device_id = <0>;
- plat-names = "bootloader","nandnormal";
- plat-num = <2>;
- plat-part-0 = <&bootload>;
- plat-part-1 = <&normal>;
-
-//$$ MATCH "plat-part-0_match" = <&bootload>
-//$$ L2 PROP_STR = "enable_pad"
-//$$ L2 PROP_STR = "busy_pad"
-//$$ L2 PROP_STR = "timming_mode"
-//$$ L2 PROP_STR = "bch_mode"
-//$$ L2 PROP_U32 = "t_rea"
-//$$ L2 PROP_U32 = "t_rhoh"
-//$$ L2 PROP_U32 = "chip_num"
-//$$ L2 PROP_U32 = "part_num"
-//$$ L2 PROP_U32 = "rb_detect"
- bootload: bootload{
- enable_pad ="ce0";
- busy_pad = "rb0";
- timming_mode = "mode5";
- bch_mode = "bch60_1k";
- t_rea = <20>;
- t_rhoh = <15>;
- chip_num = <1>;
- part_num = <0>;
- rb_detect = <1>;
- };
+ plat-names = "nandnormal";
+ plat-num = <1>;
+ plat-part-0 = <&normal>;
-//$$ MATCH "plat-part-1_match" = <&normal>
+//$$ MATCH "plat-part-0_match" = <&normal>
//$$ L2 PROP_STR 2 = "enable_pad"
//$$ L2 PROP_STR 2 = "busy_pad"
//$$ L2 PROP_STR = "timming_mode"
@@ -826,7 +793,7 @@
t_rea = <20>;
t_rhoh = <15>;
chip_num = <2>;
- part_num = <7>;
+ part_num = <9>;
partition = <&nand_partitions>;
rb_detect = <1>;
};
@@ -856,547 +823,595 @@
offset=<0x0 0x4a800000>;
size=<0x0 0x20000000>;
};
- backup{
- offset=<0x0 0x6a800000>;
- size=<0x0 0x10000000>;
- };
+ backup{
+ offset=<0x0 0x6a800000>;
+ size=<0x0 0x10000000>;
+ };
userdata{
offset=<0xffffffff 0xffffffff>;
size=<0x0 0x0>;
};
};
};
-
-/// ***************************************************************************************
-/// - Efuse
-//$$ MODULE="Efuse"
-//$$ DEVICE="efuse"
-//$$ L2 PROP_STR = "status"
-//$$ L2 PROP_U32 2 = "plat-pos"
-//$$ L2 PROP_U32 = "plat-count"
-//$$ L2 PROP_U32 = "usid-min"
-//$$ L2 PROP_U32 = "usid-max"
- efuse{
- compatible = "amlogic,efuse";
- dev_name = "efuse";
- status = "okay";
- plat-pos = <0 454>;
- plat-count = <58>;
- usid-min = <8>; /*reserved*/
- usid-max = <31>; /*reserved*/
- };
-
-/// ***************************************************************************************
-/// - HDMI
-//$$ MODULE="HDMI"
-//$$ DEVICE="amhdmitx"
-//$$ L2 PROP_STR = "status"
-//$$ L2 PROP_CHOICE "HDMI_vend-data_match" = "vend-data"
-//$$ L2 PROP_CHOICE "HDMI_pwr-ctrl_match" = "pwr-ctrl"
- amhdmitx{
- compatible = "amlogic,amhdmitx";
- dev_name = "amhdmitx";
- status = "ok";
- vend-data = <&vend_data>;
- pwr-ctrl = <&pwr_ctrl>;
- phy-size = <3>;
- phy-data = <27 0x16 0x30 /* 480i/p 576i/p */
- 74 0x16 0x40 /* 720p 1080i */
- 148 0x16 0x40 /* 1080p */
- >;
-
-//$$ MATCH "HDMI_vend-data_match" = <&vend_data>
-//$$ L2 PROP_STR = "vendor_name"
-//$$ L2 PROP_U32 = "vendor_id"
-//$$ L2 PROP_STR = "product_desc"
-//$$ L2 PROP_STR = "cec_osd_string"
- vend_data: vend_data{
- vendor_name = "Amlogic"; /* Max Chars: 8 */
- vendor_id = <0x000000>; /* Refer to http://standards.ieee.org/develop/regauth/oui/oui.txt */
- product_desc = "MX MBox G18Ref"; /* Max Chars: 16 */
- cec_osd_string = "Amlogic MBox"; /* Max Chars: 14 */
- };
-
-//$$ MATCH "HDMI_pwr-ctrl_match" = <&pwr_ctrl>
-//$$ L2 PROP_STR = "pwr_5v_on"
-//$$ L2 PROP_STR 3 = "pwr_5v_off"
-//$$ L2 PROP_STR 3 = "pwr_3v3_on"
-//$$ L2 PROP_STR = "pwr_3v3_off"
-//$$ L2 PROP_STR = "pwr_hpll_vdd_on"
-//$$ L2 PROP_STR = "pwr_hpll_vdd_off"
- pwr_ctrl: pwr_ctrl{
- pwr_5v_on = "cpu","GPIOD_5","H";
- pwr_5v_off = "cpu","GPIOD_5","L";
- pwr_3v3_on = "";
- pwr_3v3_off = "";
- pwr_hpll_vdd_on = "";
- pwr_hpll_vdd_off = "";
- };
- };
-
-/// ***************************************************************************************
-/// - Securitykey
-//$$ MODULE="Securitykey"
- securitykey{
- compatible = "amlogic,aml_keys";
- };
-
-/// ***************************************************************************************
-/// - PowerManager
-//$$ MODULE="PowerManager"
-//$$ DEVICE="amvenc_avc"
-//$$ L2 PROP_STR = "status"
- aml_pm{
- compatible = "amlogic,pm";
- dev_name = "aml_pm";
- status = "okay";
- };
-
-/// ***************************************************************************************
-/// - Cpufreq
-//$$ MODULE="Cpufreq"
-//$$ DEVICE="cpufreq-meson"
-//$$ L2 PROP_STR = "status"
- cpufreq-meson{
- compatible = "amlogic,cpufreq-meson";
- status = "okay";
- };
-
-
-
-
-
-
-/// ***************************************************************************************
-/// - Ethernet
-//$$ MODULE="Ethernet"
-//$$ DEVICE="meson-eth"
-//$$ L2 PROP_STR = "status"
- meson-eth{
- compatible = "amlogic,meson-eth";
- dev_name = "meson-eth";
- status = "okay";
- ethbaseaddr = <0xf3610000>;
- interruptnum = <40>;
- };
-
-
-
-
-
-
-/// **************************************************************************************
-/// - GPIO
-//$$ MODULE="GPIO"
-//$$ DEVICE="m6-gpio"
- gpio:gpio{
- compatible = "amlogic,m6-gpio";
- dev_name = "gpio";
- #gpio-cells=<2>;
- };
-
-/// **************************************************************************************
-/// - Pinmux
-//$$ MODULE="Pinmux"
-//$$ DEVICE="pinmux-m6"
- pinmux{
- compatible = "amlogic,pinmux-m6";
- dev_name = "pinmux";
- #pinmux-cells=<2>;
-
-//$$ MATCH "uart_ao_pin_match" = "&ao_uart_pins"
-//$$ L2 PROP_U32 2 = "amlogic,setmask"
-//$$ L2 PROP_STR 2 = "amlogic,pins"
- ao_uart_pins:ao_uart{
- amlogic,setmask=<10 0x1800>;
- amlogic,pins="GPIOAO_0", "GPIOAO_1";
- };
-
-//$$ MATCH "uart_0_pin_match" = "&a_uart_pins"
-//$$ L2 PROP_U32 2 = "amlogic,setmask"
-//$$ L2 PROP_STR 2 = "amlogic,pins"
- a_uart_pins:a_uart{
- amlogic,setmask=<4 0x3c00>;
- amlogic,pins="GPIOX_13", "GPIOX_14", "GPIOX_15", "GPIOX_16";
- };
-
-//$$ MATCH "meson_vcck_dvfs_pin_0_match" = "&aml_pwm_pins"
-//$$ L2 PROP_U32 2 = "amlogic,setmask"
-//$$ L2 PROP_U32 2 = "amlogic,clrmask"
-//$$ L2 PROP_STR = "amlogic,pins"
- aml_pwm_pins:aml_pwm{
- amlogic,setmask=<2 0x4>;
- amlogic,clrmask=<1 0x20000000>;
- amlogic,pins="GPIOD_0";
- };
-
-//$$ MATCH "I2C_AO_pin_match" = "&ao_i2c_master"
-//$$ L2 PROP_U32 2 = "amlogic,setmask"
-//$$ L2 PROP_U32 2 = "amlogic,clrmask"
-//$$ L2 PROP_STR 2 = "amlogic,pins"
- ao_i2c_master:ao_i2c{
- amlogic,setmask=<10 0x60>;
- amlogic,clrmask=<10 0x1800006>;
- amlogic,pins="GPIOAO_4","GPIOAO_5";
- };
-
-//$$ MATCH "I2C_A_pin_match" = "&a_i2c_master"
-//$$ L2 PROP_U32 2 = "amlogic,setmask"
-//$$ L2 PROP_U32 2 = "amlogic,clrmask"
-//$$ L2 PROP_STR 2 = "amlogic,pins"
- a_i2c_master:a_i2c{
- amlogic,setmask=<5 0xc000000>;
- amlogic,clrmask=<5 0x3000000>;
- amlogic,pins="GPIOX_25","GPIOX_26";
- };
-
-//$$ MATCH "I2C_B_pin_match" = "&b_i2c_master"
-//$$ L2 PROP_U32 2 = "amlogic,setmask"
-//$$ L2 PROP_U32 2 = "amlogic,clrmask"
-//$$ L2 PROP_STR 2 = "amlogic,pins"
- b_i2c_master:b_i2c{
- amlogic,setmask=<5 0xc0000000>;
- amlogic,clrmask=<5 0x30000000>;
- amlogic,pins="GPIOX_27","GPIOX_28";
- };
-
-//$$ MATCH "Nand_pin_0_match" = "&nand_input_state"
-//$$ MATCH "Nand_pin_1_match" = "&nand_input_state"
-//$$ L2 PROP_STR 17 = "amlogic,pins"
-//$$ L2 PROP_U32 = "amlogic,enable-output"
- nand_input_state:nand_input{
- amlogic,pins = "BOOT_0","BOOT_1","BOOT_2","BOOT_3","BOOT_4",
- "BOOT_5","BOOT_6","BOOT_7","BOOT_12","BOOT_13",
- "BOOT_8","BOOT_9","BOOT_10","BOOT_11",
- "BOOT_14","BOOT_15","BOOT_16";
- amlogic,enable-output=<1>;
- };
-
-//$$ MATCH "Nand_pin_0_match" = "&conf_nand_state"
-//$$ MATCH "Nand_pin_1_match" = "&conf_nand_state"
-//$$ L2 PROP_STR 9 = "amlogic,pins"
-//$$ L2 PROP_U32 = "amlogic,pullup"
- conf_nand_state: conf_nand{
- amlogic,pins = "BOOT_0","BOOT_1","BOOT_2","BOOT_3","BOOT_4",
- "BOOT_5","BOOT_6","BOOT_7","BOOT_16";
- amlogic,pullup=<1>;
- };
-
-//$$ MATCH "Nand_pin_0_match" = "&nand_base"
-//$$ MATCH "Nand_pin_1_match" = "&nand_base"
-//$$ L2 PROP_U32 2 = "amlogic,setmask"
-//$$ L2 PROP_U32 4*2 = "amlogic,clrmask"
-//$$ L2 PROP_STR 13 = "amlogic,pins"
- nand_base: nand{
- amlogic,setmask=<2 0xc3c0000>;
- amlogic,clrmask=< 5 0xe
- 3 0x80000000
- 6 0x3c000000
- 4 0x70000000>;
- amlogic,pins = "BOOT_0","BOOT_1","BOOT_2","BOOT_3","BOOT_4",
- "BOOT_5","BOOT_6","BOOT_7","BOOT_12","BOOT_13",
- "BOOT_14","BOOT_15","BOOT_16";
- };
-
-//$$ MATCH "Nand_pin_0_match" = "&nand_ce0"
-//$$ MATCH "Nand_pin_1_match" = "&nand_ce0"
-//$$ L2 PROP_U32 2 = "amlogic,setmask"
-//$$ L2 PROP_STR = "amlogic,pins"
- nand_ce0: nand_ce0{
- amlogic,setmask=<2 0x2000000>;
- amlogic,pins = "BOOT_8";
- };
-
-//$$ MATCH "Nand_pin_0_match" = "&nand_ce1"
-//$$ MATCH "Nand_pin_1_match" = "&nand_ce1"
-//$$ L2 PROP_U32 2 = "amlogic,setmask"
-//$$ L2 PROP_STR = "amlogic,pins"
- nand_ce1: nand_ce1{
- amlogic,setmask=<2 0x1000000>;
- amlogic,pins = "BOOT_9";
- };
-
-//$$ MATCH "Nand_pin_1_match" = "&nand_ce2"
-//$$ L2 PROP_U32 2 = "amlogic,setmask"
-//$$ L2 PROP_STR = "amlogic,pins"
- nand_ce2: nand_ce2{
- amlogic,setmask=<2 0x800000>;
- amlogic,pins = "BOOT_10";
- };
-
-//$$ MATCH "Nand_pin_1_match" = "&nand_ce3"
-//$$ L2 PROP_U32 2 = "amlogic,setmask"
-//$$ L2 PROP_STR = "amlogic,pins"
- nand_ce3: nand_ce3{
- amlogic,setmask=<2 0x400000>;
- amlogic,pins = "BOOT_11";
- };
-
-//$$ MATCH "Nand_pin_0_match" = "&nand_rb0"
-//$$ L2 PROP_U32 2 = "amlogic,setmask"
-//$$ L2 PROP_U32 2 = "amlogic,clrmask"
-//$$ L2 PROP_STR = "amlogic,pins"
- nand_rb0: nand_rb0{
- amlogic,setmask=<2 0x20000>;
- amlogic,clrmask=<2 0x800000>;
- amlogic,pins = "BOOT_10";
- };
-
-//$$ MATCH "Nand_pin_0_match" = "&nand_rb1"
-//$$ L2 PROP_U32 2 = "amlogic,setmask"
-//$$ L2 PROP_U32 2 = "amlogic,clrmask"
-//$$ L2 PROP_STR = "amlogic,pins"
- nand_rb1: nand_rb1{
- amlogic,setmask=<2 0x10000>;
- amlogic,clrmask=<2 0x400000>;
- amlogic,pins = "BOOT_11";
- };
-
-
- sdio_all_pins:sdio_all_pins{
- amlogic,setmask=<8 0x0000003f>; /*sdio a*/
- amlogic,clrmask=<6 0x3f000000 /*sdio c*/
- 2 0x0000fc00 /*sdio b*/
- 5 0x00006c00>; /*sdhc a*/
- amlogic,pins = "GPIOX_0","GPIOX_1","GPIOX_2","GPIOX_3","GPIOX_8","GPIOX_9";
- amlogic,enable-output=<1>; /* 0:output, 1:input */
- amlogic,pullup=<0>;
- };
- sdio_clk_cmd_pins:sdio_clk_cmd_pins{
- amlogic,setmask=<8 0x00000003>; /*sdio a*/
- amlogic,clrmask=<6 0x3f000000 /*sdio c*/
- 2 0x0000fc00 /*sdio b*/
- 5 0x00006c00>; /*sdhc a*/
- amlogic,pins = "GPIOX_8","GPIOX_9";
- amlogic,enable-output=<1>; /* 0:output, 1:input */
- amlogic,pullup=<0>;
- };
- sd_all_pins:sd_all_pins{
- amlogic,setmask=<2 0x0000fc00>; /*sdio b*/
- amlogic,clrmask=<6 0x3f000000 /*sdio c*/
- 8 0x0000003f /*sdio a*/
- 2 0x000000f0>; /*sdhc b*/
- amlogic,pins = "CARD_0","CARD_1","CARD_2","CARD_3","CARD_4","CARD_5";
- amlogic,enable-output=<1>; /* 0:output, 1:input */
- amlogic,pullup=<0>;
- };
- sd_clk_cmd_pins:sd_clk_cmd_pins{
- amlogic,setmask=<2 0x00000c00>; /*sdio b*/
- amlogic,clrmask=<6 0x3f000000 /*sdio c*/
- 8 0x0000003f /*sdio a*/
- 2 0x000000f0>; /*sdhc b*/
- amlogic,pins = "CARD_4","CARD_5"; /* CARD_4:CLK, CARD_5:CMD */
- amlogic,enable-output=<1>; /* 0:output, 1:input */
- amlogic,pullup=<0>;
- };
- emmc_all_pins:emmc_all_pins{
- amlogic,setmask=<6 0x3f000000>; /*sdio c, */
- amlogic,clrmask=<2 0x04c3fc00 /*sdio b & nand*/
- 8 0x0000003f /*sdio a*/
- 4 0x6c000000 /*sdhc c*/
- 3 0x80000000>; /*I2C*/
- amlogic,pins = "BOOT_0","BOOT_1","BOOT_2","BOOT_3","BOOT_10","BOOT_11";
- amlogic,enable-output=<1>; /* 0:output, 1:input */
- amlogic,pullup=<0>;
- };
- emmc_clk_cmd_pins:emmc_clk_cmd_pins{
- amlogic,setmask=<6 0x03000000>; /*bit[24-25] */
- amlogic,clrmask=<2 0x04c3fc00 /*sdio b & nand*/
- 8 0x0000003f /*sdio a*/
- 4 0x6c000000 /*sdhc c*/
- 3 0x80000000>; /*I2C*/
- amlogic,pins = "BOOT_10","BOOT_11";
- amlogic,enable-output=<1>; /* 0:output, 1:input */
- amlogic,pullup=<0>;
- };
-
-//$$ MATCH "Remote_pin_match" = "&remote_pins"
-//$$ L2 PROP_U32 2 = "amlogic,setmask"
-//$$ L2 PROP_STR= "amlogic,pins"
- remote_pins:remote_pin{
- amlogic,setmask=<10 0x1>;
- amlogic,pins="GPIOAO_7";
- };
-
-//$$ MATCH "wm8960_pin_match" = "&aml_i2s_pins"
-//$$ L2 PROP_U32 2 = "amlogic,setmask"
-//$$ L2 PROP_U32 2 = "amlogic,clrmask"
-//$$ L2 PROP_STR 4 = "amlogic,pins"
- aml_i2s_pins: aml_i2s_pins{
- amlogic,setmask=<9 0xAB0>;
- amlogic,clrmask=<9 0x440>;
- amlogic,pins = "GPIOE_0","GPIOE_1","GPIOE_2","GPIOE_3";
- };
-
-//$$ MATCH "wm8960_pin_match" = "&config_aml_hp_det_pins"
-//$$ L2 PROP_STR= "amlogic,pins"
-//$$ L2 PROP_U32 = "amlogic,pullup"
- config_aml_hp_det_pins: config_aml_hp_det_pins{
- amlogic,pins = "GPIOA_19";
- amlogic,pullup=<1>;
- };
-
-//$$ MATCH "dummy_codec_audio_0_pin_match" = "&aml_dummy_codec_pins"
-//$$ L2 PROP_U32 2*2 = "amlogic,setmask"
-//$$ L2 PROP_U32 2 = "amlogic,clrmask"
-//$$ L2 PROP_STR 5 = "amlogic,pins"
- aml_dummy_codec_pins: aml_dummy_codec_pins{
- amlogic,setmask=<9 0x2B0
- 3 0x1000000>;
- amlogic,clrmask=<9 0x380c4e>;
- amlogic,pins = "GPIOE_1","GPIOE_2","GPIOE_3","GPIOE_4","GPIOC_9";
- };
-//$$ MATCH "Bl_pin_0_match" = "&lcd_backlight_pins"
-//$$ L2 PROP_U32 2 = "amlogic,setmask"
-//$$ L2 PROP_U32 2 = "amlogic,clrmask"
-//$$ L2 PROP_STR = "amlogic,pins"
- lcd_backlight_pins:lcd_backlight{
- amlogic,setmask=<2 0x8>;
- amlogic,clrmask=<1 0x10000000>;
- amlogic,pins = "GPIOD_1";
- };
- lcd_ttl_hvsync_pins_on:lcd_ttl_hvsync_on{
- amlogic,setmask=<1 0xc0000>;
- amlogic,clrmask=<0 0xc00000>;
- amlogic,pins = "GPIOD_2","GPIOD_3";
- };
- lcd_ttl_hvsync_pins_off:lcd_ttl_hvsync_off{
- amlogic,clrmask=<0 0xc00000 1 0xc0000>;
- amlogic,pins = "GPIOD_2","GPIOD_3";
- amlogic,enable-output=<1>;
- };
- lcd_ttl_de_pins_on:lcd_ttl_de_on{
- amlogic,setmask=<1 0x20000>;
- amlogic,clrmask=<0 0x1000000>;
- amlogic,pins = "GPIOD_4";
- };
- lcd_ttl_de_pins_off:lcd_ttl_de_off{
- amlogic,clrmask=<0 0x1000000 1 0x20000>;
- amlogic,pins = "GPIOD_4";
- amlogic,enable-output=<1>;
- };
- lcd_ttl_clk_pins_on:lcd_ttl_clk_on{
- amlogic,setmask=<1 0x4000>;
- amlogic,clrmask=<0 0x8000000 1 0x3800>;
- amlogic,pins = "GPIOD_7";
- };
- lcd_ttl_clk_pins_off:lcd_ttl_clk_off{
- amlogic,clrmask=<0 0x8000000 1 0x7800>;
- amlogic,pins = "GPIOD_7";
- amlogic,enable-output=<1>;
- };
- lcd_ttl_rgb_8bit_pins_on:lcd_ttl_rgb_8bit_on{
- amlogic,setmask=<0 0x3f>;
- amlogic,clrmask=<5 0xff8000>;
- amlogic,pins = "GPIOB_0","GPIOB_1","GPIOB_2","GPIOB_3","GPIOB_4","GPIOB_5","GPIOB_6","GPIOB_7", //R0~R7
- "GPIOB_8","GPIOB_9","GPIOB_10","GPIOB_11","GPIOB_12","GPIOB_13","GPIOB_14","GPIOB_15", //G0~G7
- "GPIOB_16","GPIOB_17","GPIOB_18","GPIOB_19","GPIOB_20","GPIOB_21","GPIOB_22","GPIOB_23";//B0~B7
- };
- lcd_ttl_rgb_8bit_pins_off:lcd_ttl_rgb_8bit_off{
- amlogic,clrmask=<0 0x3f 5 0xff8000>;
- amlogic,pins = "GPIOB_0","GPIOB_1","GPIOB_2","GPIOB_3","GPIOB_4","GPIOB_5","GPIOB_6","GPIOB_7", //R0~R7
- "GPIOB_8","GPIOB_9","GPIOB_10","GPIOB_11","GPIOB_12","GPIOB_13","GPIOB_14","GPIOB_15", //G0~G7
- "GPIOB_16","GPIOB_17","GPIOB_18","GPIOB_19","GPIOB_20","GPIOB_21","GPIOB_22","GPIOB_23";//B0~B7
- amlogic,enable-output=<1>;
- };
- lcd_ttl_rgb_6bit_pins_on:lcd_ttl_rgb_6bit_on{
- amlogic,setmask=<0 0x15>;
- amlogic,clrmask=<5 0xf98000>;
- amlogic,pins = "GPIOB_2","GPIOB_3","GPIOB_4","GPIOB_5","GPIOB_6","GPIOB_7", //R2~R7
- "GPIOB_10","GPIOB_11","GPIOB_12","GPIOB_13","GPIOB_14","GPIOB_15", //G2~G7
- "GPIOB_18","GPIOB_19","GPIOB_20","GPIOB_21","GPIOB_22","GPIOB_23"; //B2~B7
- };
- lcd_ttl_rgb_6bit_pins_off:lcd_ttl_rgb_6bit_off{
- amlogic,clrmask=<0 0x15 5 0xf98000>;
- amlogic,pins = "GPIOB_2","GPIOB_3","GPIOB_4","GPIOB_5","GPIOB_6","GPIOB_7", //R2~R7
- "GPIOB_10","GPIOB_11","GPIOB_12","GPIOB_13","GPIOB_14","GPIOB_15", //G2~G7
- "GPIOB_18","GPIOB_19","GPIOB_20","GPIOB_21","GPIOB_22","GPIOB_23"; //B2~B7
- amlogic,enable-output=<1>;
- };
-
-//$$ MATCH "Camera_pin_match" = "&aml_cam_pins"
-//$$ L2 PROP_U32 2 = "amlogic,setmask"
-//$$ L2 PROP_STR = "amlogic,pins"
- aml_cam_pins: aml_cam_pins{
- amlogic,setmask=<9 0x1000>;
- amlogic,pins = "GPIOZ_12";
- };
-
-//$$ MATCH "Spi_pin_0_match" = "&aml_spi_nor_pins"
-//$$ L2 PROP_U32 2 = "amlogic,setmask"
-//$$ L2 PROP_U32 2 = "amlogic,clrmask"
-//$$ L2 PROP_STR 4 = "amlogic,pins"
- aml_spi_nor_pins: aml_spi_nor_pins{
- amlogic,setmask=<5 0xf>;
- amlogic,clrmask=<2 0x380000>;
- amlogic,pins = "BOOT_12","BOOT_13","BOOT_14","BOOT_17";
- };
-//$$ MATCH "dvb_p_ts2_pins_match" = "&dvb_p_ts2_pins"
-//$$ L2 PROP_U32 2 = "amlogic,setmask"
-//$$ L2 PROP_U32 8 = "amlogic,clrmask"
-//$$ L2 PROP_STR 12 = "amlogic,pins"
- dvb_p_ts2_pins: dvb_p_ts2_pins {
- amlogic,setmask = <3 0xfc0>;
- amlogic,clrmask = <0 0xf
- 5 0xff00>;
- amlogic,pins = "GPIOB_0","GPIOB_1","GPIOB_2","GPIOB_3","GPIOB_4","GPIOB_5","GPIOB_6","GPIOB_7","GPIOB_8","GPIOB_9","GPIOB_10","GPIOB_11";
- };
-
-//$$ MATCH "dvb_s_ts2_pins_match" = "&dvb_s_ts2_pins"
-//$$ L2 PROP_U32 2 = "amlogic,setmask"
-//$$ L2 PROP_U32 6 = "amlogic,clrmask"
-//$$ L2 PROP_STR 5 = "amlogic,pins"
- dvb_s_ts2_pins: dvb_s_ts2_pins {
- amlogic,setmask = <3 0xfc0>;
- amlogic,clrmask = <0 0xf
- 5 0xff00>;
- amlogic,pins = "GPIOB_0","GPIOB_1","GPIOB_2","GPIOB_3","GPIOB_4","GPIOB_5","GPIOB_6","GPIOB_7","GPIOB_8","GPIOB_9","GPIOB_10","GPIOB_11";
- };
- };
-/// ***************************************************************************************
-/// - DVB
-//$$ MODULE="DVB"
-
-//$$ DEVICE="dvb"
-//$$ L2 PROP_STR = "ts2"
-//$$ L2 PROP_U32 = "ts2_invert"
-//$$ L2 PROP_U32 = "ts2_control"
-//$$ L2 PROP_STR 6 = "pinctrl-names"
-//$$ L2 PROP_CHOICE "dvb_p_ts2_pins_match" = "pinctrl-0"
-//$$ L2 PROP_CHOICE "dvb_s_ts2_pins_match" = "pinctrl-1"
- dvb{
- compatible = "amlogic,dvb";
- /*"parallel","serial","disable"*/
- ts2 = "parallel";
- ts2_control = <0>;
- ts2_invert = <0>;
- pinctrl-names = "p_ts2", "s_ts2";
- pinctrl-0 = <&dvb_p_ts2_pins>;
- pinctrl-1 = <&dvb_s_ts2_pins>;
- };
-
-//$$ DEVICE="dvbfe"
-//$$ L2 PROP_STR = "dtv_demod0"
-//$$ L2 PROP_U32 = "dtv_demod0_i2c_adap_id"
-//$$ L2 PROP_U32 = "dtv_demod0_i2c_addr"
-//$$ L2 PROP_U32 = "dtv_demod0_reset_value"
-//$$ L2 PROP_STR = "dtv_demod0_reset_gpio"
-//$$ L2 PROP_U32 = "fe0_dtv_demod"
-//$$ L2 PROP_U32 = "fe0_ts"
-//$$ L2 PROP_U32 = "fe0_dev"
-//$$ L2 PROP_STR 6 = "pinctrl-names"
-//$$ L2 PROP_CHOICE "dvb_fe_pins_match" = "pinctrl-0"
- dvbfe{
- compatible = "amlogic,dvbfe";
- dtv_demod0 = "Avl6211";
- dtv_demod0_i2c_adap_id = <1>;
- dtv_demod0_i2c_addr = <0xC0>;
- dtv_demod0_reset_value = <0>;
- dtv_demod0_reset_gpio = "GPIOD_8";
- fe0_dtv_demod = <0>;
- fe0_ts = <2>;
- fe0_dev = <0>;
-
- };
-}; /* end of / */
-
+
+/// ***************************************************************************************
+/// - Efuse
+//$$ MODULE="Efuse"
+//$$ DEVICE="efuse"
+//$$ L2 PROP_STR = "status"
+//$$ L2 PROP_U32 2 = "plat-pos"
+//$$ L2 PROP_U32 = "plat-count"
+//$$ L2 PROP_U32 = "usid-min"
+//$$ L2 PROP_U32 = "usid-max"
+ efuse{
+ compatible = "amlogic,efuse";
+ dev_name = "efuse";
+ status = "okay";
+ plat-pos = <0 454>;
+ plat-count = <58>;
+ usid-min = <8>; /*reserved*/
+ usid-max = <31>; /*reserved*/
+ };
+
+/// ***************************************************************************************
+/// - HDMI
+//$$ MODULE="HDMI"
+//$$ DEVICE="amhdmitx"
+//$$ L2 PROP_STR = "status"
+//$$ L2 PROP_CHOICE "HDMI_vend-data_match" = "vend-data"
+//$$ L2 PROP_CHOICE "HDMI_pwr-ctrl_match" = "pwr-ctrl"
+ amhdmitx{
+ compatible = "amlogic,amhdmitx";
+ dev_name = "amhdmitx";
+ status = "ok";
+ vend-data = <&vend_data>;
+ pwr-ctrl = <&pwr_ctrl>;
+ phy-size = <3>;
+ phy-data = <27 0x16 0x30 /* 480i/p 576i/p */
+ 74 0x16 0x40 /* 720p 1080i */
+ 148 0x16 0x40 /* 1080p */
+ >;
+
+//$$ MATCH "HDMI_vend-data_match" = <&vend_data>
+//$$ L2 PROP_STR = "vendor_name"
+//$$ L2 PROP_U32 = "vendor_id"
+//$$ L2 PROP_STR = "product_desc"
+//$$ L2 PROP_STR = "cec_osd_string"
+ vend_data: vend_data{
+ vendor_name = "Amlogic"; /* Max Chars: 8 */
+ vendor_id = <0x000000>; /* Refer to http://standards.ieee.org/develop/regauth/oui/oui.txt */
+ product_desc = "MX MBox G18Ref"; /* Max Chars: 16 */
+ cec_osd_string = "Amlogic MBox"; /* Max Chars: 14 */
+ };
+
+//$$ MATCH "HDMI_pwr-ctrl_match" = <&pwr_ctrl>
+//$$ L2 PROP_STR = "pwr_5v_on"
+//$$ L2 PROP_STR 3 = "pwr_5v_off"
+//$$ L2 PROP_STR 3 = "pwr_3v3_on"
+//$$ L2 PROP_STR = "pwr_3v3_off"
+//$$ L2 PROP_STR = "pwr_hpll_vdd_on"
+//$$ L2 PROP_STR = "pwr_hpll_vdd_off"
+ pwr_ctrl: pwr_ctrl{
+ pwr_5v_on = "cpu","GPIOD_5","H";
+ pwr_5v_off = "cpu","GPIOD_5","L";
+ pwr_3v3_on = "";
+ pwr_3v3_off = "";
+ pwr_hpll_vdd_on = "";
+ pwr_hpll_vdd_off = "";
+ };
+ };
+
+/// ***************************************************************************************
+/// - Securitykey
+//$$ MODULE="Securitykey"
+ securitykey{
+ compatible = "amlogic,aml_keys";
+ };
+
+/// ***************************************************************************************
+/// - PowerManager
+//$$ MODULE="PowerManager"
+//$$ DEVICE="amvenc_avc"
+//$$ L2 PROP_STR = "status"
+ aml_pm{
+ compatible = "amlogic,pm";
+ dev_name = "aml_pm";
+ status = "okay";
+ };
+
+/// ***************************************************************************************
+/// - Cpufreq
+//$$ MODULE="Cpufreq"
+//$$ DEVICE="cpufreq-meson"
+//$$ L2 PROP_STR = "status"
+ cpufreq-meson{
+ compatible = "amlogic,cpufreq-meson";
+ status = "okay";
+ };
+
+
+
+
+
+
+/// ***************************************************************************************
+/// - Ethernet
+//$$ MODULE="Ethernet"
+//$$ DEVICE="meson-eth"
+//$$ L2 PROP_STR = "status"
+ meson-eth{
+ compatible = "amlogic,meson-eth";
+ dev_name = "meson-eth";
+ status = "okay";
+ ethbaseaddr = <0xf3610000>;
+ interruptnum = <40>;
+ };
+
+
+/// **************************************************************************************
+/// - Smartcard
+ smartcard{
+ compatible = "amlogic,smartcard";
+ smc_reset_level = <1>;
+ smc_reset = "GPIOX_31";
+ pinctrl-names = "default";
+ pinctrl-0 = <&smc_pins>;
+ };
+
+
+
+
+/// **************************************************************************************
+/// - GPIO
+//$$ MODULE="GPIO"
+//$$ DEVICE="m6-gpio"
+ gpio:gpio{
+ compatible = "amlogic,m6-gpio";
+ dev_name = "gpio";
+ #gpio-cells=<2>;
+ };
+
+/// **************************************************************************************
+/// - Pinmux
+//$$ MODULE="Pinmux"
+//$$ DEVICE="pinmux-m6"
+ pinmux{
+ compatible = "amlogic,pinmux-m6";
+ dev_name = "pinmux";
+ #pinmux-cells=<2>;
+
+ smc_pins:smc_pins{
+ amlogic,setmask = <4 0x003c0000>;
+ amlogic,clrmask = <4 0x000003c0
+ 4 0x03c00000
+ 8 0x3f000000>;
+ amlogic,pins = "GPIOX_17","GPIOX_18","GPIOX_19","GPIOX_20";
+ };
+
+//$$ MATCH "uart_ao_pin_match" = "&ao_uart_pins"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_STR 2 = "amlogic,pins"
+ ao_uart_pins:ao_uart{
+ amlogic,setmask=<10 0x1800>;
+ amlogic,pins="GPIOAO_0", "GPIOAO_1";
+ };
+
+//$$ MATCH "uart_0_pin_match" = "&a_uart_pins"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_STR 2 = "amlogic,pins"
+ a_uart_pins:a_uart{
+ amlogic,setmask=<4 0x3c00>;
+ amlogic,pins="GPIOX_13", "GPIOX_14", "GPIOX_15", "GPIOX_16";
+ };
+
+//$$ MATCH "meson_vcck_dvfs_pin_0_match" = "&aml_pwm_pins"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_U32 2 = "amlogic,clrmask"
+//$$ L2 PROP_STR = "amlogic,pins"
+ aml_pwm_pins:aml_pwm{
+ amlogic,setmask=<2 0x4>;
+ amlogic,clrmask=<1 0x20000000>;
+ amlogic,pins="GPIOD_0";
+ };
+
+//$$ MATCH "I2C_AO_pin_match" = "&ao_i2c_master"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_U32 2 = "amlogic,clrmask"
+//$$ L2 PROP_STR 2 = "amlogic,pins"
+ ao_i2c_master:ao_i2c{
+ amlogic,setmask=<10 0x60>;
+ amlogic,clrmask=<10 0x1800006>;
+ amlogic,pins="GPIOAO_4","GPIOAO_5";
+ };
+
+//$$ MATCH "I2C_A_pin_match" = "&a_i2c_master"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_U32 2 = "amlogic,clrmask"
+//$$ L2 PROP_STR 2 = "amlogic,pins"
+ a_i2c_master:a_i2c{
+ amlogic,setmask=<5 0xc000000>;
+ amlogic,clrmask=<5 0x3000000>;
+ amlogic,pins="GPIOX_25","GPIOX_26";
+ };
+
+//$$ MATCH "I2C_B_pin_match" = "&b_i2c_master"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_U32 2 = "amlogic,clrmask"
+//$$ L2 PROP_STR 2 = "amlogic,pins"
+ b_i2c_master:b_i2c{
+ amlogic,setmask=<5 0xc0000000>;
+ amlogic,clrmask=<5 0x30000000>;
+ amlogic,pins="GPIOX_27","GPIOX_28";
+ };
+
+//$$ MATCH "Nand_pin_0_match" = "&nand_input_state"
+//$$ MATCH "Nand_pin_1_match" = "&nand_input_state"
+//$$ L2 PROP_STR 17 = "amlogic,pins"
+//$$ L2 PROP_U32 = "amlogic,enable-output"
+ nand_input_state:nand_input{
+ amlogic,pins = "BOOT_0","BOOT_1","BOOT_2","BOOT_3","BOOT_4",
+ "BOOT_5","BOOT_6","BOOT_7","BOOT_12","BOOT_13",
+ "BOOT_8","BOOT_9","BOOT_10","BOOT_11",
+ "BOOT_14","BOOT_15","BOOT_16";
+ amlogic,enable-output=<1>;
+ };
+
+//$$ MATCH "Nand_pin_0_match" = "&conf_nand_state"
+//$$ MATCH "Nand_pin_1_match" = "&conf_nand_state"
+//$$ L2 PROP_STR 9 = "amlogic,pins"
+//$$ L2 PROP_U32 = "amlogic,pullup"
+ conf_nand_state: conf_nand{
+ amlogic,pins = "BOOT_0","BOOT_1","BOOT_2","BOOT_3","BOOT_4",
+ "BOOT_5","BOOT_6","BOOT_7","BOOT_16";
+ amlogic,pullup=<1>;
+ };
+
+//$$ MATCH "Nand_pin_0_match" = "&nand_base"
+//$$ MATCH "Nand_pin_1_match" = "&nand_base"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_U32 4*2 = "amlogic,clrmask"
+//$$ L2 PROP_STR 13 = "amlogic,pins"
+ nand_base: nand{
+ amlogic,setmask=<2 0xc3c0000>;
+ amlogic,clrmask=< 5 0xe
+ 3 0x80000000
+ 6 0x3c000000
+ 4 0x70000000>;
+ amlogic,pins = "BOOT_0","BOOT_1","BOOT_2","BOOT_3","BOOT_4",
+ "BOOT_5","BOOT_6","BOOT_7","BOOT_12","BOOT_13",
+ "BOOT_14","BOOT_15","BOOT_16";
+ };
+
+//$$ MATCH "Nand_pin_0_match" = "&nand_ce0"
+//$$ MATCH "Nand_pin_1_match" = "&nand_ce0"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_STR = "amlogic,pins"
+ nand_ce0: nand_ce0{
+ amlogic,setmask=<2 0x2000000>;
+ amlogic,pins = "BOOT_8";
+ };
+
+//$$ MATCH "Nand_pin_0_match" = "&nand_ce1"
+//$$ MATCH "Nand_pin_1_match" = "&nand_ce1"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_STR = "amlogic,pins"
+ nand_ce1: nand_ce1{
+ amlogic,setmask=<2 0x1000000>;
+ amlogic,pins = "BOOT_9";
+ };
+
+//$$ MATCH "Nand_pin_1_match" = "&nand_ce2"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_STR = "amlogic,pins"
+ nand_ce2: nand_ce2{
+ amlogic,setmask=<2 0x800000>;
+ amlogic,pins = "BOOT_10";
+ };
+
+//$$ MATCH "Nand_pin_1_match" = "&nand_ce3"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_STR = "amlogic,pins"
+ nand_ce3: nand_ce3{
+ amlogic,setmask=<2 0x400000>;
+ amlogic,pins = "BOOT_11";
+ };
+
+//$$ MATCH "Nand_pin_0_match" = "&nand_rb0"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_U32 2 = "amlogic,clrmask"
+//$$ L2 PROP_STR = "amlogic,pins"
+ nand_rb0: nand_rb0{
+ amlogic,setmask=<2 0x20000>;
+ amlogic,clrmask=<2 0x800000>;
+ amlogic,pins = "BOOT_10";
+ };
+
+//$$ MATCH "Nand_pin_0_match" = "&nand_rb1"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_U32 2 = "amlogic,clrmask"
+//$$ L2 PROP_STR = "amlogic,pins"
+ nand_rb1: nand_rb1{
+ amlogic,setmask=<2 0x10000>;
+ amlogic,clrmask=<2 0x400000>;
+ amlogic,pins = "BOOT_11";
+ };
+
+
+ sdio_all_pins:sdio_all_pins{
+ amlogic,setmask=<8 0x0000003f>; /*sdio a*/
+ amlogic,clrmask=<6 0x3f000000 /*sdio c*/
+ 2 0x0000fc00 /*sdio b*/
+ 5 0x00006c00>; /*sdhc a*/
+ amlogic,pins = "GPIOX_0","GPIOX_1","GPIOX_2","GPIOX_3","GPIOX_8","GPIOX_9";
+ amlogic,enable-output=<1>; /* 0:output, 1:input */
+ amlogic,pullup=<0>;
+ };
+ sdio_clk_cmd_pins:sdio_clk_cmd_pins{
+ amlogic,setmask=<8 0x00000003>; /*sdio a*/
+ amlogic,clrmask=<6 0x3f000000 /*sdio c*/
+ 2 0x0000fc00 /*sdio b*/
+ 5 0x00006c00>; /*sdhc a*/
+ amlogic,pins = "GPIOX_8","GPIOX_9";
+ amlogic,enable-output=<1>; /* 0:output, 1:input */
+ amlogic,pullup=<0>;
+ };
+ sd_all_pins:sd_all_pins{
+ amlogic,setmask=<2 0x0000fc00>; /*sdio b*/
+ amlogic,clrmask=<6 0x3f000000 /*sdio c*/
+ 8 0x0000003f /*sdio a*/
+ 2 0x000000f0>; /*sdhc b*/
+ amlogic,pins = "CARD_0","CARD_1","CARD_2","CARD_3","CARD_4","CARD_5";
+ amlogic,enable-output=<1>; /* 0:output, 1:input */
+ amlogic,pullup=<0>;
+ };
+ sd_clk_cmd_pins:sd_clk_cmd_pins{
+ amlogic,setmask=<2 0x00000c00>; /*sdio b*/
+ amlogic,clrmask=<6 0x3f000000 /*sdio c*/
+ 8 0x0000003f /*sdio a*/
+ 2 0x000000f0>; /*sdhc b*/
+ amlogic,pins = "CARD_4","CARD_5"; /* CARD_4:CLK, CARD_5:CMD */
+ amlogic,enable-output=<1>; /* 0:output, 1:input */
+ amlogic,pullup=<0>;
+ };
+ emmc_all_pins:emmc_all_pins{
+ amlogic,setmask=<6 0x3f000000>; /*sdio c, */
+ amlogic,clrmask=<2 0x04c3fc00 /*sdio b & nand*/
+ 8 0x0000003f /*sdio a*/
+ 4 0x6c000000 /*sdhc c*/
+ 3 0x80000000>; /*I2C*/
+ amlogic,pins = "BOOT_0","BOOT_1","BOOT_2","BOOT_3","BOOT_10","BOOT_11";
+ amlogic,enable-output=<1>; /* 0:output, 1:input */
+ amlogic,pullup=<0>;
+ };
+ emmc_clk_cmd_pins:emmc_clk_cmd_pins{
+ amlogic,setmask=<6 0x03000000>; /*bit[24-25] */
+ amlogic,clrmask=<2 0x04c3fc00 /*sdio b & nand*/
+ 8 0x0000003f /*sdio a*/
+ 4 0x6c000000 /*sdhc c*/
+ 3 0x80000000>; /*I2C*/
+ amlogic,pins = "BOOT_10","BOOT_11";
+ amlogic,enable-output=<1>; /* 0:output, 1:input */
+ amlogic,pullup=<0>;
+ };
+
+//$$ MATCH "Remote_pin_match" = "&remote_pins"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_STR= "amlogic,pins"
+ remote_pins:remote_pin{
+ amlogic,setmask=<10 0x1>;
+ amlogic,pins="GPIOAO_7";
+ };
+
+//$$ MATCH "wm8960_pin_match" = "&aml_i2s_pins"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_U32 2 = "amlogic,clrmask"
+//$$ L2 PROP_STR 4 = "amlogic,pins"
+ aml_i2s_pins: aml_i2s_pins{
+ amlogic,setmask=<9 0xAB0>;
+ amlogic,clrmask=<9 0x440>;
+ amlogic,pins = "GPIOE_0","GPIOE_1","GPIOE_2","GPIOE_3";
+ };
+
+//$$ MATCH "wm8960_pin_match" = "&config_aml_hp_det_pins"
+//$$ L2 PROP_STR= "amlogic,pins"
+//$$ L2 PROP_U32 = "amlogic,pullup"
+ config_aml_hp_det_pins: config_aml_hp_det_pins{
+ amlogic,pins = "GPIOA_19";
+ amlogic,pullup=<1>;
+ };
+
+//$$ MATCH "dummy_codec_audio_0_pin_match" = "&aml_dummy_codec_pins"
+//$$ L2 PROP_U32 2*2 = "amlogic,setmask"
+//$$ L2 PROP_U32 2 = "amlogic,clrmask"
+//$$ L2 PROP_STR 5 = "amlogic,pins"
+ aml_dummy_codec_pins: aml_dummy_codec_pins{
+ amlogic,setmask=<9 0x2B0
+ 3 0x1000000>;
+ amlogic,clrmask=<9 0x380c4e>;
+ amlogic,pins = "GPIOE_1","GPIOE_2","GPIOE_3","GPIOE_4","GPIOC_9";
+ };
+//$$ MATCH "Bl_pin_0_match" = "&lcd_backlight_pins"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_U32 2 = "amlogic,clrmask"
+//$$ L2 PROP_STR = "amlogic,pins"
+ lcd_backlight_pins:lcd_backlight{
+ amlogic,setmask=<2 0x8>;
+ amlogic,clrmask=<1 0x10000000>;
+ amlogic,pins = "GPIOD_1";
+ };
+ lcd_ttl_hvsync_pins_on:lcd_ttl_hvsync_on{
+ amlogic,setmask=<1 0xc0000>;
+ amlogic,clrmask=<0 0xc00000>;
+ amlogic,pins = "GPIOD_2","GPIOD_3";
+ };
+ lcd_ttl_hvsync_pins_off:lcd_ttl_hvsync_off{
+ amlogic,clrmask=<0 0xc00000 1 0xc0000>;
+ amlogic,pins = "GPIOD_2","GPIOD_3";
+ amlogic,enable-output=<1>;
+ };
+ lcd_ttl_de_pins_on:lcd_ttl_de_on{
+ amlogic,setmask=<1 0x20000>;
+ amlogic,clrmask=<0 0x1000000>;
+ amlogic,pins = "GPIOD_4";
+ };
+ lcd_ttl_de_pins_off:lcd_ttl_de_off{
+ amlogic,clrmask=<0 0x1000000 1 0x20000>;
+ amlogic,pins = "GPIOD_4";
+ amlogic,enable-output=<1>;
+ };
+ lcd_ttl_clk_pins_on:lcd_ttl_clk_on{
+ amlogic,setmask=<1 0x4000>;
+ amlogic,clrmask=<0 0x8000000 1 0x3800>;
+ amlogic,pins = "GPIOD_7";
+ };
+ lcd_ttl_clk_pins_off:lcd_ttl_clk_off{
+ amlogic,clrmask=<0 0x8000000 1 0x7800>;
+ amlogic,pins = "GPIOD_7";
+ amlogic,enable-output=<1>;
+ };
+ lcd_ttl_rgb_8bit_pins_on:lcd_ttl_rgb_8bit_on{
+ amlogic,setmask=<0 0x3f>;
+ amlogic,clrmask=<5 0xff8000>;
+ amlogic,pins = "GPIOB_0","GPIOB_1","GPIOB_2","GPIOB_3","GPIOB_4","GPIOB_5","GPIOB_6","GPIOB_7", //R0~R7
+ "GPIOB_8","GPIOB_9","GPIOB_10","GPIOB_11","GPIOB_12","GPIOB_13","GPIOB_14","GPIOB_15", //G0~G7
+ "GPIOB_16","GPIOB_17","GPIOB_18","GPIOB_19","GPIOB_20","GPIOB_21","GPIOB_22","GPIOB_23";//B0~B7
+ };
+ lcd_ttl_rgb_8bit_pins_off:lcd_ttl_rgb_8bit_off{
+ amlogic,clrmask=<0 0x3f 5 0xff8000>;
+ amlogic,pins = "GPIOB_0","GPIOB_1","GPIOB_2","GPIOB_3","GPIOB_4","GPIOB_5","GPIOB_6","GPIOB_7", //R0~R7
+ "GPIOB_8","GPIOB_9","GPIOB_10","GPIOB_11","GPIOB_12","GPIOB_13","GPIOB_14","GPIOB_15", //G0~G7
+ "GPIOB_16","GPIOB_17","GPIOB_18","GPIOB_19","GPIOB_20","GPIOB_21","GPIOB_22","GPIOB_23";//B0~B7
+ amlogic,enable-output=<1>;
+ };
+ lcd_ttl_rgb_6bit_pins_on:lcd_ttl_rgb_6bit_on{
+ amlogic,setmask=<0 0x15>;
+ amlogic,clrmask=<5 0xf98000>;
+ amlogic,pins = "GPIOB_2","GPIOB_3","GPIOB_4","GPIOB_5","GPIOB_6","GPIOB_7", //R2~R7
+ "GPIOB_10","GPIOB_11","GPIOB_12","GPIOB_13","GPIOB_14","GPIOB_15", //G2~G7
+ "GPIOB_18","GPIOB_19","GPIOB_20","GPIOB_21","GPIOB_22","GPIOB_23"; //B2~B7
+ };
+ lcd_ttl_rgb_6bit_pins_off:lcd_ttl_rgb_6bit_off{
+ amlogic,clrmask=<0 0x15 5 0xf98000>;
+ amlogic,pins = "GPIOB_2","GPIOB_3","GPIOB_4","GPIOB_5","GPIOB_6","GPIOB_7", //R2~R7
+ "GPIOB_10","GPIOB_11","GPIOB_12","GPIOB_13","GPIOB_14","GPIOB_15", //G2~G7
+ "GPIOB_18","GPIOB_19","GPIOB_20","GPIOB_21","GPIOB_22","GPIOB_23"; //B2~B7
+ amlogic,enable-output=<1>;
+ };
+
+//$$ MATCH "Camera_pin_match" = "&aml_cam_pins"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_STR = "amlogic,pins"
+ aml_cam_pins: aml_cam_pins{
+ amlogic,setmask=<9 0x1000>;
+ amlogic,pins = "GPIOZ_12";
+ };
+
+//$$ MATCH "Spi_pin_0_match" = "&aml_spi_nor_pins"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_U32 2 = "amlogic,clrmask"
+//$$ L2 PROP_STR 4 = "amlogic,pins"
+ aml_spi_nor_pins: aml_spi_nor_pins{
+ amlogic,setmask=<5 0xf>;
+ amlogic,clrmask=<2 0x380000>;
+ amlogic,pins = "BOOT_12","BOOT_13","BOOT_14","BOOT_17";
+ };
+//$$ MATCH "dvb_p_ts2_pins_match" = "&dvb_p_ts2_pins"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_U32 8 = "amlogic,clrmask"
+//$$ L2 PROP_STR 12 = "amlogic,pins"
+ dvb_p_ts2_pins: dvb_p_ts2_pins {
+ amlogic,setmask = <3 0xfff>;
+ amlogic,clrmask = <0 0xf 5 0xff00>;
+ amlogic,pins = "GPIOB_0","GPIOB_1","GPIOB_2","GPIOB_3","GPIOB_4","GPIOB_5","GPIOB_6","GPIOB_7","GPIOB_8","GPIOB_9","GPIOB_10","GPIOB_11";
+ };
+
+//$$ MATCH "dvb_s_ts2_pins_match" = "&dvb_s_ts2_pins"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_U32 6 = "amlogic,clrmask"
+//$$ L2 PROP_STR 5 = "amlogic,pins"
+ dvb_s_ts2_pins: dvb_s_ts2_pins {
+ amlogic,setmask = <3 0xfff>;
+ amlogic,clrmask = <0 0xf 5 0xff00>;
+ amlogic,pins = "GPIOB_0","GPIOB_1","GPIOB_2","GPIOB_3","GPIOB_4","GPIOB_5","GPIOB_6","GPIOB_7","GPIOB_8","GPIOB_9","GPIOB_10","GPIOB_11";
+ };
+
+//$$ MATCH "dvb_p_ts0_pins_match" = "&dvb_p_ts0_pins"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_U32 8 = "amlogic,clrmask"
+//$$ L2 PROP_STR 12 = "amlogic,pins"
+ dvb_p_ts0_pins: dvb_p_ts0_pins {
+ amlogic,setmask = <3 0xfff>;
+ amlogic,clrmask = <0 0x40 6 0xf80000>;
+ amlogic,pins = "GPIOA_0","GPIOA_1","GPIOA_2","GPIOA_3","GPIOA_4","GPIOA_5","GPIOA_6","GPIOA_7","GPIOA_8","GPIOA_9","GPIOA_10","GPIOA_11";
+ };
+
+//$$ MATCH "dvb_s_ts0_pins_match" = "&dvb_s_ts0_pins"
+//$$ L2 PROP_U32 2 = "amlogic,setmask"
+//$$ L2 PROP_U32 6 = "amlogic,clrmask"
+//$$ L2 PROP_STR 5 = "amlogic,pins"
+ dvb_s_ts0_pins: dvb_s_ts0_pins {
+ amlogic,setmask = <3 0xfff>;
+ amlogic,clrmask = <0 0x40 6 0xF80000>;
+ amlogic,pins = "GPIOA_0","GPIOA_1","GPIOA_2","GPIOA_3","GPIOA_4","GPIOA_5","GPIOA_6","GPIOA_7","GPIOA_8","GPIOA_9","GPIOA_10","GPIOA_11";
+ };
+ };
+/// ***************************************************************************************
+/// - DVB
+//$$ MODULE="DVB"
+
+//$$ DEVICE="dvb"
+//$$ L2 PROP_STR = "ts2"
+//$$ L2 PROP_U32 = "ts2_invert"
+//$$ L2 PROP_U32 = "ts2_control"
+//$$ L2 PROP_STR 6 = "pinctrl-names"
+//$$ L2 PROP_CHOICE "dvb_p_ts2_pins_match" = "pinctrl-0"
+//$$ L2 PROP_CHOICE "dvb_s_ts2_pins_match" = "pinctrl-1"
+ dvb{
+ compatible = "amlogic,dvb";
+ /*"parallel","serial","disable"*/
+ ts2 = "parallel";
+ ts2_control = <0>;
+ ts2_invert = <0>;
+ ts0 = "parallel";
+ ts0_control = <0>;
+ ts0_invert = <0>;
+ pinctrl-names = "p_ts0", "s_ts0","p_ts2", "s_ts2";
+ pinctrl-0 = <&dvb_p_ts0_pins>;
+ pinctrl-1 = <&dvb_s_ts0_pins>;
+ pinctrl-2 = <&dvb_p_ts2_pins>;
+ pinctrl-3 = <&dvb_s_ts2_pins>;
+
+ };
+
+//$$ DEVICE="dvbfe"
+//$$ L2 PROP_STR = "dtv_demod0"
+//$$ L2 PROP_U32 = "dtv_demod0_i2c_adap_id"
+//$$ L2 PROP_U32 = "dtv_demod0_i2c_addr"
+//$$ L2 PROP_U32 = "dtv_demod0_reset_value"
+//$$ L2 PROP_STR = "dtv_demod0_reset_gpio"
+//$$ L2 PROP_U32 = "fe0_dtv_demod"
+//$$ L2 PROP_U32 = "fe0_ts"
+//$$ L2 PROP_U32 = "fe0_dev"
+//$$ L2 PROP_STR 6 = "pinctrl-names"
+//$$ L2 PROP_CHOICE "dvb_fe_pins_match" = "pinctrl-0"
+ dvbfe{
+ compatible = "amlogic,dvbfe";
+ dtv_demod0 = "Avl6211_0";
+ dtv_demod0_i2c_adap_id = <1>;
+ dtv_demod0_i2c_addr = <0xC0>;
+ dtv_demod0_reset_value = <0>;
+ dtv_demod0_reset_gpio = "GPIOD_8";
+ fe0_dtv_demod = <0>;
+ fe0_ts = <2>;
+ fe0_dev = <0>;
+ dtv_demod1 = "Avl6211_1";
+ dtv_demod1_i2c_adap_id = <2>;
+ dtv_demod1_i2c_addr = <0xC0>;
+ dtv_demod1_reset_value = <0>;
+ dtv_demod1_reset_gpio = "GPIOD_8";
+ fe1_dtv_demod = <1>;
+ fe1_ts = <0>;
+ fe1_dev = <1>;
+ };
+}; /* end of / */
+
--- a/arch/arm/boot/dts/amlogic/meson6_g18.dtd 2015-01-12 00:19:11.729405484 +0100
+++ b/arch/arm/boot/dts/amlogic/meson6_g18.dtd 2015-01-12 00:23:29.396031497 +0100
@@ -1396,5 +1396,20 @@
fe1_ts = <0>;
fe1_dev = <1>;
};
+
+/// ***************************************************************************************
+/// - DISP&MM-A/V Amvideocap
+//$$ MODULE = "DISP&MM-Amvideocap"
+//$$ DEVICE="amvideocap"
+//$$ L2 PROP_STR = "status"
+//$$ L3 PROP_U32 4 ="reg"
+ amvideocap{
+ compatible = "amlogic,amvideocap";
+ dev_name = "amvideocap.0";
+ status = "okay";
+ reserve-memory = <0x00a00000>; // 1920 * 1088 * 4 = 8,355,840
+ reserve-iomap = "true";
+ };
+
}; /* end of / */