diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 6a33bdf1432d..2caae284ae4c 100755 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -305,9 +305,7 @@ zinstall uinstall install: vmlinux rm $(firstword $(wildcard $(srctree)/$(boot)/dts/amlogic/$(subst dtb,dts,$@) $(srctree)/$(CUSTOMER_DIR_NAME)/meson/dt/$(subst dtb,dts,$@))) dtbs: scripts - $(Q)$(MAKE) $(build)=$(subst $(wildcard $(srctree)//),,$(subst $(join /,$(subst dtb,dts,$@)),,$(firstword $(wildcard $(srctree)/$(boot)/dts/amlogic/$(subst dtb,dts,$@) $(srctree)/$(CUSTOMER_DIR_NAME)/meson/dt/$(subst dtb,dts,$@))))) \ - MACHINE=$(MACHINE) \ - dtbs + $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) dtbs zImage-dtb: vmlinux scripts dtbs $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@ diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index b83cc5083a2c..f787105db48e 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -209,6 +209,7 @@ dtb-$(CONFIG_ARCH_VT8500) += vt8500-bv07.dtb \ wm8650-mid.dtb \ wm8850-w70v2.dtb dtb-$(CONFIG_ARCH_ZYNQ) += zynq-zc702.dtb +dtb-$(CONFIG_MACH_MESON8B_ODROIDC) += meson8b_odroidc.dtb DTB_NAMES := $(subst $\",,$(CONFIG_BUILD_ARM_APPENDED_DTB_IMAGE_NAMES)) ifneq ($(DTB_NAMES),) diff --git a/arch/arm/boot/dts/amlogic/meson8b_odroidc.dtd b/arch/arm/boot/dts/amlogic/meson8b_odroidc.dtd deleted file mode 100644 index 7e44f15430dd..000000000000 --- a/arch/arm/boot/dts/amlogic/meson8b_odroidc.dtd +++ /dev/null @@ -1,1466 +0,0 @@ -/dts-v1/; -/// ***************************************************************************************\n -//$$ PROJECT="meson8b" -//$$ REMOVE 1 -void root_func(){ -//$$ ADD /{ - compatible = "AMLOGIC,8726_M8B"; - 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-a5"; - reg = <0x200>; - }; -//$$ DEVICE="cpu1" - cpu@1 { - device_type = "cpu"; - compatible = "arm,cortex-a5"; - reg = <0x1>; - }; -//$$ DEVICE="cpu2" - cpu@2 { - device_type = "cpu"; - compatible = "arm,cortex-a5"; - reg = <0x2>; - }; -//$$ DEVICE="cpu3" - cpu@3 { - device_type = "cpu"; - compatible = "arm,cortex-a5"; - reg = <0x3>; - }; - }; - -/// *************************************************************************************** -/// - Cache -//$$ MODULE="Cache" -//$$ DEVICE="cache" - cache-controller { - compatible = "arm,meson-pl310-cache"; - reg = <0xc4200000 0x1000>; - arm,data-latency = <3 3 3>; - arm,tag-latency = <2 2 2>; - arm,filter-ranges = <0x100000 0xc0000000>; - cache-unified; - cache-level = <2>; - aux-instruction_prefetch; - aux-data_prefetch; - aux-ns_lockdown; - aux-force_no_write_alloc; - aux-cache_replace_policy_round_robin; - aux-early_write_response; - aux-full_line_of_zero; - aux-ns_int_ctrl; - aux-share_override; - prefetch-double_line_fill; - prefetch-prefetch_drop; - prefetch-prefetch_offset = <7>; - }; - -/// *************************************************************************************** -/// - Memory -//$$ MODULE="Memory" -//$$ DEVICE="memory" -//$$ L2 PROP_U32 = "aml_reserved_start" -//$$ L2 PROP_U32 = "aml_reserved_end" -//$$ L2 PROP_U32 6 = "linux,usable-memory" - memory{ - device_type = "memory"; - aml_reserved_start = <0x06000000>; /**reserved memory start */ - aml_reserved_end = <0x05000000>;/**reserved memory end : dtb start for uboot*/ - phys_offset = <0x00200000>; - linux,total-memory = <0x3fe00000>; - #address-cells = <1>; - #size-cells = <1>; - - cma_0:region@0 { - region_name = "cma_0"; - reg = <0 0x02a00000>; - linux,contiguous-region; - }; - }; -/// *************************************************************************************** -/// - 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>; - }; - -/// *************************************************************************************** -/// - VPU -//$$ MODULE="VPU" -//$$ DEVICE="vpu" -//$$ L2 PROP_STR = "status" -//$$ L2 PROP_U32 = "clk_level" - vpu{ - compatible = "amlogic,vpu"; - dev_name = "vpu"; - status = "ok"; - clk_level = <3>; - /** 0: 106.25M 1: 127.5M 2: 159.375M - 3: 182.15M 4: 212.5M */ - }; - -/// ************************************************************************************** -/// - DISP&MM-FB -//$$ MODULE = "DISP&MM-FB" -//$$ DEVICE = "mesonfb" -//$$ L2 PROP_STR = "status" -//$$ L3 PROP_U32 4 ="reg" -//$$ L2 PROP_U32 = "vmode" -//$$ L2 PROP_U32 5 = "display_size_default" - mesonfb{ - compatible = "amlogic,mesonfb"; - dev_name = "mesonfb"; - status = "okay"; - reserve-memory = <0x01800000 0x00100000>; - reserve-iomap = "true"; - vmode = <3>; /**0:VMODE_720P 1:VMODE_LCD 2:VMODE_LVDS_1080P 3:VMODE_1080P*/ - scale_mode = <1>; /*0:default 1:new*/ - 4k2k_fb = <0>; - display_size_default = <1920 1080 1920 3240 32>; //1920*1080*4*3 = 0x17BB000 - }; - -//$$ DEVICE="deinterlace" -//$$ L2 PROP_STR = "status" -//$$ L2 PROP_U32 2 = "reg" - deinterlace{ - compatible = "amlogic,deinterlace"; - dev_name = "deinterlace"; - status = "ok"; - reserve-memory = <0x02100000>; //10x1920x1088x3/2=33M - }; - -/// *************************************************************************************** -/// - DISP&MM-A/V stream -//$$ MODULE = "DISP&MM-A/V stream" -//$$ DEVICE="mesonstream" -//$$ L2 PROP_STR = "status" -//$$ L3 PROP_U32 4 ="reg" - mesonstream{ - compatible = "amlogic,mesonstream"; - dev_name = "mesonstream.0"; - status = "okay"; - reserve-memory = <0x02000000>; // 32M - 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 = <0x04000000>; // 64M - reserve-iomap = "true"; - }; - -/// *************************************************************************************** -/// - DISP&MM-PostProcess -//$$ MODULE="DISP&MM-PostProcess" -//$$ DEVICE="ppmgr" -//$$ L2 PROP_STR = "status" -//$$ L3 PROP_U32 2 ="reg" - ppmgr{ - compatible = "amlogic,ppmgr"; - dev_name = "ppmgr"; - status = "okay"; - reserve-memory = <0x01000000>; // 16M - }; - -/// *************************************************************************************** -/// - DISP&MM-AVC Video Encoder -//$$ MODULE = "DISP&MM-AVC Video Encoder" -//$$ DEVICE="amvenc_avc" -//$$ L2 PROP_STR = "status" -//$$ L3 PROP_U32 2 ="reg" - amvenc_avc{ - compatible = "amlogic,amvenc_avc"; - dev_name = "amvenc_avc.0"; - status = "okay"; - linux,contiguous-region = <&cma_0>; - reserve-iomap = "true"; - }; - -/// *************************************************************************************** -/// - DISP&MM-BT656 -//$$ MODULE = "DISP&MM-BT656" -//$$ DEVICE="amvdec_656in" -//$$ L2 PROP_STR = "status" -//$$ L2 PROP_U32 2 = "reg" -// amvdec_656in{ -// compatible = "amlogic,amvdec_656in"; -// dev_name = "amvdec_656in"; -// status = "ok"; -// reg = <0x1e400000 0x00100000>; -// }; -// -/// *************************************************************************************** -/// - DISP&MM-VDIN -//$$ MODULE = "DISP&MM-VDIN" -//$$ DEVICE="vdin0" -//$$ L2 PROP_STR = "status" -//$$ L2 PROP_U32 2 = "reg" -//$$ L2 PROP_U32 = "irq" -//$$ L2 PROP_U32 = "vdin_id" -// vdin0{ -// compatible = "amlogic,vdin"; -// dev_name = "vdin0"; -// status = "ok"; -// reserve-memory = <0x04000000>; -// irq = <115>; -// vdin_id = <0>; -// }; - -//$$ DEVICE="vdin1" -//$$ L2 PROP_STR = "status" -//$$ L2 PROP_U32 2 = "reg" -//$$ L2 PROP_U32 = "irq" -//$$ L2 PROP_U32 = "vdin_id" -// vdin1{ -// compatible = "amlogic,vdin"; -// dev_name = "vdin1"; -// status = "ok"; -// reserve-memory = <0x01000000>; -// miracast_size = <1920 1080>;//1920x1080x2x4=17M -// reserve-iomap = "true"; -// irq = <117>; -// vdin_id = <1>; -// }; - -/// *************************************************************************************** -/// - DISP&MM-AMLVIDEO2 -//$$ MODULE = "DISP&MM-AMLVIDEO2" -//$$ DEVICE="amlvideo2" -//$$ L2 PROP_STR = "status" -//$$ L3 PROP_U32 2 ="reg" -// amlvideo2{ -// compatible = "amlogic,amlvideo2"; -// dev_name = "amlvideo2.0"; -// status = "okay"; -// reserve-memory = <0x01800000>; -// reserve-iomap = "true"; -// }; - -/// *************************************************************************************** -/// - DISP&MM-Video Input Manager -//$$ MODULE = "DISP&MM-Video Input Manager" -//$$ DEVICE="vm" -//$$ L2 PROP_STR = "status" -// vm{ -// compatible = "amlogic,vm"; -// dev_name = "vm.0"; -// status = "okay"; -// reserve-memory = <0x01800000>; -// reserve-iomap = "true"; -// }; - -/// *************************************************************************************** -/// - ION -//$$ MODULE="ION" -//$$ DEVICE="ion_dev" -//$$ L2 PROP_STR = "status" - ion_dev{ - compatible = "amlogic,ion_dev"; - dev_name = "ion_dev"; - status = "ok"; - share-memory-name = "ppmgr0"; - share-memory-offset = <0>; - share-memory-size = <0x01000000>; //16M - }; -/// *************************************************************************************** -/// - DISP&MM-Vout -//$$ MODULE = "DISP&MM-Vout" -//$$ DEVICE = "mesonvout" -//$$ L2 PROP_STR = "status" - mesonvout{ - compatible = "amlogic,mesonvout"; - dev_name = "mesonvout"; - status = "okay"; - }; - -/// *************************************************************************************** -/// - 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"; -// pinctrl-names = "default"; -// pinctrl-0 = <&a_uart_pins>; - }; - -//$$ DEVICE="uart_1" -//$$ L2 PROP_STR = "status" - uart_1{ - compatible = "amlogic,aml_uart"; - port_name = "uart_b"; - status = "okay"; - dev_name = "uart_1"; - pinctrl-names = "default"; - pinctrl-0 = <&b_uart_pins>; - }; - -//$$ 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"; - }; - -/// *************************************************************************************** -/// - 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_1bit_pins"; // "jtag_pin", "uartao_default"; - 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>; - pinctrl-6 = <&sd_1bit_pins>; - -//$$ 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{ - status = "okay"; - 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_ERASE", "MMC_CAP_HW_RESET"; // 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"; - card_type = <1>; /* 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="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_4"; - gpio_cd = "CARD_6"; - gpio_volsw = "GPIOAO_3"; - irq_in = <3>; - irq_out = <5>; - 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 */ - }; - }; - -/// *************************************************************************************** -/// - MMC -//$$ MODULE="MMC" -//$$ DEVICE="aml_sdhc" -//$$ L2 PROP_STR = "status" -//$$ L3 PROP_U32 2 ="reg" -//$$ L2 PROP_STR 6 = "pinctrl-names" -//$$ L2 PROP_CHOICE "sdhc_pin_0_match" = "pinctrl-0" -//$$ L2 PROP_CHOICE "sdhc_pin_1_match" = "pinctrl-1" -//$$ L2 PROP_CHOICE "sdhc_pin_2_match" = "pinctrl-2" -//$$ L2 PROP_CHOICE "sdhc_pin_3_match" = "pinctrl-3" -//$$ L2 PROP_CHOICE "sdhc_pin_4_match" = "pinctrl-4" -//$$ L2 PROP_CHOICE "sdjc_pin_5_match" = "pinctrl-5" -//$$ L2 PROP_CHOICE "sdhc_pin_6_match" = "pinctrl-6" - sdhc{ - compatible = "amlogic,aml_sdhc"; - dev_name = "aml_sdhc.0"; - status = "okay"; - reg = <0xc1108e00 0x3c>; - pinctrl-names = "sdhc_sd_clk_cmd_pins", "sdhc_sd_all_pins", "sdhc_emmc_clk_cmd_pins", "sdhc_emmc_all_pins", "sdhc_sdio_clk_cmd_pins", "sdhc_sdio_all_pins"; - pinctrl-0 = <&sdhc_sd_clk_cmd_pins>; - pinctrl-1 = <&sdhc_sd_all_pins>; - pinctrl-2 = <&sdhc_emmc_clk_cmd_pins>; - pinctrl-3 = <&sdhc_emmc_all_pins>; - pinctrl-4 = <&sdhc_sdio_clk_cmd_pins>; - pinctrl-5 = <&sdhc_sdio_all_pins>; - //pinctrl-6 = <&sd_1bit_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_STR = "gpio_volsw" -//$$ L2 PROP_U32 = "irq_in" -//$$ L2 PROP_U32 = "irq_out" -//$$ L2 PROP_U32 = "card_type" - sd{ - status = "okay"; - port = <4>; /**0:sdhc_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */ - pinname = "sd"; - ocr_avail = <0x00200080>; // 3.3:0x200000, 1.8+3.3:0x00200080 - caps = "MMC_CAP_4_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED","MMC_CAP_UHS_SDR12","MMC_CAP_UHS_SDR25","MMC_CAP_UHS_SDR50","MMC_CAP_UHS_SDR104"; - f_min = <300000>; - f_max = <100000000>; - max_req_size = <0x20000>; /**128KB*/ - gpio_dat3 = "CARD_4"; - //jtag_pin = "CARD_0"; - gpio_cd = "CARD_6"; - //gpio_ro = "GPIOZ_0"; - gpio_volsw = "GPIOAO_3"; - irq_in = <3>; - irq_out = <5>; - 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{ - status = "okay"; - port = <5>; /**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_8_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED", "MMC_CAP_NONREMOVABLE","MMC_CAP_ERASE", "MMC_CAP_HW_RESET"; // MMC_CAP_NEEDS_POLL -- for detect, MMC_CAP_NONREMOVABLE -- for eMMC/TSD - caps2 = "MMC_CAP2_HS200_1_8V_SDR"; - f_min = <300000>; - f_max = <150000000>; - max_req_size = <0x20000>; /**128KB*/ - gpio_dat3 = "BOOT_3"; - card_type = <1>; /* 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 -//$$ 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 = <100000>; - }; - -//$$ 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 = <100000>; - }; - -//$$ DEVICE="I2C_C" -//$$ L2 PROP_STR = "status" -//$$ L3 PROP_U32 2="reg" -//$$ L3 PROP_STR = "pinctrl-names" - i2c@c11087e0{ /*I2C-C*/ - compatible = "amlogic,aml_i2c"; - dev_name = "i2c-C"; - status = "ok"; - reg = <0xc11087e0 0x20>; - device_id = <3>; - pinctrl-names="default"; -// pinctrl-0=<&c_i2c_master>; - #address-cells = <1>; - #size-cells = <0>; - use_pio = <0>; - master_i2c_speed = <300000>; - }; - -//$$ DEVICE="I2C_D" -//$$ L2 PROP_STR = "status" -//$$ L3 PROP_U32 2="reg" -//$$ L3 PROP_STR = "pinctrl-names" -//$$ L2 PROP_CHOICE "I2C_D_pin_match" = "pinctrl-0" - i2c@c1108d20{ /*I2C-D*/ - compatible = "amlogic,aml_i2c"; - dev_name = "i2c-D"; - status = "ok"; - reg = <0xc1108d20 0x20>; - device_id = <4>; - pinctrl-names="default"; -// pinctrl-0=<&d_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 16*3 = "dvfs_table" - vcck_dvfs { - dvfs_id = <1>; /** must be value of (1 << n) */ - table_count = <12>; /** must be correct count for dvfs_table */ - change-frequent-only; - dvfs_table = < - /* NOTE: frequent in this table must be ascending order */ - /* frequent(Khz) min_uV max_uV */ - 96000 825000 825000 - 192000 825000 825000 - 312000 825000 825000 - 408000 825000 825000 - 504000 825000 825000 - 600000 825000 825000 - 720000 825000 825000 - 816000 850000 850000 - 1008000 875000 875000 - 1200000 925000 925000 - 1320000 1000000 1000000 - 1488000 1075000 1075000 - >; - }; - }; - -//$$ DEVICE="arm_pmu" -//$$ L2 PROP_STR = "status" -//$$ L2 PROP_U32 4*3 = "interrupts" - arm_pmu { - compatible = "arm,cortex-a9-pmu"; - status = "ok"; - interrupts = <0 137 0x04 - 0 138 0x04 - 0 153 0x04 - 0 154 0x04>; - }; - - -/// *************************************************************************************** -/// - 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*/ - gpio-hub-rst = "GPIOAO_4"; - 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_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 = "GPIOAO_5"; - gpio-work-mask = <1>; /**0: work on pulldown,1:work on pullup*/ - status = "okay"; - }; - }; - -/// *************************************************************************************** -/// - Audio -//$$ MODULE="Audio" -//$$ DEVICE="audio_i2s" -//$$ L2 PROP_STR = "status" - audio_platform{ - compatible = "amlogic,aml-i2s"; - dev_name = "aml-i2s.0"; - status = "okay"; - }; - -//$$ DEVICE="audio_i2s_dai" -//$$ L2 PROP_STR = "status" - audio_dai{ - compatible = "amlogic,aml-i2s-dai"; - dev_name = "aml-i2s-dai.0"; - status = "okay"; - }; - audio_spdif_dai{ - compatible = "amlogic,aml-spdif-dai"; - dev_name = "aml-spdif-dai.0"; - status = "okay"; - }; - - audio_spdif_codec{ - compatible = "amlogic,aml-spdif-codec"; - dev_name = "spdif-dit.0"; - pinctrl-names = "aml_audio_spdif"; - status = "okay"; - }; - -//$$ DEVICE="audio_pcm_dai" -//$$ L2 PROP_STR = "status" - audio_pcm_dai{ - compatible = "amlogic,aml-pcm-dai"; - dev_name = "aml-pcm-dai.0"; - status = "okay"; - }; - -//$$ DEVICE="audio_pcm" -//$$ L2 PROP_STR = "status" - audio_pcm{ - compatible = "amlogic,aml-pcm"; - dev_name = "aml-pcm.0"; - status = "okay"; - }; - -//$$ DEVICE="dummy_codec" -//$$ L2 PROP_STR = "status" - dummy_codec{ - compatible = "amlogic,aml_dummy_codec"; - dev_name = "dummy_codec.0"; - status = "okay"; - }; - - aml_audio_codec{ - compatible = "amlogic,audio_codec"; - dummy:dummy{ - codec_name = "dummy_codec"; - status = "okay"; - }; - }; - -//$$ DEVICE="aml_m8_sound_card" -//$$ L2 PROP_STR = "aml,sound_card" -//$$ L2 PROP_STR = "aml,codec_dai" -//$$ L2 PROP_STR 6*2 = "aml,audio-routing" -//$$ L2 PROP_STR = "mute_gpio" -//$$ L2 PROP_U32 5 = "hp_paraments" -//$$ L2 PROP_STR = "pinctrl-names" -//$$ L2 PROP_CHOICE "Audio_pin_0_match" = "pinctrl-0" -//$$ L2 PROP_STR = "status" - aml_m8_sound_card{ - compatible = "sound_card, aml_snd_m8"; - aml,sound_card = "AML-M8AUDIO"; - aml,codec_dai = "AML-M8","dummy_codec"; - aml,audio-routing-amlm8 = - "Ext Spk","LINEOUTL", - "Ext Spk","LINEOUTR", - "HP","HP_L", - "HP","HP_R"; - aml,audio-routing-dummy= - "Ext Spk","LOUTL", - "Ext Spk","LOUTR"; - sleep_time = <130>; - pinctrl-names = "aml_snd_m8"; - pinctrl-0 = <&audio_pins>; - status = "okay"; - }; - -/// *************************************************************************************** -/// - Input -//$$ MODULE="Input" -//$$ DEVICE="saradc" -//$$ L2 PROP_STR = "status" - saradc{ - compatible = "amlogic,saradc"; - status = "okay"; - }; - -//$$ DEVICE="meson-remote" -//$$ L2 PROP_STR = "status" -//$$ L2 PROP_U32 = "ao_baseaddr" -//$$ L2 PROP_STR = "pinctrl-names" -//$$ L2 PROP_CHOICE "remote_pin_0_match" = "pinctrl-0" - meson-remote{ - compatible = "amlogic,aml_remote"; - dev_name = "meson-remote"; - status = "ok"; - 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 = <0x10000>; - }; - }; - - -/// *************************************************************************************** -/// - 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*/ - }; - -/// *************************************************************************************** -/// - Thermal -//$$ MODULE="Thermal" -//$$ DEVICE="thermal" -//$$ L2 PROP_U32 3*3 = "trip_point" -//$$ L2 PROP_U32 = "#thermal-cells" -//$$ L2 PROP_U32 = "cpu_cali_a" -//$$ L2 PROP_U32 = "idle_interval" - thermal{ - compatible = "amlogic-thermal"; - #thermal-cells=<7>; - dev_name = "aml_thermal"; - trip_point=<70 1488001 1488001 511 511 3 2 - 80 1200001 1200001 435 435 2 2 - 90 800001 800001 328 328 1 1 - 110 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff>; - cpu_cali_a=<0>; - idle_interval=<1000>; - use_virtual_thermal; - freq_sample_period=<30>; - report_time=<1 10 30 60>; /* based on freq_sample_period */ - cpu_virtual=< - 500000 40 40 40 40 - 600000 45 55 60 65 - 800000 50 60 65 70 - 1000000 55 65 70 75 - 1200000 60 70 75 80 - 1350000 65 75 80 85 - >; - gpu_virtual=< - 183 40 40 40 40 - 251 40 45 50 55 - 319 50 60 65 70 - 426 55 65 70 75 - 511 60 70 75 80 - >; - }; - -/// *************************************************************************************** -/// - 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>; - -//$$ 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 = "M8 MBox SKTv1"; /* 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 = "pwr_5v_off" -//$$ L2 PROP_STR = "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 = ""; - pwr_5v_off = ""; - pwr_3v3_on = ""; - pwr_3v3_off = ""; - pwr_hpll_vdd_on = ""; - pwr_hpll_vdd_off = ""; - }; - }; - -/// *************************************************************************************** -/// - PowerManager -//$$ MODULE="PowerManager" -//$$ DEVICE="amvenc_avc" -//$$ L2 PROP_STR = "status" - aml_pm{ - compatible = "amlogic,pm-m8"; - dev_name = "aml_pm_m8"; - status = "okay"; - }; - -/// *************************************************************************************** -/// - Cpufreq -//$$ MODULE="Cpufreq" -//$$ DEVICE="cpufreq-meson" -//$$ L2 PROP_STR = "status" - cpufreq-meson{ - compatible = "amlogic,cpufreq-meson"; - status = "okay"; - }; - -// crypto_device{ -// compatible = "amlogic,crypto-device"; -// dev_name = "crypto_device"; -// }; - -/// ************************************************************************************** -/// - GPIO -//$$ MODULE="GPIO" -//$$ DEVICE="m8-gpio" - gpio:gpio{ - compatible = "amlogic,m8b-gpio"; - dev_name = "gpio"; - #gpio-cells=<2>; - }; - -/// ************************************************************************************** -/// - Pinmux -//$$ MODULE="Pinmux" -//$$ DEVICE="pinmux-m8" - pinmux{ - compatible = "amlogic,pinmux-m8b"; - 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 4 = "amlogic,pins" -// a_uart_pins:a_uart{ -// amlogic,setmask=<4 0x3c00>; -// amlogic,pins="GPIOX_12", "GPIOX_13", "GPIOX_14", "GPIOX_15"; -// }; - -//$$ MATCH "uart_1_pin_match" = "&b_uart_pins" -//$$ L2 PROP_U32 2 = "amlogic,setmask" -//$$ L2 PROP_STR 4 = "amlogic,pins" - b_uart_pins:b_uart{ - amlogic,setmask=<4 0x0300>; - amlogic,pins="GPIOX_16", "GPIOX_17"; - }; - -//$$ MATCH "Nand_pin_0_match" = "&nand_input_state" -//$$ MATCH "Nand_pin_1_match" = "&nand_input_state" -//$$ L2 PROP_STR 18 = "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","BOOT_17"; - 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_15"; - amlogic,pullup=<0>; - }; - -//$$ MATCH "Nand_pin_0_match" = "&nand_base" -//$$ MATCH "Nand_pin_1_match" = "&nand_base" -//$$ L2 PROP_U32 2 = "amlogic,setmask" -//$$ L2 PROP_U32 3*2 = "amlogic,clrmask" -//$$ L2 PROP_STR 17 = "amlogic,pins" - nand_base: nand{ - amlogic,setmask=<2 0x7fe0000>; - amlogic,clrmask=< 5 0xe - 6 0x3f000000 - 4 0x7c000000>; - amlogic,pins = "BOOT_0","BOOT_1","BOOT_2","BOOT_3","BOOT_4", - "BOOT_5","BOOT_6","BOOT_7","BOOT_8","BOOT_9", - "BOOT_10","BOOT_12","BOOT_13", - "BOOT_14","BOOT_15","BOOT_16","BOOT_17"; - }; - -//$$ MATCH "Card_pin_0_match" = "&sdhc_b_pins" -//$$ L2 PROP_U32 2 = "amlogic,setmask" -//$$ L2 PROP_U32 4 = "amlogic,clrmask" -//$$ L2 PROP_STR 6 = "amlogic,pins" - sdhc_b_pins:sdhc_b_pin{ - amlogic,setmask=<2 0xfc00>; - amlogic,clrmask=<2 0xf0 8 0x600>; - amlogic,pins="CARD_0","CARD_1","CARD_2","CARD_3","CARD_4","CARD_5"; - }; - -//$$ MATCH "Card_pin_1_match" = "&sdhc_c_pins" -//$$ L2 PROP_U32 2 = "amlogic,setmask" -//$$ L2 PROP_U32 4 = "amlogic,clrmask" -//$$ L2 PROP_STR 6 = "amlogic,pins" - sdhc_c_pins:sdhc_c_pin{ - amlogic,setmask=<6 0x3f000000>; - amlogic,clrmask=<4 0x6c000000 2 0x4c00000>; - amlogic,pins="BOOT_0","BOOT_1","BOOT_2","BOOT_3","BOOT_10","BOOT_11"; - }; - -//$$ MATCH "Card_pin_2_match" = "&sdhc_a_pins" -//$$ L2 PROP_U32 2 = "amlogic,setmask" -//$$ L2 PROP_U32 2 = "amlogic,clrmask" -//$$ L2 PROP_STR 6 = "amlogic,pins" - sdhc_a_pins:sdhc_a_pin{ - amlogic,setmask=<8 0x3f>; - amlogic,clrmask=<5 0x6c00 >; - amlogic,pins="GPIOX_0","GPIOX_1","GPIOX_2","GPIOX_3","GPIOX_8","GPIOX_9"; - }; - -//$$ MATCH "sdio_pin_5_match" = "&sdio_all_pins" -//$$ L2 PROP_U32 2 = "amlogic,setmask" -//$$ L2 PROP_U32 3*2 = "amlogic,clrmask" -//$$ L2 PROP_STR 6 = "amlogic,pins" -//$$ L2 PROP_U32 = "amlogic,enable-output" -//$$ L2 PROP_U32 = "amlogic,pullup" -//$$ L2 PROP_U32 = "amlogic,pullupen" - 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=<1>; - amlogic,pullupen=<1>; - }; - -//$$ MATCH "sdio_pin_4_match" = "&sdio_clk_cmd_pins" -//$$ L2 PROP_U32 2 = "amlogic,setmask" -//$$ L2 PROP_U32 3*2 = "amlogic,clrmask" -//$$ L2 PROP_STR 2 = "amlogic,pins" -//$$ L2 PROP_U32 = "amlogic,enable-output" -//$$ L2 PROP_U32 = "amlogic,pullup" -//$$ L2 PROP_U32 = "amlogic,pullupen" - 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"; /** GPIOX_8:CLK, GPIOX_9:CMD */ - amlogic,enable-output=<1>; /** 0:output, 1:input */ - amlogic,pullup=<1>; - amlogic,pullupen=<1>; - }; - -//$$ MATCH "sdio_pin_1_match" = "&sd_all_pins" -//$$ L2 PROP_U32 2 = "amlogic,setmask" -//$$ L2 PROP_U32 3*2 = "amlogic,clrmask" -//$$ L2 PROP_STR 6 = "amlogic,pins" -//$$ L2 PROP_U32 = "amlogic,enable-output" -//$$ L2 PROP_U32 = "amlogic,pullup" -//$$ L2 PROP_U32 = "amlogic,pullupen" - sd_all_pins:sd_all_pins{ - amlogic,setmask=<2 0x0000fc00>; /*sdio b*/ - amlogic,clrmask=<6 0x3f000000 /*sdio c*/ - 8 0x0000063f /*sdio a, UART*/ - 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=<1>; - amlogic,pullupen=<1>; - }; - -//$$ MATCH "sdio_pin_6_match" = "&sd_1bit_pins" -//$$ L2 PROP_U32 2 = "amlogic,setmask" -//$$ L2 PROP_U32 3*2 = "amlogic,clrmask" -//$$ L2 PROP_STR 6 = "amlogic,pins" -//$$ L2 PROP_U32 = "amlogic,enable-output" -//$$ L2 PROP_U32 = "amlogic,pullup" -//$$ L2 PROP_U32 = "amlogic,pullupen" - sd_1bit_pins:sd_1bit_pins{ - amlogic,setmask=<2 0x00008c00>; /*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=<1>; - amlogic,pullupen=<1>; - }; - -//$$ MATCH "sdio_pin_0_match" = "&sd_clk_cmd_pins" -//$$ L2 PROP_U32 2 = "amlogic,setmask" -//$$ L2 PROP_U32 3*2 = "amlogic,clrmask" -//$$ L2 PROP_STR 2 = "amlogic,pins" -//$$ L2 PROP_U32 = "amlogic,enable-output" -//$$ L2 PROP_U32 = "amlogic,pullup" -//$$ L2 PROP_U32 = "amlogic,pullupen" - 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_2","CARD_3"; /** CARD_2:CLK, CARD_3:CMD */ - amlogic,enable-output=<1>; /** 0:output, 1:input */ - amlogic,pullup=<1>; - amlogic,pullupen=<1>; - }; - -//$$ MATCH "sdio_pin_3_match" = "&emmc_all_pins" -//$$ L2 PROP_U32 2 = "amlogic,setmask" -//$$ L2 PROP_U32 3*2 = "amlogic,clrmask" -//$$ L2 PROP_STR 6 = "amlogic,pins" -//$$ L2 PROP_U32 = "amlogic,enable-output" -//$$ L2 PROP_U32 = "amlogic,pullup" -//$$ L2 PROP_U32 = "amlogic,pullupen" - emmc_all_pins:emmc_all_pins{ - amlogic,setmask=<6 0xfc000000>; /*sdio c*/ - amlogic,clrmask=<2 0x06c2fc00 /*sdio b & nand*/ - 8 0x0000003f /*sdio a*/ - 4 0x6c000000>; /*sdhc c*/ - amlogic,pins = "BOOT_0","BOOT_1","BOOT_2","BOOT_3","BOOT_8","BOOT_10"; - amlogic,enable-output=<1>; /** 0:output, 1:input */ - amlogic,pullup=<1>; - amlogic,pullupen=<1>; - }; - -//$$ MATCH "sdio_pin_2_match" = "&emmc_clk_cmd_pins" -//$$ L2 PROP_U32 2 = "amlogic,setmask" -//$$ L2 PROP_U32 3*2 = "amlogic,clrmask" -//$$ L2 PROP_STR 2 = "amlogic,pins" -//$$ L2 PROP_U32 = "amlogic,enable-output" -//$$ L2 PROP_U32 = "amlogic,pullup" -//$$ L2 PROP_U32 = "amlogic,pullupen" - emmc_clk_cmd_pins:emmc_clk_cmd_pins{ - amlogic,setmask=<6 0xc0000000>; /*bit[30-31] */ - amlogic,clrmask=<2 0x06c2fc00 /*sdio b & nand nand bit17 bit25*/ - 8 0x0000003f /*sdio a*/ - 7 0xc0000>; /*sdhc c bit 18-19*/ - amlogic,pins = "BOOT_8","BOOT_10"; /** BOOT_10:CMD, BOOT_8:CLK */ - amlogic,enable-output=<1>; /** 0:output, 1:input */ - amlogic,pullup=<1>; - amlogic,pullupen=<1>; - }; - -//$$ MATCH "sdhc_pin_0_match" = "&sdhc_sd_clk_cmd_pins" -//$$ L2 PROP_U32 2 = "amlogic,setmask" -//$$ L2 PROP_U32 4*2 = "amlogic,clrmask" -//$$ L2 PROP_STR 2 = "amlogic,pins" -//$$ L2 PROP_U32 = "amlogic,enable-output" -//$$ L2 PROP_U32 = "amlogic,pullup" -//$$ L2 PROP_U32 = "amlogic,pullupen" - sdhc_sd_clk_cmd_pins:sdhc_sd_clk_cmd_pins{ - amlogic,setmask=<2 0x00000030>; /*sdhc b*/ - amlogic,clrmask=<5 0x00007c00 /*sdhc a*/ - 4 0x7c000000 /*sdhc c*/ - 2 0x0000fc00 /*sdio b*/ - 8 0x00000600>; /*UART*/ - amlogic,pins = "CARD_2","CARD_3"; /* CARD_2:CLK, CARD_3:CMD */ - amlogic,enable-output=<1>; /* 0:output, 1:input */ - amlogic,pullup=<1>; - amlogic,pullupen=<1>; - }; -//$$ MATCH "sdhc_pin_1_match" = "&sdhc_sd_all_pins" -//$$ L2 PROP_U32 2 = "amlogic,setmask" -//$$ L2 PROP_U32 4*2 = "amlogic,clrmask" -//$$ L2 PROP_STR 6 = "amlogic,pins" -//$$ L2 PROP_U32 = "amlogic,enable-output" -//$$ L2 PROP_U32 = "amlogic,pullup" -//$$ L2 PROP_U32 = "amlogic,pullupen" - sdhc_sd_all_pins:sdhc_sd_all_pins{ - amlogic,setmask=<2 0x000000f0>; /*sdhc b*/ - amlogic,clrmask=<5 0x00007c00 /*sdhc a*/ - 4 0x7c000000 /*sdhc c*/ - 2 0x0000fc00 /*sdio b*/ - 8 0x00000600>; /*UART*/ - amlogic,pins="CARD_0","CARD_1","CARD_2","CARD_3","CARD_4","CARD_5"; - amlogic,enable-output=<1>; /* 0:output, 1:input */ - amlogic,pullup=<1>; - amlogic,pullupen=<1>; - }; -//$$ MATCH "sdhc_pin_2_match" = "&sdhc_emmc_clk_cmd_pins" -//$$ L2 PROP_U32 2 = "amlogic,setmask" -//$$ L2 PROP_U32 3*2 = "amlogic,clrmask" -//$$ L2 PROP_STR 2 = "amlogic,pins" -//$$ L2 PROP_U32 = "amlogic,enable-output" -//$$ L2 PROP_U32 = "amlogic,pullup" -//$$ L2 PROP_U32 = "amlogic,pullupen" - sdhc_emmc_clk_cmd_pins:sdhc_emmc_clk_cmd_pins{ - amlogic,setmask=<7 0xc0000>; /*bit[18-19] */ - amlogic,clrmask=<2 0x04c000f0 /*sdhc b & nand*/ - 5 0x00007c00 /*sdhc a*/ - 6 0xff000000>; /*sdio c*/ - amlogic,pins = "BOOT_8","BOOT_10"; /** BOOT_10:CMD, BOOT_8:CLK */ - amlogic,enable-output=<1>; /** 0:output, 1:input */ - amlogic,pullup=<1>; - amlogic,pullupen=<1>; - }; -//$$ MATCH "sdhc_pin_3_match" = "&sdhc_emmc_all_pins" -//$$ L2 PROP_U32 2 = "amlogic,setmask" -//$$ L2 PROP_U32 3*2 = "amlogic,clrmask" -//$$ L2 PROP_STR 10 = "amlogic,pins" -//$$ L2 PROP_U32 = "amlogic,enable-output" -//$$ L2 PROP_U32 = "amlogic,pullup" -//$$ L2 PROP_U32 = "amlogic,pullupen" - sdhc_emmc_all_pins:sdhc_emmc_all_pins{ - amlogic,setmask=<4 0x70000000 - 7 0xc0000>; /*sdhc c*/ - amlogic,clrmask=<2 0x04c000f0 /*sdhc b & nand*/ - 5 0x00007c00 /*sdhc a*/ - 6 0xff000000>; /*sdio c*/ - amlogic,pins = "BOOT_0","BOOT_1","BOOT_2","BOOT_3","BOOT_4","BOOT_5","BOOT_6","BOOT_7","BOOT_8","BOOT_10"; - amlogic,enable-output=<1>; /** 0:output, 1:input */ - amlogic,pullup=<1>; - amlogic,pullupen=<1>; - }; -//$$ MATCH "sdhc_pin_4_match" = "&sdhc_sdio_clk_cmd_pins" -//$$ L2 PROP_U32 2 = "amlogic,setmask" -//$$ L2 PROP_U32 3*2 = "amlogic,clrmask" -//$$ L2 PROP_STR 2 = "amlogic,pins" -//$$ L2 PROP_U32 = "amlogic,enable-output" -//$$ L2 PROP_U32 = "amlogic,pullup" -//$$ L2 PROP_U32 = "amlogic,pullupen" - sdhc_sdio_clk_cmd_pins:sdhc_sdio_clk_cmd_pins{ - amlogic,setmask=<5 0x00000c00>; /*sdhc a bit[10-11] */ - amlogic,clrmask=<2 0x058000f0 /*sdhc b*/ - 4 0x7c000000 /*sdhc c */ - 8 0x0000003f>; /*sdio a*/ - amlogic,pins = "GPIOX_8","GPIOX_9"; /** BOOT_16:CMD, BOOT_17:CLK */ - amlogic,enable-output=<1>; /** 0:output, 1:input */ - amlogic,pullup=<1>; - amlogic,pullupen=<1>; - }; -//$$ MATCH "sdhc_pin_5_match" = "&sdhc_sdio_all_pins" -//$$ L2 PROP_U32 2 = "amlogic,setmask" -//$$ L2 PROP_U32 3*2 = "amlogic,clrmask" -//$$ L2 PROP_STR 6 = "amlogic,pins" -//$$ L2 PROP_U32 = "amlogic,enable-output" -//$$ L2 PROP_U32 = "amlogic,pullup" -//$$ L2 PROP_U32 = "amlogic,pullupen" - sdhc_sdio_all_pins:sdhc_sdio_all_pins{ - amlogic,setmask=<5 0x00006c00>; /*sdhc a*/ - amlogic,clrmask=<2 0x058000f0 /*sdhc b*/ - 4 0x7c000000 /*sdhc c */ - 8 0x0000003f>; /*sdio 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=<1>; - amlogic,pullupen=<1>; - }; - -//$$ 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 6 = "amlogic,clrmask" -//$$ L2 PROP_STR 2 = "amlogic,pins" - a_i2c_master:a_i2c{ - amlogic,setmask=<9 0xC0000000>; - amlogic,clrmask=<0 0x3C0300 - 6 0xC00000 - 8 0x1800000>; - amlogic,pins="GPIODV_24","GPIODV_25"; - }; - -//$$ MATCH "I2C_B_pin_match" = "&b_i2c_master" -//$$ L2 PROP_U32 2 = "amlogic,setmask" -//$$ L2 PROP_U32 6 = "amlogic,clrmask" -//$$ L2 PROP_STR 2 = "amlogic,pins" - b_i2c_master:b_i2c{ - amlogic,setmask=<9 0x30000000>; - amlogic,clrmask=<0 0x480 - 6 0x300000 - 8 0x10780000>; - amlogic,pins="GPIODV_26","GPIODV_27"; - }; - -// MATCH "I2C_D_pin_match" = "&d_i2c_master" -// L2 PROP_U32 2 = "amlogic,setmask" -// L2 PROP_STR 2 = "amlogic,pins" -// d_i2c_master:d_i2c{ -// amlogic,setmask=<4 0xc>; -// amlogic,pins="GPIOH_7","GPIOH_8"; -// }; - -//$$ MATCH "remote_pin_0_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 "Audio_pin_0_match" = "&audio_pins" -//$$ L2 PROP_U32 4 = "amlogic,setmask" -//$$ L2 PROP_U32 10 = "amlogic,clrmask" -//$$ L2 PROP_STR 6 = "amlogic,pins" - audio_pins:audio_pin{ - amlogic,setmask=<10 0x78000000>; - amlogic,pins = "GPIOAO_8","GPIOAO_9","GPIOAO_10","GPIOAO_11"; - }; - -//$$ 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_11","BOOT_12","BOOT_13","BOOT_18"; - }; - - }; -/// *************************************************************************************** -/// - Ethernet -//$$ MODULE="Ethernet" -//$$ DEVICE="meson-eth" -//$$ L2 PROP_STR = "status" - meson-eth{ - compatible = "amlogic,meson-eth"; - dev_name = "meson-eth"; - status = "okay"; - ethbaseaddr = <0xfe0c0000>; - interruptnum = <40>; - savepowermode = <0>; - phy_interface = <0>; - new_maclogic = <1>; - reset_pin_enable = <0>; - reset_pin = "GPI0H_4"; - reset_delay = <100>; - }; - - odroid_sysfs { - compatible = "odroid-sysfs"; - }; - - leds { - compatible = "gpio-leds"; - /* Blue LED */ - hearbeat { - label = "blue:heartbeart"; - gpios = "GPIOAO_13"; - default-state = "off"; - linux,default-trigger = "heartbeat"; - }; - }; -}; /* end of / */ diff --git a/arch/arm/boot/dts/meson8b_odroidc.dts b/arch/arm/boot/dts/meson8b_odroidc.dts new file mode 100755 index 000000000000..9cd918d83acc --- /dev/null +++ b/arch/arm/boot/dts/meson8b_odroidc.dts @@ -0,0 +1,938 @@ +/* + * (C) Copyright 2014 Hardkernel Co,.Ltd + * + * See file CREDITS for list of people who contributed to this + * project. + * + * 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. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ +/dts-v1/; +/{ + compatible = "AMLOGIC,8726_M8B"; + model = "AMLOGIC"; + interrupt-parent = <&gic>; + #address-cells = <1>; + #size-cells = <1>; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a5"; + reg = <0x200>; + }; + cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a5"; + reg = <0x1>; + }; + cpu@2 { + device_type = "cpu"; + compatible = "arm,cortex-a5"; + reg = <0x2>; + }; + cpu@3 { + device_type = "cpu"; + compatible = "arm,cortex-a5"; + reg = <0x3>; + }; + }; + + cache-controller { + compatible = "arm,meson-pl310-cache"; + reg = <0xc4200000 0x1000>; + arm,data-latency = <3 3 3>; + arm,tag-latency = <2 2 2>; + arm,filter-ranges = <0x100000 0xc0000000>; + cache-unified; + cache-level = <2>; + aux-instruction_prefetch; + aux-data_prefetch; + aux-ns_lockdown; + aux-force_no_write_alloc; + aux-cache_replace_policy_round_robin; + aux-early_write_response; + aux-full_line_of_zero; + aux-ns_int_ctrl; + aux-share_override; + prefetch-double_line_fill; + prefetch-prefetch_drop; + prefetch-prefetch_offset = <7>; + }; + + memory { + device_type = "memory"; + aml_reserved_start = <0x06000000>; + aml_reserved_end = <0x05000000>; + phys_offset = <0x00200000>; + linux,total-memory = <0x3fe00000>; + #address-cells = <1>; + #size-cells = <1>; + + cma_0:region@0 { + region_name = "cma_0"; + reg = <0 0x02a00000>; + linux,contiguous-region; + }; + }; + + gic:interrupt-controller { + compatible = "arm,cortex-a9-gic"; + reg = <0xc4301000 0x1000 + 0xc4300100 0x0100>; + interrupt-controller; + #interrupt-cells = <3>; + #address-cells = <0>; + }; + + vpu { + compatible = "amlogic,vpu"; + dev_name = "vpu"; + status = "ok"; + clk_level = <3>; + }; + + mesonfb { + compatible = "amlogic,mesonfb"; + dev_name = "mesonfb"; + status = "okay"; + reserve-memory = <0x01800000 0x00100000>; + reserve-iomap = "true"; + vmode = <3>; + scale_mode = <1>; + 4k2k_fb = <0>; + display_size_default = <1920 1080 1920 3240 32>; + }; + + deinterlace { + compatible = "amlogic,deinterlace"; + dev_name = "deinterlace"; + status = "ok"; + reserve-memory = <0x02100000>; //10x1920x1088x3/2=33M + }; + + mesonstream { + compatible = "amlogic,mesonstream"; + dev_name = "mesonstream.0"; + status = "okay"; + reserve-memory = <0x02000000>; // 32M + reserve-iomap = "true"; + }; + + vdec { + compatible = "amlogic,vdec"; + dev_name = "vdec.0"; + status = "okay"; + reserve-memory = <0x04000000>; // 64M + reserve-iomap = "true"; + }; + + ppmgr { + compatible = "amlogic,ppmgr"; + dev_name = "ppmgr"; + status = "okay"; + reserve-memory = <0x01000000>; // 16M + }; + + amvenc_avc { + compatible = "amlogic,amvenc_avc"; + dev_name = "amvenc_avc.0"; + status = "okay"; + linux,contiguous-region = <&cma_0>; + reserve-iomap = "true"; + }; + + ion_dev { + compatible = "amlogic,ion_dev"; + dev_name = "ion_dev"; + status = "ok"; + share-memory-name = "ppmgr0"; + share-memory-offset = <0>; + share-memory-size = <0x01000000>; //16M + }; + + mesonvout { + compatible = "amlogic,mesonvout"; + dev_name = "mesonvout"; + status = "okay"; + }; + + rtc { + compatible = "amlogic,aml_rtc"; + status = "okay"; + }; + + uart_ao { + compatible = "amlogic,aml_uart"; + port_name = "uart_ao"; + status = "okay"; + dev_name = "uart_ao"; + pinctrl-names = "default"; + pinctrl-0 = <&ao_uart_pins>; + }; + + uart_0 { + compatible = "amlogic,aml_uart"; + port_name = "uart_a"; + status = "okay"; + dev_name = "uart_0"; + // pinctrl-names = "default"; + // pinctrl-0 = <&a_uart_pins>; + }; + + uart_1 { + compatible = "amlogic,aml_uart"; + port_name = "uart_b"; + status = "okay"; + dev_name = "uart_1"; + pinctrl-names = "default"; + pinctrl-0 = <&b_uart_pins>; + }; + + uart_2 { + compatible = "amlogic,aml_uart"; + port_name = "uart_c"; + status = "disabled"; + dev_name = "uart_2"; + }; + + uart_3 { + compatible = "amlogic,aml_uart"; + port_name = "uart_d"; + status = "ok"; + dev_name = "uart_3"; + }; + + 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_1bit_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>; + pinctrl-6 = <&sd_1bit_pins>; + + emmc { + status = "okay"; + port = <2>; + pinname = "emmc"; + ocr_avail = <0x200000>; + caps = "MMC_CAP_4_BIT_DATA", + "MMC_CAP_MMC_HIGHSPEED", + "MMC_CAP_SD_HIGHSPEED", + "MMC_CAP_NONREMOVABLE", + "MMC_CAP_ERASE", + "MMC_CAP_HW_RESET"; + f_min = <300000>; + f_max = <50000000>; + f_max_w = <50000000>; + max_req_size = <0x20000>; /* 128KB */ + gpio_dat3 = "BOOT_3"; + card_type = <1>; + }; + + sd { + status = "okay"; + port = <1>; + pinname = "sd"; + ocr_avail = <0x200000>; + 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_4"; + gpio_cd = "CARD_6"; + gpio_volsw = "GPIOAO_3"; + irq_in = <3>; + irq_out = <5>; + card_type = <5>; + }; + }; + + sdhc { + compatible = "amlogic,aml_sdhc"; + dev_name = "aml_sdhc.0"; + status = "okay"; + reg = <0xc1108e00 0x3c>; + pinctrl-names = "sdhc_sd_clk_cmd_pins", + "sdhc_sd_all_pins", + "sdhc_emmc_clk_cmd_pins", + "sdhc_emmc_all_pins", + "sdhc_sdio_clk_cmd_pins", + "sdhc_sdio_all_pins"; + pinctrl-0 = <&sdhc_sd_clk_cmd_pins>; + pinctrl-1 = <&sdhc_sd_all_pins>; + pinctrl-2 = <&sdhc_emmc_clk_cmd_pins>; + pinctrl-3 = <&sdhc_emmc_all_pins>; + pinctrl-4 = <&sdhc_sdio_clk_cmd_pins>; + pinctrl-5 = <&sdhc_sdio_all_pins>; + + sd { + status = "okay"; + port = <4>; + pinname = "sd"; + ocr_avail = <0x00200080>; + caps = "MMC_CAP_4_BIT_DATA", + "MMC_CAP_MMC_HIGHSPEED", + "MMC_CAP_SD_HIGHSPEED", + "MMC_CAP_UHS_SDR12", + "MMC_CAP_UHS_SDR25", + "MMC_CAP_UHS_SDR50", + "MMC_CAP_UHS_SDR104"; + f_min = <300000>; + f_max = <100000000>; + max_req_size = <0x20000>; /* 128KB */ + gpio_dat3 = "CARD_4"; + gpio_cd = "CARD_6"; + gpio_volsw = "GPIOAO_3"; + irq_in = <3>; + irq_out = <5>; + card_type = <5>; + }; + + emmc { + status = "okay"; + port = <5>; + pinname = "emmc"; + ocr_avail = <0x200000>; + caps = "MMC_CAP_8_BIT_DATA", + "MMC_CAP_MMC_HIGHSPEED", + "MMC_CAP_SD_HIGHSPEED", + "MMC_CAP_NONREMOVABLE", + "MMC_CAP_ERASE", + "MMC_CAP_HW_RESET"; + caps2 = "MMC_CAP2_HS200_1_8V_SDR"; + f_min = <300000>; + f_max = <150000000>; + max_req_size = <0x20000>; /* 128KB */ + gpio_dat3 = "BOOT_3"; + card_type = <1>; + }; + }; + + i2c@c1108500{ + compatible = "amlogic,aml_i2c"; + #address-cells = <1>; + #size-cells = <0>; + dev_name = "i2c-A"; + status = "ok"; + reg = <0xc1108500 0x20>; + device_id = <1>; + pinctrl-names="default"; + pinctrl-0 = <&a_i2c_master>; + use_pio = <0>; + master_i2c_speed = <100000>; + }; + + i2c@c11087c0{ + compatible = "amlogic,aml_i2c"; + #address-cells = <1>; + #size-cells = <0>; + dev_name = "i2c-B"; + status = "ok"; + reg = <0xc11087c0 0x20>; + device_id = <2>; + pinctrl-names="default"; + pinctrl-0 = <&b_i2c_master>; + use_pio = <0>; + master_i2c_speed = <100000>; + }; + + i2c@c11087e0{ + compatible = "amlogic,aml_i2c"; + #address-cells = <1>; + #size-cells = <0>; + dev_name = "i2c-C"; + status = "ok"; + reg = <0xc11087e0 0x20>; + device_id = <3>; + pinctrl-names="default"; + // pinctrl-0 = <&c_i2c_master>; + use_pio = <0>; + master_i2c_speed = <300000>; + }; + + i2c@c1108d20{ + compatible = "amlogic,aml_i2c"; + #address-cells = <1>; + #size-cells = <0>; + dev_name = "i2c-D"; + status = "ok"; + reg = <0xc1108d20 0x20>; + device_id = <4>; + pinctrl-names="default"; + // pinctrl-0 = <&d_i2c_master>; + use_pio = <0>; + master_i2c_speed = <300000>; + }; + + dvfs { + compatible = "amlogic, amlogic-dvfs"; + #address-cells = <1>; + #size-cells = <0>; + status = "ok"; + + vcck_dvfs { + dvfs_id = <1>; + table_count = <12>; + change-frequent-only; + /* NOTE: frequent in this table must be ascending order */ + /* frequent(Khz) min_uV max_uV */ + dvfs_table = < 96000 825000 825000 + 192000 825000 825000 + 312000 825000 825000 + 408000 825000 825000 + 504000 825000 825000 + 600000 825000 825000 + 720000 825000 825000 + 816000 850000 850000 + 1008000 875000 875000 + 1200000 925000 925000 + 1320000 1000000 1000000 + 1488000 1075000 1075000 >; + }; + }; + + arm_pmu { + compatible = "arm,cortex-a9-pmu"; + status = "ok"; + interrupts = < 0 137 0x04 + 0 138 0x04 + 0 153 0x04 + 0 154 0x04 >; + }; + + + usb_con { + lm-compatible = "logicmodule-bus"; + + usb_b { + lm-compatible = "amlogic,usb"; + lm-periph-id = <1>; + clock-src = "usb1"; + port-id = <1>; + port-type = <1>; + port-speed = <0>; + port-config = <0>; + port-dma = <0>; + port-id-mode = <1>; + gpio-hub-rst = "GPIOAO_4"; + status = "okay"; + }; + + usb_a { + lm-compatible = "amlogic,usb"; + lm-periph-id = <0>; + clock-src = "usb0"; + port-id = <0>; + port-type = <0>; + port-speed = <0>; + port-config = <0>; + port-dma = <0>; + port-id-mode = <0>; + gpio-vbus-power = "GPIOAO_5"; + gpio-work-mask = <1>; + status = "okay"; + }; + }; + + audio_platform { + compatible = "amlogic,aml-i2s"; + dev_name = "aml-i2s.0"; + status = "okay"; + }; + + audio_dai { + compatible = "amlogic,aml-i2s-dai"; + dev_name = "aml-i2s-dai.0"; + status = "okay"; + }; + + audio_spdif_dai { + compatible = "amlogic,aml-spdif-dai"; + dev_name = "aml-spdif-dai.0"; + status = "okay"; + }; + + audio_spdif_codec { + compatible = "amlogic,aml-spdif-codec"; + dev_name = "spdif-dit.0"; + pinctrl-names = "aml_audio_spdif"; + status = "okay"; + }; + + audio_pcm_dai { + compatible = "amlogic,aml-pcm-dai"; + dev_name = "aml-pcm-dai.0"; + status = "okay"; + }; + + audio_pcm { + compatible = "amlogic,aml-pcm"; + dev_name = "aml-pcm.0"; + status = "okay"; + }; + + dummy_codec { + compatible = "amlogic,aml_dummy_codec"; + dev_name = "dummy_codec.0"; + status = "okay"; + }; + + aml_audio_codec { + compatible = "amlogic,audio_codec"; + dummy:dummy { + codec_name = "dummy_codec"; + status = "okay"; + }; + }; + + aml_m8_sound_card { + compatible = "sound_card, aml_snd_m8"; + aml,sound_card = "AML-M8AUDIO"; + aml,codec_dai = "AML-M8", "dummy_codec"; + aml,audio-routing-amlm8 = "Ext Spk", "LINEOUTL", + "Ext Spk", "LINEOUTR", + "HP", "HP_L", + "HP", "HP_R"; + aml,audio-routing-dummy= "Ext Spk", "LOUTL", + "Ext Spk", "LOUTR"; + sleep_time = <130>; + pinctrl-names = "aml_snd_m8"; + pinctrl-0 = <&audio_pins>; + status = "okay"; + }; + + saradc { + compatible = "amlogic,saradc"; + status = "okay"; + }; + + meson-remote{ + compatible = "amlogic,aml_remote"; + dev_name = "meson-remote"; + status = "ok"; + ao_baseaddr = <0xf3100480>; + pinctrl-names="default"; + pinctrl-0 = <&remote_pins>; + }; + + 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>; + + bootloader:bootloader{ + name = "bootloader"; + offset = <0>; + size = <0x100000>; + }; + + ubootenv:ubootenv{ + name = "ubootenv"; + offset = <0x100000>; + size = <0x10000>; + }; + }; + + efuse{ + compatible = "amlogic,efuse"; + dev_name = "efuse"; + status = "okay"; + plat-pos = <0 454>; + plat-count = <58>; + usid-min = <8>; + usid-max = <31>; + }; + + thermal{ + compatible = "amlogic-thermal"; + #thermal-cells = <7>; + dev_name = "aml_thermal"; + trip_point = <70 1488001 1488001 511 511 3 2 + 80 1200001 1200001 435 435 2 2 + 90 800001 800001 328 328 1 1 + 110 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff>; + cpu_cali_a = <0>; + idle_interval = <1000>; + use_virtual_thermal; + freq_sample_period = <30>; + report_time = <1 10 30 60>; + cpu_virtual = <500000 40 40 40 40 + 600000 45 55 60 65 + 800000 50 60 65 70 + 1000000 55 65 70 75 + 1200000 60 70 75 80 + 1350000 65 75 80 85 >; + gpu_virtual = <183 40 40 40 40 + 251 40 45 50 55 + 319 50 60 65 70 + 426 55 65 70 75 + 511 60 70 75 80 >; + }; + + amhdmitx{ + compatible = "amlogic,amhdmitx"; + dev_name = "amhdmitx"; + status = "ok"; + vend-data = <&vend_data>; + pwr-ctrl = <&pwr_ctrl>; + + vend_data: vend_data{ + vendor_name = "Amlogic"; + vendor_id = <0x000000>; + product_desc = "M8 MBox SKTv1"; + cec_osd_string = "Amlogic MBox"; + }; + + pwr_ctrl: pwr_ctrl{ + pwr_5v_on = ""; + pwr_5v_off = ""; + pwr_3v3_on = ""; + pwr_3v3_off = ""; + pwr_hpll_vdd_on = ""; + pwr_hpll_vdd_off = ""; + }; + }; + + aml_pm{ + compatible = "amlogic,pm-m8"; + dev_name = "aml_pm_m8"; + status = "okay"; + }; + + cpufreq-meson{ + compatible = "amlogic,cpufreq-meson"; + status = "okay"; + }; + + gpio:gpio{ + compatible = "amlogic,m8b-gpio"; + #gpio-cells = <2>; + dev_name = "gpio"; + }; + + pinmux{ + compatible = "amlogic,pinmux-m8b"; + #pinmux-cells = <2>; + dev_name = "pinmux"; + + ao_uart_pins:ao_uart{ + amlogic,setmask = <10 0x1800>; + amlogic,pins="GPIOAO_0", "GPIOAO_1"; + }; + + b_uart_pins:b_uart{ + amlogic,setmask = <4 0x0300>; + amlogic,pins="GPIOX_16", "GPIOX_17"; + }; + + 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", "BOOT_17"; + amlogic,enable-output = <1>; + }; + + conf_nand_state: conf_nand { + amlogic,pins = "BOOT_0", "BOOT_1", "BOOT_2", "BOOT_3", + "BOOT_4", "BOOT_5", "BOOT_6", "BOOT_7", + "BOOT_15"; + amlogic,pullup = <0>; + }; + + nand_base: nand { + amlogic,setmask = <2 0x07fe0000>; + amlogic,clrmask = <5 0x0000000e + 6 0x3f000000 + 4 0x7c000000>; + amlogic,pins = "BOOT_0", "BOOT_1", "BOOT_2", "BOOT_3", + "BOOT_4", "BOOT_5", "BOOT_6", "BOOT_7", + "BOOT_8", "BOOT_9", "BOOT_10", "BOOT_12", + "BOOT_13", "BOOT_14", "BOOT_15", "BOOT_16", + "BOOT_17"; + }; + + sdhc_b_pins:sdhc_b_pin { + amlogic,setmask = <2 0x0000fc00>; + amlogic,clrmask = <2 0x000000f0 + 8 0x00000600>; + amlogic,pins = "CARD_0", "CARD_1", "CARD_2", "CARD_3", + "CARD_4", "CARD_5"; + }; + + sdhc_c_pins:sdhc_c_pin { + amlogic,setmask = <6 0x3f000000>; + amlogic,clrmask = <4 0x6c000000 + 2 0x4c00000>; + amlogic,pins = "BOOT_0", "BOOT_1", "BOOT_2", "BOOT_3", + "BOOT_10", "BOOT_11"; + }; + + sdhc_a_pins:sdhc_a_pin { + amlogic,setmask = <8 0x0000003f>; + amlogic,clrmask = <5 0x00006c00 >; + amlogic,pins = "GPIOX_0", "GPIOX_1", "GPIOX_2", "GPIOX_3", + "GPIOX_8", "GPIOX_9"; + }; + + sdio_all_pins:sdio_all_pins { + amlogic,setmask = <8 0x0000003f>; + amlogic,clrmask = <6 0x3f000000 + 2 0x0000fc00 + 5 0x00006c00>; + amlogic,pins = "GPIOX_0", "GPIOX_1", "GPIOX_2", "GPIOX_3", + "GPIOX_8", "GPIOX_9"; + amlogic,enable-output = <1>; /** 0:output, 1:input */ + amlogic,pullup = <1>; + amlogic,pullupen = <1>; + }; + + sdio_clk_cmd_pins:sdio_clk_cmd_pins { + amlogic,setmask = <8 0x00000003>; + amlogic,clrmask = <6 0x3f000000 + 2 0x0000fc00 + 5 0x00006c00>; + amlogic,pins = "GPIOX_8", "GPIOX_9"; + amlogic,enable-output = <1>; + amlogic,pullup = <1>; + amlogic,pullupen = <1>; + }; + + sd_all_pins:sd_all_pins { + amlogic,setmask = <2 0x0000fc00>; + amlogic,clrmask = <6 0x3f000000 + 8 0x0000063f + 2 0x000000f0>; + amlogic,pins = "CARD_0", "CARD_1", "CARD_2", "CARD_3", + "CARD_4", "CARD_5"; + amlogic,enable-output = <1>; /* 0:output, 1:input */ + amlogic,pullup = <1>; + amlogic,pullupen = <1>; + }; + + sd_1bit_pins:sd_1bit_pins { + amlogic,setmask = <2 0x00008c00>; + amlogic,clrmask = <6 0x3f000000 + 8 0x0000003f + 2 0x000000f0>; + amlogic,pins = "CARD_0", "CARD_1", "CARD_2", "CARD_3", + "CARD_4", "CARD_5"; + amlogic,enable-output = <1>; /* 0:output, 1:input */ + amlogic,pullup = <1>; + amlogic,pullupen = <1>; + }; + + sd_clk_cmd_pins:sd_clk_cmd_pins { + amlogic,setmask = <2 0x00000c00>; + amlogic,clrmask = <6 0x3f000000 + 8 0x0000003f + 2 0x000000f0>; + amlogic,pins = "CARD_2", "CARD_3"; + amlogic,enable-output = <1>; + amlogic,pullup = <1>; + amlogic,pullupen = <1>; + }; + + emmc_all_pins:emmc_all_pins { + amlogic,setmask = <6 0xfc000000>; + amlogic,clrmask = <2 0x06c2fc00 + 8 0x0000003f + 4 0x6c000000>; + amlogic,pins = "BOOT_0", "BOOT_1", "BOOT_2", "BOOT_3", + "BOOT_8", "BOOT_10"; + amlogic,enable-output = <1>; /** 0:output, 1:input */ + amlogic,pullup = <1>; + amlogic,pullupen = <1>; + }; + + emmc_clk_cmd_pins:emmc_clk_cmd_pins { + amlogic,setmask = <6 0xc0000000>; + amlogic,clrmask = <2 0x06c2fc00 + 8 0x0000003f + 7 0x000c0000>; + amlogic,pins = "BOOT_8", "BOOT_10"; + amlogic,enable-output = <1>; + amlogic,pullup = <1>; + amlogic,pullupen = <1>; + }; + + sdhc_sd_clk_cmd_pins:sdhc_sd_clk_cmd_pins { + amlogic,setmask = <2 0x00000030>; + amlogic,clrmask = <5 0x00007c00 + 4 0x7c000000 + 2 0x0000fc00 + 8 0x00000600>; + amlogic,pins = "CARD_2", "CARD_3"; + amlogic,enable-output = <1>; + amlogic,pullup = <1>; + amlogic,pullupen = <1>; + }; + + sdhc_sd_all_pins:sdhc_sd_all_pins { + amlogic,setmask = <2 0x000000f0>; + amlogic,clrmask = <5 0x00007c00 + 4 0x7c000000 + 2 0x0000fc00 + 8 0x00000600>; + amlogic,pins="CARD_0", "CARD_1", "CARD_2", "CARD_3", + "CARD_4", "CARD_5"; + amlogic,enable-output = <1>; + amlogic,pullup = <1>; + amlogic,pullupen = <1>; + }; + + sdhc_emmc_clk_cmd_pins:sdhc_emmc_clk_cmd_pins { + amlogic,setmask = <7 0xc0000>; + amlogic,clrmask = <2 0x04c000f0 + 5 0x00007c00 + 6 0xff000000>; + amlogic,pins = "BOOT_8", "BOOT_10"; + amlogic,enable-output = <1>; + amlogic,pullup = <1>; + amlogic,pullupen = <1>; + }; + + sdhc_emmc_all_pins:sdhc_emmc_all_pins { + amlogic,setmask = <4 0x70000000 + 7 0xc0000>; + amlogic,clrmask = <2 0x04c000f0 + 5 0x00007c00 + 6 0xff000000>; + amlogic,pins = "BOOT_0", "BOOT_1", "BOOT_2", "BOOT_3", + "BOOT_4", "BOOT_5", "BOOT_6", "BOOT_7", + "BOOT_8", "BOOT_10"; + amlogic,enable-output = <1>; /** 0:output, 1:input */ + amlogic,pullup = <1>; + amlogic,pullupen = <1>; + }; + + sdhc_sdio_clk_cmd_pins:sdhc_sdio_clk_cmd_pins { + amlogic,setmask = <5 0x00000c00>; + amlogic,clrmask = <2 0x058000f0 + 4 0x7c000000 + 8 0x0000003f>; + amlogic,pins = "GPIOX_8", "GPIOX_9"; + amlogic,enable-output = <1>; /** 0:output, 1:input */ + amlogic,pullup = <1>; + amlogic,pullupen = <1>; + }; + + sdhc_sdio_all_pins:sdhc_sdio_all_pins { + amlogic,setmask = <5 0x00006c00>; + amlogic,clrmask = <2 0x058000f0 + 4 0x7c000000 + 8 0x0000003f>; + amlogic,pins = "GPIOX_0", "GPIOX_1", "GPIOX_2", "GPIOX_3", + "GPIOX_8", "GPIOX_9"; + amlogic,enable-output = <1>; /** 0:output, 1:input */ + amlogic,pullup = <1>; + amlogic,pullupen = <1>; + }; + + ao_i2c_master:ao_i2c { + amlogic,setmask = <10 0x60>; + amlogic,clrmask = <10 0x1800006>; + amlogic,pins="GPIOAO_4", "GPIOAO_5"; + }; + + a_i2c_master:a_i2c { + amlogic,setmask = <9 0xC0000000>; + amlogic,clrmask = <0 0x3C0300 + 6 0xC00000 + 8 0x1800000>; + amlogic,pins="GPIODV_24", "GPIODV_25"; + }; + + b_i2c_master:b_i2c { + amlogic,setmask = <9 0x30000000>; + amlogic,clrmask = <0 0x480 + 6 0x300000 + 8 0x10780000>; + amlogic,pins="GPIODV_26", "GPIODV_27"; + }; + + remote_pins:remote_pin { + amlogic,setmask = <10 0x1>; + amlogic,pins="GPIOAO_7"; + }; + + audio_pins:audio_pin { + amlogic,setmask = <10 0x78000000>; + amlogic,pins = "GPIOAO_8", "GPIOAO_9", "GPIOAO_10", "GPIOAO_11"; + }; + + aml_spi_nor_pins: aml_spi_nor_pins { + amlogic,setmask = <5 0xf>; + amlogic,clrmask = <2 0x380000>; + amlogic,pins = "BOOT_11", "BOOT_12", "BOOT_13", "BOOT_18"; + }; + }; + + meson-eth { + compatible = "amlogic,meson-eth"; + dev_name = "meson-eth"; + status = "okay"; + ethbaseaddr = <0xfe0c0000>; + interruptnum = <40>; + savepowermode = <0>; + phy_interface = <0>; + new_maclogic = <1>; + reset_pin_enable = <0>; + reset_pin = "GPI0H_4"; + reset_delay = <100>; + }; + + odroid_sysfs { + compatible = "odroid-sysfs"; + }; + + leds { + compatible = "gpio-leds"; + /* Blue LED */ + hearbeat { + label = "blue:heartbeart"; + gpios = "GPIOAO_13"; + default-state = "off"; + linux,default-trigger = "heartbeat"; + }; + }; +}; /* end of / */ + +/* vim: set ts=4 sw=4 tw=80:*/