dts: modify the remaining 64bit dts to support 32bit [1/1]

PD#SWPL-2046

Problem:
some of the remaining 64bit boards do not support 32bit.

Solution:
modify the dts to support 32bit.

Verify:
axg, g12a, g12b, gxl, gxm, txl, txlx.

Change-Id: I951f8d32b18243a64e2abc5008bbb015c2e21e7a
Signed-off-by: Jianxiong Pan <jianxiong.pan@amlogic.com>
This commit is contained in:
Jianxiong Pan
2018-11-14 10:11:35 +08:00
committed by Dongjin Kim
parent e0a40550de
commit c56c864d2c
54 changed files with 60447 additions and 0 deletions

View File

@@ -0,0 +1,998 @@
/*
* arch/arm/boot/dts/amlogic/axg_a113d_skt.dts
*
* Copyright (C) 2017 Amlogic, Inc. All rights reserved.
*
* 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.
*
*/
/dts-v1/;
#include "mesonaxg.dtsi"
/ {
model = "Amlogic";
amlogic-dt-id = "axg_a113d_skt_v1";
compatible = "amlogic, axg";
interrupt-parent = <&gic>;
#address-cells = <1>;
#size-cells = <1>;
aliases {
serial0 = &uart_AO;
serial1 = &uart_A;
serial2 = &uart_B;
serial3 = &uart_AO_B;
};
memory@00000000 {
device_type = "memory";
linux,usable-memory = <0x100000 0x3ff00000>;
};
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
/* global autoconfigured region for contiguous allocations */
ramoops@0x07400000 {
compatible = "ramoops";
reg = <0x07400000 0x00100000>;
record-size = <0x8000>;
console-size = <0x8000>;
ftrace-size = <0x0>;
pmsg-size = <0x8000>;
};
secmon_reserved:linux,secmon {
compatible = "shared-dma-pool";
reusable;
size = <0x400000>;
alignment = <0x400000>;
alloc-ranges = <0x05000000 0x400000>;
};
secos_reserved:linux,secos {
status = "disable";
compatible = "amlogic, aml_secos_memory";
reg = <0x05300000 0x2000000>;
no-map;
};
};
mtd_nand {
compatible = "amlogic, aml_mtd_nand";
dev_name = "mtdnand";
status = "okay";
reg = <0xFFE07800 0x200>;
interrupts = < 0 34 1 >;
pinctrl-names = "nand_rb_mod","nand_norb_mod", "nand_cs_only";
pinctrl-0 = <&all_nand_pins>;
pinctrl-1 = <&all_nand_pins>;
pinctrl-2 = <&nand_cs_pins>;
device_id = <0>;
/*fip/tpl configurations, must be same
* with uboot if bl_mode was set as 1
* bl_mode: 0 compact mode; 1 descrete mode
* if bl_mode was set as 1, fip configeration will work
*/
bl_mode = <1>;
/*copy count of fip*/
fip_copies = <4>;
/*size of each fip copy */
fip_size = <0x200000>;
nand_clk_ctrl = <0xFFE07000>;
plat-names = "bootloader","nandnormal";
plat-num = <2>;
plat-part-0 = <&bootloader>;
plat-part-1 = <&nandnormal>;
bootloader: bootloader{
enable_pad ="ce0";
busy_pad = "rb0";
timming_mode = "mode5";
bch_mode = "bch8_1k";
t_rea = <20>;
t_rhoh = <15>;
chip_num = <1>;
part_num = <0>;
rb_detect = <1>;
};
nandnormal: nandnormal{
enable_pad ="ce0";
busy_pad = "rb0";
timming_mode = "mode5";
bch_mode = "bch8_1k";
plane_mode = "twoplane";
t_rea = <20>;
t_rhoh = <15>;
chip_num = <2>;
part_num = <3>;
partition = <&nand_partitions>;
rb_detect = <1>;
};
nand_partitions:nand_partition{
/*
* if bl_mode is 1, tpl size was generate by
* fip_copies * fip_size which
* will not skip bad when calculating
* the partition size;
*
* if bl_mode is 0,
* tpl partition must be comment out.
*/
tpl{
offset=<0x0 0x0>;
size=<0x0 0x0>;
};
logo{
offset=<0x0 0x0>;
size=<0x0 0x200000>;
};
recovery{
offset=<0x0 0x0>;
size=<0x0 0x1000000>;
};
boot{
offset=<0x0 0x0>;
size=<0x0 0xF00000>;
};
system{
offset=<0x0 0x0>;
size=<0x0 0xDC40000>;
};
data{
offset=<0xffffffff 0xffffffff>;
size=<0x0 0x0>;
};
};
};
ethmac: ethernet@0xff3f0000 {
compatible = "amlogic, gxbb-eth-dwmac";
status = "disable";
reg = <0xff3f0000 0x10000
0xff634540 0x8>;
interrupts = <0 8 1>;
pinctrl-names = "external_eth_pins";
pinctrl-0 = <&external_eth_pins>;
mc_val_internal_phy = <0x1800>;
mc_val_external_phy = <0x1621>;
interrupt-names = "macirq";
clocks = <&clkc CLKID_ETH_CORE>;
clock-names = "ethclk81";
internal_phy=<0>;
};
aml_sensor0: aml-sensor@0 {
compatible = "amlogic, aml-thermal";
device_name = "thermal";
#thermal-sensor-cells = <1>;
cooling_devices {
cpufreq_cool_cluster0 {
min_state = <1000000>;
dyn_coeff = <140>;
cluster_id = <0>;
node_name = "cpufreq_cool0";
device_type = "cpufreq";
};
cpucore_cool_cluster0 {
min_state = <1>;
dyn_coeff = <0>;
cluster_id = <0>;
node_name = "cpucore_cool0";
device_type = "cpucore";
};
};
cpufreq_cool0:cpufreq_cool0 {
#cooling-cells = <2>; /* min followed by max */
};
cpucore_cool0:cpucore_cool0 {
#cooling-cells = <2>; /* min followed by max */
};
};
thermal-zones {
soc_thermal {
polling-delay = <1000>;
polling-delay-passive = <100>;
sustainable-power = <1050>;
thermal-sensors = <&aml_sensor0 3>;
trips {
switch_on: trip-point@0 {
temperature = <70000>;
hysteresis = <1000>;
type = "passive";
};
control: trip-point@1 {
temperature = <80000>;
hysteresis = <1000>;
type = "passive";
};
hot: trip-point@2 {
temperature = <85000>;
hysteresis = <5000>;
type = "hot";
};
critical: trip-point@3 {
temperature = <260000>;
hysteresis = <1000>;
type = "critical";
};
};
cooling-maps {
cpufreq_cooling_map {
trip = <&control>;
cooling-device = <&cpufreq_cool0 0 4>;
contribution = <1024>;
};
cpucore_cooling_map {
trip = <&control>;
cooling-device = <&cpucore_cool0 0 3>;
contribution = <1024>;
};
};
};
};
dwc3: dwc3@ff500000 {
compatible = "synopsys, dwc3";
status = "okay";
reg = <0xff500000 0x100000>;
interrupts = <0 30 4>;
usb-phy = <&usb2_phy>, <&usb3_phy>;
cpu-type = "gxl";
clock-src = "usb3.0";
clocks = <&clkc CLKID_USB_GENERAL>;
clock-names = "dwc_general";
};
usb2_phy: usb2phy@ffe09000 {
compatible = "amlogic, amlogic-new-usb2";
status = "okay";
portnum = <4>;
reg = <0xffe09000 0x80
0xffd01008 0x4>;
};
usb3_phy: usb3phy@ffe09080 {
compatible = "amlogic, amlogic-new-usb3";
status = "okay";
portnum = <0>;
reg = <0xffe09080 0x20>;
interrupts = <0 16 4>;
otg = <1>;
gpio-vbus-power = "GPIOAO_5";
gpios = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
};
dwc2_a {
compatible = "amlogic, dwc2";
device_name = "dwc2_a";
reg = <0xff400000 0x40000>;
status = "okay";
interrupts = <0 31 4>;
pl-periph-id = <0>; /** lm name */
clock-src = "usb0"; /** clock src */
port-id = <0>; /** ref to mach/usb.h */
port-type = <2>; /** 0: otg, 1: host, 2: slave */
port-speed = <0>; /** 0: default, high, 1: full */
port-config = <0>; /** 0: default */
/*0:default,1:single,2:incr,3:incr4,4:incr8,5:incr16,6:disable*/
port-dma = <0>;
port-id-mode = <0>; /** 0: hardware, 1: sw_host, 2: sw_slave*/
usb-fifo = <728>;
cpu-type = "gxl";
/** 0: normal, 1: otg+dwc3 host only, 2: otg+dwc3 device only*/
controller-type = <3>;
phy-reg = <0xffe09000>;
phy-reg-size = <0xa0>;
clocks = <&clkc CLKID_USB_GENERAL
&clkc CLKID_USB1_TO_DDR
&clkc CLKID_USB1>;
clock-names = "usb_general",
"usb1",
"usb1_to_ddr";
};
pcie_A: pcieA@f9800000 {
compatible = "amlogic, amlogic-pcie", "snps,dw-pcie";
reg = <0xf9800000 0x400000
0xff646000 0x2000
0xf9f00000 0x100000
PCIE_PHY_REG PCIE_PHY_SIZE
PCIE_RESET_REG PCIE_RESET_SIZE>;
reg-names = "elbi", "cfg", "config", "phy", "reset";
reset-gpio = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>;
interrupts = <0 177 0>;
#interrupt-cells = <1>;
bus-range = <0x0 0xff>;
#address-cells = <3>;
#size-cells = <2>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &gic GIC_SPI 179 IRQ_TYPE_EDGE_RISING>;
device_type = "pci";
ranges = <0x82000000 0 0 0xf9c00000 0 0x00300000>;
/* non-prefetchable memory */
num-lanes = <1>;
pcie-num = <1>;
clocks = <&clkc CLKID_USB_GENERAL
&clkc CLKID_PCIE_PLL
&clkc CLKID_MIPI_ENABLE_GATE
&clkc CLKID_MIPI_BANDGAP_GATE
&clkc CLKID_PCIE_A
&clkc CLKID_PCIE_CML_EN0>;
clock-names = "pcie_general",
"pcie_refpll",
"pcie_mipi_enable_gate",
"pcie_mipi_bandgap_gate",
"pcie",
"port";
/*reset-gpio-type 0:Shared pad(no reset)1:OD pad2:Normal pad*/
gpio-type = <2>;
status = "okay";
};
pcie_B: pcieB@fa000000 {
compatible = "amlogic, amlogic-pcie", "snps,dw-pcie";
reg = <0xfa000000 0x400000
0xff648000 0x2000
0xfa400000 0x100000
PCIE_PHY_REG PCIE_PHY_SIZE
PCIE_RESET_REG PCIE_RESET_SIZE>;
reg-names = "elbi", "cfg", "config", "phy", "reset";
reset-gpio = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>;
interrupts = <0 167 0>;
#interrupt-cells = <1>;
bus-range = <0x0 0xff>;
#address-cells = <3>;
#size-cells = <2>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &gic GIC_SPI 169 IRQ_TYPE_EDGE_RISING>;
device_type = "pci";
ranges = <0x81000000 0 0 0xfa500000 0x0 0x10000
/* downstream I/O */
0x82000000 0 0xfa510000 0xfa510000 0 0x002f0000>;
/* non-prefetchable memory */
num-lanes = <1>;
pcie-num = <2>;
clocks = <&clkc CLKID_USB_GENERAL
&clkc CLKID_PCIE_PLL
&clkc CLKID_MIPI_ENABLE_GATE
&clkc CLKID_MIPI_BANDGAP_GATE
&clkc CLKID_PCIE_B
&clkc CLKID_PCIE_CML_EN1>;
clock-names = "pcie_general",
"pcie_refpll",
"pcie_mipi_enable_gate",
"pcie_mipi_bandgap_gate",
"pcie",
"port";
/*reset-gpio-type 0:Shared pad(no reset)1:OD pad2:Normal pad*/
gpio-type = <0>;
status = "okay";
};
uart_A: serial@ffd24000 {
compatible = "amlogic, meson-uart";
reg = <0xffd24000 0x18>;
interrupts = <0 26 1>;
status = "disable";
clocks = <&xtal
&clkc CLKID_UART0>;
clock-names = "clk_uart",
"clk_gate";
fifosize = < 128 >;
pinctrl-names = "default";
pinctrl-0 = <&a_uart_pins>;
};
uart_B: serial@ffd23000 {
compatible = "amlogic, meson-uart";
reg = <0xffd23000 0x18>;
interrupts = <0 75 1>;
status = "disable";
clocks = <&xtal
&clkc CLKID_UART1>;
clock-names = "clk_uart",
"clk_gate";
fifosize = < 64 >;
pinctrl-names = "default";
pinctrl-0 = <&b_uart_pins>;
};
/* Sound iomap */
aml_snd_iomap {
compatible = "amlogic, snd-iomap";
status = "okay";
#address-cells=<1>;
#size-cells=<1>;
ranges;
pdm_bus {
reg = <0xFF632000 0x2000>;
};
audiobus_base {
reg = <0xFF642000 0x2000>;
};
};
pdm_codec:dummy{
#sound-dai-cells = <0>;
compatible = "amlogic, pdm_dummy_codec";
status = "okay";
};
dummy_codec:dummy{
#sound-dai-cells = <0>;
compatible = "amlogic, aml_dummy_codec";
status = "okay";
};
auge_sound {
compatible = "amlogic, axg-sound-card";
aml-audio-card,name = "AML-AUGESOUND";
aml-audio-card,dai-link@0 {
format = "dsp_a";
mclk-fs = <512>;
//continuous-clock;
//bitclock-inversion;
//frame-inversion;
//bitclock-master = <&tdmacodec>;
//frame-master = <&tdmacodec>;
tdmacpu: cpu {
sound-dai = <&aml_tdma>;
dai-tdm-slot-tx-mask =
<1 1 1 1 1 1 1 1>;
dai-tdm-slot-rx-mask =
<1 1 1 1 1 1 1 1>;
dai-tdm-slot-num = <8>;
dai-tdm-slot-width = <32>;
system-clock-frequency = <24576000>;
};
tdmacodec: codec {
sound-dai = <&dummy_codec &dummy_codec>;
};
};
aml-audio-card,dai-link@1 {
format = "i2s";
mclk-fs = <256>;
//continuous-clock;
//bitclock-inversion;
//frame-inversion;
//bitclock-master = <&aml_tdmb>;
//frame-master = <&aml_tdmb>;
cpu {
sound-dai = <&aml_tdmb>;
dai-tdm-slot-tx-mask = <1 1>;
dai-tdm-slot-rx-mask = <1 1>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
system-clock-frequency = <12288000>;
};
codec {
sound-dai = <&dummy_codec &dummy_codec>;
};
};
aml-audio-card,dai-link@2 {
format = "i2s";
mclk-fs = <256>;
//continuous-clock;
//bitclock-inversion;
//frame-inversion;
//bitclock-master = <&aml_tdmc>;
//frame-master = <&aml_tdmc>;
cpu {
sound-dai = <&aml_tdmc>;
dai-tdm-slot-tx-mask = <1 1>;
dai-tdm-slot-rx-mask = <1 1>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
system-clock-frequency = <12288000>;
};
codec {
sound-dai = <&tas5707_36 &tas5707_3a>;
};
};
aml-audio-card,dai-link@3 {
mclk-fs = <64>;
cpu {
sound-dai = <&aml_pdm>;
};
codec {
sound-dai = <&pdm_codec>;
};
};
aml-audio-card,dai-link@4 {
mclk-fs = <128>;
cpu {
sound-dai = <&aml_spdif>;
system-clock-frequency = <6144000>;
};
codec {
sound-dai = <&dummy_codec>;
};
};
};
sd_emmc_c: emmc@ffe07000 {
status = "disable";
compatible = "amlogic, meson-mmc-axg";
reg = <0xffe07000 0x2000>;
interrupts = <0 218 1>;
pinctrl-names = "emmc_clk_cmd_pins", "emmc_all_pins";
pinctrl-0 = <&emmc_clk_cmd_pins>;
pinctrl-1 = <&emmc_conf_pull_up &emmc_conf_pull_done>;
clocks = <&clkc CLKID_SD_EMMC_C>,
<&clkc CLKID_SD_EMMC_C_P0_COMP>,
<&clkc CLKID_FCLK_DIV2>,
<&clkc CLKID_FCLK_DIV5>,
<&xtal>;
clock-names = "core", "clkin0", "clkin1", "clkin2", "xtal";
bus-width = <8>;
cap-sd-highspeed;
cap-mmc-highspeed;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
max-frequency = <200000000>;
non-removable;
disable-wp;
emmc {
pinname = "emmc";
ocr_avail = <0x200080>; /**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_1_8V_DDR",
"MMC_CAP_HW_RESET",
"MMC_CAP_ERASE",
"MMC_CAP_CMD23";
/*caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";*/
f_min = <400000>;
f_max = <100000000>;
max_req_size = <0x20000>; /**128KB*/
gpio_dat3 = <&gpio BOOT_3 GPIO_ACTIVE_HIGH>;
hw_reset = <&gpio BOOT_9 GPIO_ACTIVE_HIGH>;
card_type = <1>;
/* 1:mmc card(include eMMC),
* 2:sd card(include tSD)
*/
};
};
partitions: partitions{
parts = <11>;
part-0 = <&logo>;
part-1 = <&recovery>;
part-2 = <&rsv>;
part-3 = <&tee>;
part-4 = <&crypt>;
part-5 = <&misc>;
part-6 = <&instaboot>;
part-7 = <&boot>;
part-8 = <&system>;
part-9 = <&cache>;
part-10 = <&data>;
logo:logo{
pname = "logo";
size = <0x0 0x2000000>;
mask = <1>;
};
recovery:recovery{
pname = "recovery";
size = <0x0 0x2000000>;
mask = <1>;
};
rsv:rsv{
pname = "rsv";
size = <0x0 0x800000>;
mask = <1>;
};
tee:tee{
pname = "tee";
size = <0x0 0x800000>;
mask = <1>;
};
crypt:crypt{
pname = "crypt";
size = <0x0 0x2000000>;
mask = <1>;
};
misc:misc{
pname = "misc";
size = <0x0 0x2000000>;
mask = <1>;
};
instaboot:instaboot{
pname = "instaboot";
size = <0x0 0x400000>;
mask = <1>;
};
boot:boot
{
pname = "boot";
size = <0x0 0x2000000>;
mask = <1>;
};
system:system
{
pname = "system";
size = <0x0 0x80000000>;
mask = <1>;
};
cache:cache
{
pname = "cache";
size = <0x0 0x20000000>;
mask = <2>;
};
data:data
{
pname = "data";
size = <0xffffffff 0xffffffff>;
mask = <4>;
};
};
adc_keypad {
compatible = "amlogic, adc_keypad";
status = "okay";
key_name = "power", "vol-", "vol+", "wifi", "<<", ">>";
key_num = <6>;
io-channels = <&saradc SARADC_CH0>;
io-channel-names = "key-chan-0";
key_chan = <SARADC_CH0 SARADC_CH0 SARADC_CH0
SARADC_CH0 SARADC_CH0 SARADC_CH0>;
key_code = <116 114 115 139 105 106>;
key_val = <0 143 266 389 512 635>; //val=voltage/1800mV*1023
key_tolerance = <40 40 40 40 40 40>;
};
unifykey{
compatible = "amlogic, unifykey";
status = "ok";
unifykey-num = <6>;
unifykey-index-0 = <&keysn_0>;
unifykey-index-1 = <&keysn_1>;
unifykey-index-2 = <&keysn_2>;
unifykey-index-3 = <&keysn_3>;
unifykey-index-4 = <&keysn_4>;
unifykey-index-5 = <&keysn_5>;
keysn_0: key_0{
key-name = "usid";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_1:key_1{
key-name = "mac";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_2:key_2{
key-name = "secure_boot_set";
key-device = "efuse";
key-permit = "write";
};
keysn_3:key_3{
key-name = "mac_bt";
key-device = "normal";
key-permit = "read","write","del";
key-type = "mac";
};
keysn_4:key_4{
key-name = "mac_wifi";
key-device = "normal";
key-permit = "read","write","del";
key-type = "mac";
};
keysn_5:key_5{
key-name = "deviceid";
key-device = "normal";
key-permit = "read","write","del";
};
};//End unifykey
}; /* end of / */
&efuse {
status = "ok";
};
/* Audio Related start */
/* for spk board */
&i2c1 {
status = "okay";
pinctrl-names="default";
pinctrl-0=<&b_i2c_master>;
tlv320adc3101_32: tlv320adc3101_32@30 {
compatible = "ti,tlv320adc3101";
#sound-dai-cells = <0>;
reg = <0x32>;
status = "disabled";
};
tas5707_36: tas5707_36@36 {
compatible = "ti,tas5707";
#sound-dai-cells = <0>;
reg = <0x1b>;
status = "okay";
reset_pin = <&gpio_ao GPIOAO_4 0>;
};
tas5707_3a: tas5707_3a@3a {
compatible = "ti,tas5707";
#sound-dai-cells = <0>;
reg = <0x1d>;
status = "okay";
};
};
/* for mic board */
&i2c_AO {
status = "okay";
pinctrl-names="default";
pinctrl-0=<&ao_i2c_master_pin2>;
tlv320adc3101_30: tlv320adc3101_30@30 {
compatible = "ti,tlv320adc3101";
#sound-dai-cells = <0>;
reg = <0x30>;
status = "okay";
};
tlv320adc3101_34: tlv320adc3101_34@30 {
compatible = "ti,tlv320adc3101";
#sound-dai-cells = <0>;
reg = <0x34>;
status = "okay";
};
tlv320adc3101_36: tlv320adc3101_36@30 {
compatible = "ti,tlv320adc3101";
#sound-dai-cells = <0>;
reg = <0x36>;
status = "okay";
};
};
&audiobus {
aml_tdma: tdma {
compatible = "amlogic, axg-snd-tdma";
#sound-dai-cells = <0>;
dai-tdm-lane-slot-mask = <1>;
dai-tdm-clk-sel = <0>;
clocks = <&clkaudio CLKID_AUDIO_MCLK_A
&clkc CLKID_MPLL0>;
clock-names = "mclk", "clk_srcpll";
pinctrl-names = "tdm_pins";
pinctrl-0 = <&tdmout_a &tdmin_a>;
};
aml_tdmb: tdmb {
compatible = "amlogic, axg-snd-tdmb";
#sound-dai-cells = <0>;
dai-tdm-lane-slot-mask = <1 1 1 1>;
dai-tdm-clk-sel = <1>;
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
&clkc CLKID_MPLL1>;
clock-names = "mclk", "clk_srcpll";
pinctrl-names = "tdm_pins";
pinctrl-0 = <&tdmb_mclk &tdmout_b>;
};
aml_tdmc: tdmc {
compatible = "amlogic, axg-snd-tdmc";
#sound-dai-cells = <0>;
dai-tdm-lane-slot-mask-in = <0 1 0 0>;
dai-tdm-lane-slot-mask-out = <1 0 1 1>;
dai-tdm-clk-sel = <2>;
clocks = <&clkaudio CLKID_AUDIO_MCLK_C
&clkc CLKID_MPLL2>;
clock-names = "mclk", "clk_srcpll";
pinctrl-names = "tdm_pins";
pinctrl-0 = <&tdmc_mclk &tdmout_c>;// &tdmin_c>;
};
aml_spdif: spdif {
compatible = "amlogic, axg-snd-spdif";
#sound-dai-cells = <0>;
clocks = <&clkc CLKID_MPLL0
&clkc CLKID_FCLK_DIV4
&clkaudio CLKID_AUDIO_SPDIFIN
&clkaudio CLKID_AUDIO_SPDIFOUT
&clkaudio CLKID_AUDIO_SPDIFIN_CTRL
&clkaudio CLKID_AUDIO_SPDIFOUT_CTRL>;
clock-names = "sysclk", "fixed_clk", "gate_spdifin",
"gate_spdifout", "clk_spdifin", "clk_spdifout";
interrupts =
<GIC_SPI 87 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-0 = <&spdifout &spdifin>;
status = "okay";
};
aml_pdm: pdm {
compatible = "amlogic, axg-snd-pdm";
#sound-dai-cells = <0>;
clocks = <&clkaudio CLKID_AUDIO_PDM
&clkc CLKID_FCLK_DIV3
&clkc CLKID_MPLL3
&clkaudio CLKID_AUDIO_PDMIN0
&clkaudio CLKID_AUDIO_PDMIN1>;
clock-names = "gate",
"sysclk_srcpll",
"dclk_srcpll",
"pdm_dclk",
"pdm_sysclk";
pinctrl-names = "pdm_pins";
pinctrl-0 = <&pdmin>;
filter_mode = <1>; /* mode 0~4, defalut:1 */
status = "okay";
};
}; /* end of audiobus */
&pinctrl_periphs {
tdmout_a: tdmout_a {
mux {
groups = "tdma_sclk",
"tdma_fs",
"tdma_dout0_x15";
function = "tdma_out";
};
};
tdmin_a: tdmin_a {
mux {
groups = "tdma_din0";
function = "tdma_in";
};
};
tdmb_mclk: tdmb_mclk {
mux {
groups = "mclk_b";
function = "mclk_b";
};
};
tdmout_b: tdmout_b {
mux {
groups = "tdmb_sclk",
"tdmb_fs",
"tdmb_dout0",
"tdmb_dout1",
"tdmb_dout2_a12",
"tdmb_dout3_a13";
function = "tdmb_out";
};
};
// tdmin and tdmout are the same pins. can't use at same time
/*
*tdmin_b:tdmin_b {
* mux {
* groups = "tdmb_din0",
* "tdmb_din1",
* "tdmb_din2_a12",
* "tdmb_din3_a13";
* function = "tdmb_in";
* };
*};
*/
tdmc_mclk: tdmc_mclk {
mux {
groups = "mclk_a";
function = "mclk_a";
};
};
tdmout_c:tdmout_c {
mux {
groups = "tdmc_sclk",
"tdmc_fs",
"tdmc_dout0",
"tdmc_dout1",
"tdmc_dout2_a6",
"tdmc_dout3_a7";
function = "tdmc_out";
};
};
//tdmin_c:tdmin_c {
// mux {
// groups = "tdmc_din0",
// "tdmc_din1",
// "tdmc_din2_a6",
// "tdmc_din3_a7";
// function = "tdmc_in";
// };
//};
spdifout: spidfout {
mux {
groups = "spdif_out_a20";
function = "spdif_out";
};
};
spdifin: spidfin {
mux {
groups = "spdif_in_a19";
function = "spdif_in";
};
};
pdmin: pdmin {
mux {
groups = "pdm_dclk_a14",
"pdm_din0",
"pdm_din1",
"pdm_din2",
"pdm_din3";
function = "pdm";
};
};
}; /* end of pinctrl_periphs */
/* Audio Related End */
&spicc0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&spi0_pins>;
cs-gpios = <&gpio GPIOZ_3 0>;
};
&spicc1 {
status = "disabled";
pinctrl-names = "default";
pinctrl-0 = <&spi1_x_pins>;
cs-gpios = <&gpio GPIOX_16 0>;
};
&aobus{
uart_AO: serial@3000 {
compatible = "amlogic, meson-uart";
reg = <0x3000 0x18>;
interrupts = <0 193 1>;
status = "okay";
clocks = <&xtal>;
clock-names = "clk_uart";
xtal_tick_en = <1>;
fifosize = < 64 >;
pinctrl-names = "default";
pinctrl-0 = <&ao_uart_pins>;
support-sysrq = <0>; /* 0 not support , 1 support */
};
uart_AO_B: serial@4000 {
compatible = "amlogic, meson-uart";
reg = <0x4000 0x18>;
interrupts = <0 197 1>;
status = "disable";
clocks = <&xtal>;
clock-names = "clk_uart";
fifosize = < 64 >;
pinctrl-names = "default";
pinctrl-0 = <&ao_b_uart_pins>;
};
};
&audio_data{
status = "okay";
};

View File

@@ -0,0 +1,971 @@
/*
* arch/arm/boot/dts/amlogic/axg_a113x_skt.dts
*
* Copyright (C) 2017 Amlogic, Inc. All rights reserved.
*
* 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.
*
*/
/dts-v1/;
#include "mesonaxg.dtsi"
/ {
model = "Amlogic";
amlogic-dt-id = "axg_a113x_skt_v1";
compatible = "amlogic, axg";
interrupt-parent = <&gic>;
#address-cells = <1>;
#size-cells = <1>;
aliases {
serial0 = &uart_AO;
serial1 = &uart_A;
};
memory@00000000 {
device_type = "memory";
linux,usable-memory = <0x000000 0x20000000>;
};
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
/* global autoconfigured region for contiguous allocations */
ramoops@0x07400000 {
compatible = "ramoops";
reg = <0x07400000 0x00100000>;
record-size = <0x8000>;
console-size = <0x8000>;
ftrace-size = <0x0>;
pmsg-size = <0x8000>;
};
secmon_reserved:linux,secmon {
compatible = "shared-dma-pool";
reusable;
size = <0x400000>;
alignment = <0x400000>;
alloc-ranges = <0x05000000 0x400000>;
};
secos_reserved:linux,secos {
status = "disable";
compatible = "amlogic, aml_secos_memory";
reg = <0x05300000 0x2000000>;
no-map;
};
};
mtd_nand {
compatible = "amlogic, aml_mtd_nand";
dev_name = "mtdnand";
status = "okay";
reg = <0xFFE07800 0x200>;
interrupts = < 0 34 1 >;
pinctrl-names = "nand_rb_mod","nand_norb_mod", "nand_cs_only";
pinctrl-0 = <&all_nand_pins>;
pinctrl-1 = <&all_nand_pins>;
pinctrl-2 = <&nand_cs_pins>;
device_id = <0>;
/*fip/tpl configurations, must be same
* with uboot if bl_mode was set as 1
* bl_mode: 0 compact mode; 1 descrete mode
* if bl_mode was set as 1, fip configeration will work
*/
bl_mode = <1>;
/*copy count of fip*/
fip_copies = <4>;
/*size of each fip copy */
fip_size = <0x200000>;
nand_clk_ctrl = <0xFFE07000>;
plat-names = "bootloader","nandnormal";
plat-num = <2>;
plat-part-0 = <&bootloader>;
plat-part-1 = <&nandnormal>;
bootloader: bootloader{
enable_pad ="ce0";
busy_pad = "rb0";
timming_mode = "mode5";
bch_mode = "bch8_1k";
t_rea = <20>;
t_rhoh = <15>;
chip_num = <1>;
part_num = <0>;
rb_detect = <1>;
};
nandnormal: nandnormal{
enable_pad ="ce0";
busy_pad = "rb0";
timming_mode = "mode5";
bch_mode = "bch8_1k";
plane_mode = "twoplane";
t_rea = <20>;
t_rhoh = <15>;
chip_num = <2>;
part_num = <3>;
partition = <&nand_partitions>;
rb_detect = <1>;
};
nand_partitions:nand_partition{
/*
* if bl_mode is 1, tpl size was generate by
* fip_copies * fip_size which
* will not skip bad when calculating
* the partition size;
*
* if bl_mode is 0,
* tpl partition must be comment out.
*/
tpl{
offset=<0x0 0x0>;
size=<0x0 0x0>;
};
logo{
offset=<0x0 0x0>;
size=<0x0 0x200000>;
};
recovery{
offset=<0x0 0x0>;
size=<0x0 0x1000000>;
};
boot{
offset=<0x0 0x0>;
size=<0x0 0xF00000>;
};
system{
offset=<0x0 0x0>;
size=<0x0 0xDC40000>;
};
data{
offset=<0xffffffff 0xffffffff>;
size=<0x0 0x0>;
};
};
};
aml_sensor0: aml-sensor@0 {
compatible = "amlogic, aml-thermal";
device_name = "thermal";
#thermal-sensor-cells = <1>;
cooling_devices {
cpufreq_cool_cluster0 {
min_state = <1000000>;
dyn_coeff = <140>;
cluster_id = <0>;
node_name = "cpufreq_cool0";
device_type = "cpufreq";
};
cpucore_cool_cluster0 {
min_state = <1>;
dyn_coeff = <0>;
cluster_id = <0>;
node_name = "cpucore_cool0";
device_type = "cpucore";
};
};
cpufreq_cool0:cpufreq_cool0 {
#cooling-cells = <2>; /* min followed by max */
};
cpucore_cool0:cpucore_cool0 {
#cooling-cells = <2>; /* min followed by max */
};
};
thermal-zones {
soc_thermal {
polling-delay = <1000>;
polling-delay-passive = <100>;
sustainable-power = <1050>;
thermal-sensors = <&aml_sensor0 3>;
trips {
switch_on: trip-point@0 {
temperature = <70000>;
hysteresis = <1000>;
type = "passive";
};
control: trip-point@1 {
temperature = <80000>;
hysteresis = <1000>;
type = "passive";
};
hot: trip-point@2 {
temperature = <85000>;
hysteresis = <5000>;
type = "hot";
};
critical: trip-point@3 {
temperature = <260000>;
hysteresis = <1000>;
type = "critical";
};
};
cooling-maps {
cpufreq_cooling_map {
trip = <&control>;
cooling-device = <&cpufreq_cool0 0 4>;
contribution = <1024>;
};
cpucore_cooling_map {
trip = <&control>;
cooling-device = <&cpucore_cool0 0 3>;
contribution = <1024>;
};
};
};
};
dwc3: dwc3@ff500000 {
compatible = "synopsys, dwc3";
status = "okay";
reg = <0xff500000 0x100000>;
interrupts = <0 30 4>;
usb-phy = <&usb2_phy>, <&usb3_phy>;
cpu-type = "gxl";
clock-src = "usb3.0";
clocks = <&clkc CLKID_USB_GENERAL>;
clock-names = "dwc_general";
};
usb2_phy: usb2phy@ffe09000 {
compatible = "amlogic, amlogic-new-usb2";
status = "okay";
portnum = <4>;
reg = <0xffe09000 0x80
0xffd01008 0x4>;
};
usb3_phy: usb3phy@ffe09080 {
compatible = "amlogic, amlogic-new-usb3";
status = "okay";
portnum = <0>;
reg = <0xffe09080 0x20>;
interrupts = <0 16 4>;
otg = <1>;
gpio-vbus-power = "GPIOAO_5";
gpios = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
};
dwc2_a {
compatible = "amlogic, dwc2";
device_name = "dwc2_a";
reg = <0xff400000 0x40000>;
status = "okay";
interrupts = <0 31 4>;
pl-periph-id = <0>; /** lm name */
clock-src = "usb0"; /** clock src */
port-id = <0>; /** ref to mach/usb.h */
port-type = <2>; /** 0: otg, 1: host, 2: slave */
port-speed = <0>; /** 0: default, high, 1: full */
port-config = <0>; /** 0: default */
/*0:default,1:single,2:incr,3:incr4,4:incr8,5:incr16,6:disable*/
port-dma = <0>;
port-id-mode = <0>; /** 0: hardware, 1: sw_host, 2: sw_slave*/
usb-fifo = <728>;
cpu-type = "gxl";
/** 0: normal, 1: otg+dwc3 host only, 2: otg+dwc3 device only*/
controller-type = <3>;
phy-reg = <0xffe09000>;
phy-reg-size = <0xa0>;
clocks = <&clkc CLKID_USB_GENERAL
&clkc CLKID_USB1_TO_DDR
&clkc CLKID_USB1>;
clock-names = "usb_general",
"usb1",
"usb1_to_ddr";
};
uart_A: serial@ffd24000 {
compatible = "amlogic, meson-uart";
reg = <0xffd24000 0x18>;
interrupts = <0 26 1>;
status = "okay";
clocks = <&xtal
&clkc CLKID_UART0>;
clock-names = "clk_uart",
"clk_gate";
fifosize = < 128 >;
pinctrl-names = "default";
pinctrl-0 = <&a_uart_pins>;
};
uart_B: serial@ffd23000 {
compatible = "amlogic, meson-uart";
reg = <0xffd23000 0x18>;
interrupts = <0 75 1>;
status = "disable";
clocks = <&xtal
&clkc CLKID_UART1>;
clock-names = "clk_uart",
"clk_gate";
fifosize = < 64 >;
pinctrl-names = "default";
pinctrl-0 = <&b_uart_pins>;
};
/* Sound iomap */
aml_snd_iomap {
compatible = "amlogic, snd-iomap";
status = "okay";
#address-cells=<1>;
#size-cells=<1>;
ranges;
pdm_bus {
reg = <0xFF632000 0x2000>;
};
audiobus_base {
reg = <0xFF642000 0x2000>;
};
};
pdm_codec:dummy{
#sound-dai-cells = <0>;
compatible = "amlogic, pdm_dummy_codec";
status = "okay";
};
dummy_codec:dummy{
#sound-dai-cells = <0>;
compatible = "amlogic, aml_dummy_codec";
status = "okay";
};
auge_sound {
compatible = "amlogic, axg-sound-card";
aml-audio-card,name = "AML-AUGESOUND";
aml-audio-card,dai-link@0 {
format = "dsp_a";
mclk-fs = <256>;//512
//continuous-clock;
bitclock-inversion;
//frame-inversion;
bitclock-master = <&aml_tdma>;
frame-master = <&aml_tdma>;
cpu {
sound-dai = <&aml_tdma>;
dai-tdm-slot-tx-mask = <1 1>;
dai-tdm-slot-rx-mask = <1 1>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
system-clock-frequency = <12288000>;
};
codec {
sound-dai = <&dummy_codec &dummy_codec>;
};
};
aml-audio-card,dai-link@1 {
format = "i2s";
mclk-fs = <256>;
//continuous-clock;
//bitclock-inversion;
//frame-inversion;
bitclock-master = <&aml_tdmb>;
frame-master = <&aml_tdmb>;
cpu {
sound-dai = <&aml_tdmb>;
dai-tdm-slot-tx-mask = <1 1>;
dai-tdm-slot-rx-mask = <1 1>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
system-clock-frequency = <12288000>;
};
codec {
sound-dai = <&tas5707_36 &tlv320adc3101_32>;
};
};
aml-audio-card,dai-link@2 {
format = "i2s";
mclk-fs = <256>;
//continuous-clock;
/* tdmb clk using tdmc so no bclk-inv */
//bitclock-inversion;
//frame-inversion;
bitclock-master = <&aml_tdmc>;
frame-master = <&aml_tdmc>;
cpu {
sound-dai = <&aml_tdmc>;
dai-tdm-slot-tx-mask = <1 1>;
dai-tdm-slot-rx-mask = <1 1>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
system-clock-frequency = <12288000>;
};
codec {
sound-dai = <&dummy_codec>;
};
};
aml-audio-card,dai-link@3 {
mclk-fs = <256>;
cpu {
sound-dai = <&aml_pdm>;
};
codec {
sound-dai = <&pdm_codec>;
};
};
/*aml-audio-card,dai-link@4 {
* mclk-fs = <128>;
* cpu {
* sound-dai = <&aml_spdif>;
* };
* codec {
* sound-dai = <&dummy_codec>;
* };
*};
*/
};
bt-dev{
compatible = "amlogic, bt-dev";
dev_name = "bt-dev";
status = "okay";
gpio_reset = <&gpio GPIOX_21 GPIO_ACTIVE_HIGH>;
};
wifi{
compatible = "amlogic, aml_wifi";
dev_name = "aml_wifi";
status = "okay";
interrupt_pin = <&gpio GPIOX_6 GPIO_ACTIVE_HIGH>;
irq_trigger_type = "GPIO_IRQ_LOW";
power_on_pin = <&gpio GPIOX_7 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&wifi_32k_pins>;
pwm_config = <&wifi_pwm_conf>;
};
wifi_pwm_conf:wifi_pwm_conf{
pwm_channel1_conf {
pwms = <&pwm_ab MESON_PWM_0 30040 0>;
duty-cycle = <15020>;
times = <10>;
};
pwm_channel2_conf {
pwms = <&pwm_ab MESON_PWM_2 30030 0>;
duty-cycle = <15015>;
times = <12>;
};
};
sd_emmc_c: emmc@ffe07000 {
status = "disabled";
compatible = "amlogic, meson-mmc-axg";
reg = <0xffe07000 0x2000>;
interrupts = <0 218 1>;
pinctrl-names = "emmc_clk_cmd_pins", "emmc_all_pins";
pinctrl-0 = <&emmc_clk_cmd_pins>;
pinctrl-1 = <&emmc_conf_pull_up &emmc_conf_pull_done>;
clocks = <&clkc CLKID_SD_EMMC_C>,
<&clkc CLKID_SD_EMMC_C_P0_COMP>,
<&clkc CLKID_FCLK_DIV2>,
<&clkc CLKID_FCLK_DIV5>,
<&xtal>;
clock-names = "core", "clkin0", "clkin1", "clkin2", "xtal";
bus-width = <8>;
cap-sd-highspeed;
cap-mmc-highspeed;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
max-frequency = <200000000>;
non-removable;
disable-wp;
emmc {
pinname = "emmc";
ocr_avail = <0x200080>; /**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_1_8V_DDR",
"MMC_CAP_HW_RESET",
"MMC_CAP_ERASE",
"MMC_CAP_CMD23";
/*caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";*/
f_min = <400000>;
f_max = <100000000>;
max_req_size = <0x20000>; /**128KB*/
gpio_dat3 = <&gpio BOOT_3 GPIO_ACTIVE_HIGH>;
hw_reset = <&gpio BOOT_9 GPIO_ACTIVE_HIGH>;
card_type = <1>;
/* 1:mmc card(include eMMC),
* 2:sd card(include tSD)
*/
};
};
sd_emmc_b:sdio@ffe05000 {
status = "okay";
compatible = "amlogic, meson-mmc-axg";
reg = <0xffe05000 0x2000>;
interrupts = <0 217 4>;
pinctrl-names = "sdio_clk_cmd_pins", "sdio_all_pins";
pinctrl-0 = <&sdio_clk_cmd_pins>;
pinctrl-1 = <&sdio_all_pins>;
clocks = <&clkc CLKID_SD_EMMC_B>,
<&clkc CLKID_SD_EMMC_B_P0_COMP>,
<&clkc CLKID_FCLK_DIV2>;
clock-names = "core", "clkin0", "clkin1";
bus-width = <4>;
cap-sd-highspeed;
cap-mmc-highspeed;
max-frequency = <100000000>;
non-removable;
disable-wp;
sdio {
pinname = "sdio";
ocr_avail = <0x200080>; /**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_UHS_SDR12",
"MMC_CAP_UHS_SDR25",
"MMC_CAP_UHS_SDR50",
"MMC_CAP_UHS_SDR104",
"MMC_PM_KEEP_POWER",
"MMC_CAP_SDIO_IRQ";
f_min = <400000>;
f_max = <200000000>;
max_req_size = <0x20000>; /**128KB*/
card_type = <3>;
/* 3:sdio device(ie:sdio-wifi),
* 4:SD combo (IO+mem) card
*/
};
};
adc_keypad {
compatible = "amlogic, adc_keypad";
status = "okay";
key_name = "power", "vol-", "vol+", "wifi", "<<", ">>";
key_num = <6>;
io-channels = <&saradc SARADC_CH0>;
io-channel-names = "key-chan-0";
key_chan = <SARADC_CH0 SARADC_CH0 SARADC_CH0
SARADC_CH0 SARADC_CH0 SARADC_CH0>;
key_code = <116 114 115 139 105 106>;
key_val = <0 143 266 389 512 635>; //val=voltage/1800mV*1023
key_tolerance = <40 40 40 40 40 40>;
};
partitions: partitions{
parts = <11>;
part-0 = <&logo>;
part-1 = <&recovery>;
part-2 = <&rsv>;
part-3 = <&tee>;
part-4 = <&crypt>;
part-5 = <&misc>;
part-6 = <&instaboot>;
part-7 = <&boot>;
part-8 = <&system>;
part-9 = <&cache>;
part-10 = <&data>;
logo:logo{
pname = "logo";
size = <0x0 0x2000000>;
mask = <1>;
};
recovery:recovery{
pname = "recovery";
size = <0x0 0x2000000>;
mask = <1>;
};
rsv:rsv{
pname = "rsv";
size = <0x0 0x800000>;
mask = <1>;
};
tee:tee{
pname = "tee";
size = <0x0 0x800000>;
mask = <1>;
};
crypt:crypt{
pname = "crypt";
size = <0x0 0x2000000>;
mask = <1>;
};
misc:misc{
pname = "misc";
size = <0x0 0x2000000>;
mask = <1>;
};
instaboot:instaboot{
pname = "instaboot";
size = <0x0 0x400000>;
mask = <1>;
};
boot:boot
{
pname = "boot";
size = <0x0 0x2000000>;
mask = <1>;
};
system:system
{
pname = "system";
size = <0x0 0x80000000>;
mask = <1>;
};
cache:cache
{
pname = "cache";
size = <0x0 0x20000000>;
mask = <2>;
};
data:data
{
pname = "data";
size = <0xffffffff 0xffffffff>;
mask = <4>;
};
};
unifykey{
compatible = "amlogic, unifykey";
status = "ok";
unifykey-num = <6>;
unifykey-index-0 = <&keysn_0>;
unifykey-index-1 = <&keysn_1>;
unifykey-index-2 = <&keysn_2>;
unifykey-index-3 = <&keysn_3>;
unifykey-index-4 = <&keysn_4>;
unifykey-index-5 = <&keysn_5>;
keysn_0: key_0{
key-name = "usid";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_1:key_1{
key-name = "mac";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_2:key_2{
key-name = "secure_boot_set";
key-device = "efuse";
key-permit = "write";
};
keysn_3:key_3{
key-name = "mac_bt";
key-device = "normal";
key-permit = "read","write","del";
key-type = "mac";
};
keysn_4:key_4{
key-name = "mac_wifi";
key-device = "normal";
key-permit = "read","write","del";
key-type = "mac";
};
keysn_5:key_5{
key-name = "deviceid";
key-device = "normal";
key-permit = "read","write","del";
};
};//End unifykey
}; /* end of / */
&efuse {
status = "ok";
};
&pwm_ab {
status = "okay";
};
/* Audio Related start */
/* for spk board */
&i2c1 {
status = "okay";
pinctrl-names="default";
pinctrl-0=<&b_i2c_master>;
tlv320adc3101_32: tlv320adc3101_32@30 {
compatible = "ti,tlv320adc3101";
#sound-dai-cells = <0>;
reg = <0x19>;
status = "okay";
};
tas5707_36: tas5707_36@36 {
compatible = "ti,tas5707";
#sound-dai-cells = <0>;
reg = <0x1b>;
status = "okay";
reset_pin = <&gpio_ao GPIOAO_4 0>;
};
tas5707_3a: tas5707_3a@3a {
compatible = "ti,tas5707";
#sound-dai-cells = <0>;
reg = <0x1d>;
status = "disable";
};
};
/* for mic board */
&i2c_AO {
status = "okay";
pinctrl-names="default";
pinctrl-0=<&ao_i2c_master_pin2>;
pca9557:pca9557@0x1f {
compatible = "nxp,pca9557";
reg = <0x1f>;
status = "okay";
};
tlv320adc3101_30: tlv320adc3101_30@30 {
compatible = "ti,tlv320adc3101";
#sound-dai-cells = <0>;
reg = <0x18>;
status = "disable";
};
tlv320adc3101_34: tlv320adc3101_34@30 {
compatible = "ti,tlv320adc3101";
#sound-dai-cells = <0>;
reg = <0x1a>;
status = "disable";
};
tlv320adc3101_36: tlv320adc3101_36@30 {
compatible = "ti,tlv320adc3101";
#sound-dai-cells = <0>;
reg = <0x1b>;
status = "disable";
};
};
&audiobus {
aml_tdma: tdma {
compatible = "amlogic, axg-snd-tdma";
#sound-dai-cells = <0>;
dai-tdm-lane-slot-mask = <1 1 1 1>;
/* select tdm lr/bclk src, see aml_axg_tdm.c */
dai-tdm-clk-sel = <0>;
clocks = <&clkaudio CLKID_AUDIO_MCLK_A
&clkc CLKID_MPLL0>;
clock-names = "mclk", "clk_srcpll";
pinctrl-names = "tdm_pins";
pinctrl-0 = <&tdmin_a &tdmout_a>;
};
aml_tdmb: tdmb {
compatible = "amlogic, axg-snd-tdmb";
#sound-dai-cells = <0>;
dai-tdm-lane-slot-mask-out = <1 0>;
dai-tdm-lane-slot-mask-in = <0 1>;
dai-tdm-clk-sel = <2>;
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
&clkc CLKID_MPLL1>;
clock-names = "mclk", "clk_srcpll";
pinctrl-names = "tdm_pins";
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
};
aml_tdmc: tdmc {
compatible = "amlogic, axg-snd-tdmc";
#sound-dai-cells = <0>;
dai-tdm-lane-slot-mask-out = <1 0>;
dai-tdm-lane-slot-mask-in = <0 1>;
dai-tdm-clk-sel = <2>;
clocks = <&clkaudio CLKID_AUDIO_MCLK_C
&clkc CLKID_MPLL2>;
clock-names = "mclk", "clk_srcpll";
pinctrl-names = "tdm_pins";
pinctrl-0 = <&tdmc_mclk &tdmout_c &tdmin_c>;
};
aml_spdif: spdif {
compatible = "amlogic, axg-snd-spdif";
#sound-dai-cells = <0>;
clocks = <&clkc CLKID_MPLL0
&clkc CLKID_FCLK_DIV4
&clkaudio CLKID_AUDIO_SPDIFIN
&clkaudio CLKID_AUDIO_SPDIFOUT
&clkaudio CLKID_AUDIO_SPDIFIN_CTRL
&clkaudio CLKID_AUDIO_SPDIFOUT_CTRL>;
clock-names = "sysclk", "fixed_clk", "gate_spdifin",
"gate_spdifout", "clk_spdifin", "clk_spdifout";
interrupts =
<GIC_SPI 87 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-0 = <&spdifout &spdifin>;
status = "disabled";
};
aml_pdm: pdm {
compatible = "amlogic, axg-snd-pdm";
#sound-dai-cells = <0>;
clocks = <&clkaudio CLKID_AUDIO_PDM
&clkc CLKID_FCLK_DIV3
&clkc CLKID_MPLL3
&clkaudio CLKID_AUDIO_PDMIN0
&clkaudio CLKID_AUDIO_PDMIN1>;
clock-names = "gate",
"sysclk_srcpll",
"dclk_srcpll",
"pdm_dclk",
"pdm_sysclk";
pinctrl-names = "pdm_pins";
pinctrl-0 = <&pdmin>;
filter_mode = <1>; /* mode 0~4, defalut:1 */
status = "okay";
};
}; /* end of audiobus */
&pinctrl_periphs {
tdmout_a: tdmout_a {
mux {
groups = "tdma_sclk",
"tdma_fs",
"tdma_dout0_x15";
function = "tdma_out";
};
};
tdmin_a: tdmin_a {
mux {
groups = "tdma_din0";
function = "tdma_in";
};
};
tdmb_mclk: tdmb_mclk {
mux {
groups = "mclk_b";
function = "mclk_b";
};
};
tdmout_b: tdmout_b {
mux {
groups = "tdmb_sclk",
"tdmb_fs",
"tdmb_dout0";
function = "tdmb_out";
};
};
// tdmin and tdmout are the same pins. can't use at same time
/*
*tdmin_b:tdmin_b {
* mux {
* groups = "tdmb_din0",
* "tdmb_din1",
* "tdmb_din2_a12",
* "tdmb_din3_a13";
* function = "tdmb_in";
* };
*};
*/
tdmin_b: tdmin_b {
mux {
groups = "tdmb_din1";
function = "tdmb_in";
};
};
tdmc_mclk: tdmc_mclk {
mux {
groups = "mclk_a";
function = "mclk_a";
};
};
tdmout_c:tdmout_c {
mux {
groups = "tdmc_sclk",
"tdmc_fs",
"tdmc_dout0";
function = "tdmc_out";
};
};
tdmin_c:tdmin_c {
mux {
groups = "tdmc_din1";
function = "tdmc_in";
};
};
spdifout: spidfout {
mux {
groups = "spdif_out_a20";
function = "spdif_out";
};
};
spdifin: spidfin {
mux {
groups = "spdif_in_a19";
function = "spdif_in";
};
};
pdmin: pdmin {
mux {
groups = "pdm_dclk_a14",
"pdm_din0",
"pdm_din1",
"pdm_din2",
"pdm_din3";
function = "pdm";
};
};
}; /* end of pinctrl_periphs */
/* Audio Related End */
&aobus{
uart_AO: serial@3000 {
compatible = "amlogic, meson-uart";
reg = <0x3000 0x18>;
interrupts = <0 193 1>;
status = "okay";
clocks = <&xtal>;
clock-names = "clk_uart";
xtal_tick_en = <1>;
fifosize = < 64 >;
pinctrl-names = "default";
pinctrl-0 = <&ao_uart_pins>;
support-sysrq = <0>; /* 0 not support , 1 support */
};
uart_AO_B: serial@4000 {
compatible = "amlogic, meson-uart";
reg = <0x4000 0x18>;
interrupts = <0 197 1>;
status = "disable";
clocks = <&xtal>;
clock-names = "clk_uart";
fifosize = < 64 >;
pinctrl-names = "default";
pinctrl-0 = <&ao_b_uart_pins>;
};
};
&audio_data{
status = "okay";
};

View File

@@ -0,0 +1,628 @@
/*
* arch/arm/boot/dts/amlogic/axg_pxp.dts
*
* Copyright (C) 2017 Amlogic, Inc. All rights reserved.
*
* 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.
*
*/
/dts-v1/;
#include "mesonaxg.dtsi"
/ {
model = "Amlogic";
compatible = "amlogic, axg";
interrupt-parent = <&gic>;
#address-cells = <1>;
#size-cells = <1>;
aliases {
serial0 = &uart_AO;
};
memory@00000000 {
device_type = "memory";
linux,usable-memory = <0x100000 0x3ff00000>;
};
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
/* global autoconfigured region for contiguous allocations */
secmon_reserved:linux,secmon {
compatible = "shared-dma-pool";
reusable;
size = <0x400000>;
alignment = <0x400000>;
alloc-ranges = <0x05000000 0x400000>;
};
secos_reserved:linux,secos {
status = "disable";
compatible = "amlogic, aml_secos_memory";
reg = <0x05300000 0x2000000>;
no-map;
};
fb_reserved:linux,meson-fb {
//compatible = "amlogic, fb-memory";
//reg = <0x3e000000 0x1f00000>;
compatible = "shared-dma-pool";
reusable;
size = <0x2000000>;
alignment = <0x400000>;
alloc-ranges = <0x3e000000 0x2000000>;
};
};
aml_sensor0: aml-sensor@0 {
compatible = "amlogic, aml-thermal";
device_name = "thermal";
#thermal-sensor-cells = <1>;
cooling_devices {
cpufreq_cool_cluster0 {
min_state = <1000000>;
dyn_coeff = <140>;
cluster_id = <0>;
node_name = "cpufreq_cool0";
device_type = "cpufreq";
};
cpucore_cool_cluster0 {
min_state = <1>;
dyn_coeff = <0>;
cluster_id = <0>;
node_name = "cpucore_cool0";
device_type = "cpucore";
};
};
cpufreq_cool0:cpufreq_cool0 {
#cooling-cells = <2>; /* min followed by max */
};
cpucore_cool0:cpucore_cool0 {
#cooling-cells = <2>; /* min followed by max */
};
};
thermal-zones {
soc_thermal {
polling-delay = <1000>;
polling-delay-passive = <100>;
sustainable-power = <1050>;
thermal-sensors = <&aml_sensor0 3>;
trips {
switch_on: trip-point@0 {
temperature = <70000>;
hysteresis = <1000>;
type = "passive";
};
control: trip-point@1 {
temperature = <80000>;
hysteresis = <1000>;
type = "passive";
};
hot: trip-point@2 {
temperature = <85000>;
hysteresis = <5000>;
type = "hot";
};
critical: trip-point@3 {
temperature = <260000>;
hysteresis = <1000>;
type = "critical";
};
};
cooling-maps {
cpufreq_cooling_map {
trip = <&control>;
cooling-device = <&cpufreq_cool0 0 4>;
contribution = <1024>;
};
cpucore_cooling_map {
trip = <&control>;
cooling-device = <&cpucore_cool0 0 3>;
contribution = <1024>;
};
};
};
};
pcie_A: pcie@f9800000 {
compatible = "amlogic, amlogic-pcie", "snps,dw-pcie";
reg = <0xf9800000 0x400000
0xff644000 0x2000
0xff646000 0x2000
0xffd01080 0x10
0xf9c00000 0x100000>;
reg-names = "elbi", "phy", "cfg", "reset", "config";
reset-gpio = <&gpio GPIOX_19 0>;
interrupts = <0 177 0>;
#interrupt-cells = <1>;
bus-range = <0x0 0xff>;
#address-cells = <3>;
#size-cells = <2>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &gic GIC_SPI 179 IRQ_TYPE_EDGE_RISING>;
device_type = "pci";
ranges = <0x81000000 0 0 0xf9d00000 0x0 0x10000
/*downstream I/O */
0x82000000 0 0xf9d10000 0xf9d10000 0 0x002f0000>;
/* non-prefetchable memory */
num-lanes = <1>;
pcie-num = <1>;
//clocks = <&clkc CLKID_PCIE_REFPLL
//&clkc CLKID_PCIE_A>;
//clock-names = "pcie_refpll",
// "pcie_a";
status = "disable";
};
pcie_B: pcie@fa000000 {
compatible = "amlogic, amlogic-pcie", "snps,dw-pcie";
reg = <0xfa000000 0x400000
0xff644000 0x2000
0xff648000 0x2000
0xffd01080 0x10
0xfa400000 0x100000>;
reg-names = "elbi", "phy-unuse", "cfg", "reset-unuse", "config";
interrupts = <0 167 0>;
#interrupt-cells = <1>;
bus-range = <0x0 0xff>;
#address-cells = <3>;
#size-cells = <2>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &gic GIC_SPI 169 IRQ_TYPE_EDGE_RISING>;
device_type = "pci";
ranges = <0x81000000 0 0 0xfa500000 0x0 0x10000
/* downstream I/O */
0x82000000 0 0xfa510000 0xfa510000 0 0x002f0000>;
/* non-prefetchable memory */
num-lanes = <1>;
pcie-num = <2>;
//clocks = <&clkc CLKID_PCIE_REFPLL
// &clkc CLKID_PCIE_B>;
//clock-names = "pcie_refpll",
// "pcie_b";
status = "disable";
};
vpu {
compatible = "amlogic, vpu";
dev_name = "vpu";
status = "ok";
clocks = <&clkc CLKID_VAPB_MUX
&clkc CLKID_VPU_INTR
&clkc CLKID_VPU_P0_MUX
&clkc CLKID_VPU_P1_MUX
&clkc CLKID_VPU_MUX>;
clock-names = "vapb_clk",
"vpu_intr_gate",
"vpu_clk0",
"vpu_clk1",
"vpu_clk";
clk_level = <3>;
/* 0: 100.0M 1: 166.7M 2: 200.0M 3: 250.0M */
};
meson-fb {
compatible = "amlogic, meson-axg";
memory-region = <&fb_reserved>;
dev_name = "meson-fb";
status = "okay";
interrupts = <0 3 1
0 89 1>;
interrupt-names = "viu-vsync", "rdma";
mem_size = <0x006AF000 0x01851000 0x00000000>;
/* uboot logo,fb0/fb1 memory size */
display_mode_default = "1080p60hz";
scale_mode = <0>;
/** 0:VPU free scale 1:OSD free scale 2:OSD super scale */
display_size_default = <1920 1080 1920 3240 32>;
/*1920*1080*4*3 = 0x17BB000*/
mem_alloc = <1>;
logo_addr = "0x3e000000";
pxp_mode = <1>; /** 0:normal mode 1:pxp mode */
};
ge2d {
compatible = "amlogic, ge2d-axg";
dev_name = "ge2d";
status = "okay";
interrupts = <0 150 1>;
interrupt-names = "ge2d";
clocks = <&clkc CLKID_VAPB_MUX>,
<&clkc CLKID_G2D>,
<&clkc CLKID_GE2D_GATE>;
clock-names = "clk_vapb_0",
"clk_ge2d",
"clk_ge2d_gate";
reg = <0xff940000 0x10000>;
};
/* Sound iomap */
aml_snd_iomap {
compatible = "amlogic, snd_iomap";
status = "okay";
#address-cells=<1>;
#size-cells=<1>;
ranges;
pdm_bus {
reg = <0xFF632000 0x2000>;
};
audiobus_base {
reg = <0xFF642000 0x2000>;
};
};
pdm_codec:dummy{
#sound-dai-cells = <0>;
compatible = "amlogic, pdm_dummy_codec";
status = "okay";
};
dummy_codec:dummy{
#sound-dai-cells = <0>;
compatible = "amlogic, aml_dummy_codec";
status = "okay";
};
auge_sound {
compatible = "amlogic, axg-sound-card";
aml-audio-card,name = "AML-AUGESOUND";
aml-audio-card,dai-link@0 {
format = "dsp_a";
mclk-fs = <512>;
//continuous-clock;
//bitclock-inversion;
//frame-inversion;
//bitclock-master = <&tdmacodec>;
//frame-master = <&tdmacodec>;
tdmacpu: cpu {
sound-dai = <&aml_tdma>;
dai-tdm-slot-tx-mask =
<1 1 1 1 1 1 1 1>;
dai-tdm-slot-rx-mask =
<1 1 1 1 1 1 1 1>;
dai-tdm-slot-num = <8>;
dai-tdm-slot-width = <32>;
system-clock-frequency = <24576000>;
};
tdmacodec: codec {
sound-dai = <&dummy_codec &dummy_codec>;
};
};
aml-audio-card,dai-link@1 {
format = "i2s";
mclk-fs = <256>;
//continuous-clock;
//bitclock-inversion;
//frame-inversion;
bitclock-master = <&aml_tdmb>;
frame-master = <&aml_tdmb>;
cpu {
sound-dai = <&aml_tdmb>;
dai-tdm-slot-tx-mask = <1 1>;
dai-tdm-slot-rx-mask = <1 1>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
system-clock-frequency = <12288000>;
};
codec {
sound-dai = <&dummy_codec &dummy_codec>;
};
};
aml-audio-card,dai-link@2 {
format = "i2s";
mclk-fs = <256>;
continuous-clock;
//bitclock-inversion;
//frame-inversion;
//bitclock-master = <&aml_tdmc>;
//frame-master = <&aml_tdmc>;
cpu {
sound-dai = <&aml_tdmc>;
dai-tdm-slot-tx-mask = <1 1>;
dai-tdm-slot-rx-mask = <1 1>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
system-clock-frequency = <12288000>;
};
codec {
//sound-dai = <&tas5707_36 &tas5707_3a>;
sound-dai = <&dummy_codec &dummy_codec>;
};
};
aml-audio-card,dai-link@3 {
mclk-fs = <64>;
cpu {
sound-dai = <&aml_pdm>;
};
codec {
sound-dai = <&pdm_codec>;
};
};
aml-audio-card,dai-link@4 {
mclk-fs = <128>;
cpu {
sound-dai = <&aml_spdif>;
system-clock-frequency = <6144000>;
};
codec {
sound-dai = <&dummy_codec>;
};
};
};
}; /* end of / */
/* Audio Related start */
/* for spk board */
&i2c1 {
status = "okay";
//pinctrl-names="default";
//pinctrl-0=<&b_i2c_master>;
tlv320adc3101_32: tlv320adc3101_32@32 {
compatible = "ti,tlv320adc3101";
#sound-dai-cells = <0>;
reg = <0x19>;
status = "disabled";
};
tas5707_36: tas5707_36@36 {
compatible = "ti,tas5707";
#sound-dai-cells = <0>;
reg = <0x1b>;
status = "disabled";
reset_pin = <&gpio_ao GPIOAO_4 0>;
};
tas5707_3a: tas5707_3a@3a {
compatible = "ti,tas5707";
#sound-dai-cells = <0>;
reg = <0x1d>;
status = "disabled";
};
};
/* for mic board */
&i2c_AO {
status = "okay";
pinctrl-names="default";
pinctrl-0=<&ao_i2c_master_pin2>;
tlv320adc3101_30: tlv320adc3101_30@30 {
compatible = "ti,tlv320adc3101";
#sound-dai-cells = <0>;
reg = <0x18>;
status = "disabled";
};
tlv320adc3101_34: tlv320adc3101_34@30 {
compatible = "ti,tlv320adc3101";
#sound-dai-cells = <0>;
reg = <0x1a>;
status = "disabled";
};
tlv320adc3101_36: tlv320adc3101_36@30 {
compatible = "ti,tlv320adc3101";
#sound-dai-cells = <0>;
reg = <0x1b>;
status = "disabled";
};
};
&audiobus {
aml_tdma: tdma {
compatible = "amlogic, axg-snd-tdma";
#sound-dai-cells = <0>;
dai-tdm-lane-slot-mask-in = <1 0>;
dai-tdm-lane-slot-mask-out = <0 1>;
dai-tdm-clk-sel = <0>;
clocks = <&clkaudio CLKID_AUDIO_MCLK_A
&clkc CLKID_MPLL0>;
clock-names = "mclk", "clk_srcpll";
pinctrl-names = "tdm_pins";
pinctrl-0 = <&tdmout_a &tdmin_a &tdmout_a_data>;
};
aml_tdmb: tdmb {
compatible = "amlogic, axg-snd-tdmb";
#sound-dai-cells = <0>;
dai-tdm-lane-slot-mask-in = <1 1 1 1>;
dai-tdm-clk-sel = <1>;
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
&clkc CLKID_MPLL1>;
clock-names = "mclk", "clk_srcpll";
pinctrl-names = "tdm_pins";
pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
};
aml_tdmc: tdmc {
compatible = "amlogic, axg-snd-tdmc";
#sound-dai-cells = <0>;
dai-tdm-lane-slot-mask-in = <0 1 0 0>;
dai-tdm-lane-slot-mask-out = <1 0 1 1>;
dai-tdm-clk-sel = <2>;
clocks = <&clkaudio CLKID_AUDIO_MCLK_C
&clkc CLKID_MPLL2>;
clock-names = "mclk", "clk_srcpll";
pinctrl-names = "tdm_pins";
pinctrl-0 = <&tdmc_mclk &tdmout_c &tdmin_c>;
};
aml_spdif: spdif {
compatible = "amlogic, axg-snd-spdif";
#sound-dai-cells = <0>;
clocks = <&clkc CLKID_MPLL0
&clkc CLKID_FCLK_DIV4
&clkaudio CLKID_AUDIO_SPDIFIN
&clkaudio CLKID_AUDIO_SPDIFOUT
&clkaudio CLKID_AUDIO_SPDIFIN_CTRL
&clkaudio CLKID_AUDIO_SPDIFOUT_CTRL>;
clock-names = "sysclk", "fixed_clk", "gate_spdifin",
"gate_spdifout", "clk_spdifin", "clk_spdifout";
interrupts =
<GIC_SPI 87 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-0 = <&spdifout &spdifin>;
status = "okay";
};
aml_pdm: pdm {
compatible = "amlogic, axg-snd-pdm";
#sound-dai-cells = <0>;
clocks = <&clkaudio CLKID_AUDIO_PDM
&clkc CLKID_FCLK_DIV3
&clkc CLKID_MPLL3
&clkaudio CLKID_AUDIO_PDMIN0
&clkaudio CLKID_AUDIO_PDMIN1>;
clock-names = "gate",
"sysclk_srcpll",
"dclk_srcpll",
"pdm_dclk",
"pdm_sysclk";
pinctrl-names = "pdm_pins";
pinctrl-0 = <&pdmin>;
filter_mode = <1>; /* mode 0~4, defalut:1 */
status = "okay";
};
}; /* end of audiobus */
&pinctrl_periphs {
tdmout_a: tdmout_a {
mux {
groups = "tdma_sclk",
"tdma_fs";
function = "tdma_out";
};
};
tdmout_a_data: tdmout_a_data {
mux {
groups = "tdma_dout1_x15";
function = "tdma_out";
};
};
tdmin_a: tdmin_a {
mux {
groups = "tdma_din0";
function = "tdma_in";
};
};
tdmb_mclk: tdmb_mclk {
mux {
groups = "mclk_b";
function = "mclk_b";
};
};
tdmout_b: tdmout_b {
mux {
groups = "tdmb_sclk",
"tdmb_fs";
function = "tdmb_out";
};
};
// tdmin and tdmout are the same pins. can't use at same time
tdmin_b:tdmin_b {
mux {
groups = "tdmb_din0",
"tdmb_din1",
"tdmb_din2_a12",
"tdmb_din3_a13";
function = "tdmb_in";
};
};
tdmc_mclk: tdmc_mclk {
mux {
groups = "mclk_a";
function = "mclk_a";
};
};
tdmout_c:tdmout_c {
mux {
groups = "tdmc_sclk",
"tdmc_fs",
"tdmc_dout0",
"tdmc_dout2_a6",
"tdmc_dout3_a7";
function = "tdmc_out";
};
};
tdmin_c:tdmin_c {
mux {
groups = "tdmc_din1";
function = "tdmc_in";
};
};
spdifout: spidfout {
mux {
groups = "spdif_out_a20";
function = "spdif_out";
};
};
spdifin: spidfin {
mux {
groups = "spdif_in_a19";
function = "spdif_in";
};
};
pdmin: pdmin {
mux {
groups = "pdm_dclk_a14",
"pdm_din0",
"pdm_din1",
"pdm_din2",
"pdm_din3";
function = "pdm";
};
};
}; /* end of pinctrl_periphs */
/* Audio Related End */
&aobus{
uart_AO: serial@3000 {
compatible = "amlogic, meson-uart";
reg = <0x3000 0x18>;
interrupts = <0 193 1>;
status = "okay";
clocks = <&xtal>;
clock-names = "clk_uart";
xtal_tick_en = <1>;
fifosize = < 64 >;
pinctrl-names = "default";
pinctrl-0 = <&ao_uart_pins>;
support-sysrq = <0>; /* 0 not support , 1 support */
};
};
&audio_data{
status = "okay";
};

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,729 @@
/*
* arch/arm/boot/dts/amlogic/g12a_pxp.dts
*
* Copyright (C) 2017 Amlogic, Inc. All rights reserved.
*
* 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.
*
*/
/dts-v1/;
#include "mesong12a.dtsi"
/ {
model = "Amlogic";
compatible = "amlogic, g12a";
interrupt-parent = <&gic>;
#address-cells = <1>;
#size-cells = <1>;
aliases {
serial0 = &uart_AO;
i2c0 = &i2c0;
i2c1 = &i2c1;
i2c2 = &i2c2;
i2c3 = &i2c3;
i2c4 = &i2c_AO;
};
memory@00000000 {
device_type = "memory";
linux,usable-memory = <0x100000 0x3ff00000>;
};
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
/* global autoconfigured region for contiguous allocations */
secmon_reserved:linux,secmon {
compatible = "shared-dma-pool";
reusable;
size = <0x400000>;
alignment = <0x400000>;
alloc-ranges = <0x05000000 0x400000>;
};
secos_reserved:linux,secos {
status = "disable";
compatible = "amlogic, aml_secos_memory";
reg = <0x05300000 0x2000000>;
no-map;
};
logo_reserved:linux,meson-fb {
compatible = "shared-dma-pool";
reusable;
size = <0x800000>;
alignment = <0x400000>;
alloc-ranges = <0x3f800000 0x800000>;
};
ion_cma_reserved:linux,ion-dev {
compatible = "shared-dma-pool";
reusable;
size = <0x8000000>;
alignment = <0x400000>;
};
//di_reserved:linux,di {
//compatible = "amlogic, di-mem";
/* buffer_size = 3621952(yuv422 8bit) */
/* 4179008(yuv422 10bit full pack mode) */
/** 10x3621952=34.6M(0x23) support 8bit **/
/** 10x4736064=45.2M(0x2e) support 12bit **/
/** 10x4179008=40M(0x28) support 10bit **/
//size = <0x2800000>;
//no-map;
//};
/*di CMA pool */
di_cma_reserved:linux,di_cma {
compatible = "shared-dma-pool";
reusable;
/* buffer_size = 3621952(yuv422 8bit)
* | 4736064(yuv422 10bit)
* | 4074560(yuv422 10bit full pack mode)
* 10x3621952=34.6M(0x23) support 8bit
* 10x4736064=45.2M(0x2e) support 12bit
* 10x4074560=40M(0x28) support 10bit
*/
size = <0x02800000>;
alignment = <0x400000>;
};
codec_mm_cma:linux,codec_mm_cma {
compatible = "shared-dma-pool";
reusable;
/* ion_codec_mm max can alloc size 80M*/
size = <0x13400000>;
alignment = <0x400000>;
linux,contiguous-region;
};
/* codec shared reserved */
codec_mm_reserved:linux,codec_mm_reserved {
compatible = "amlogic, codec-mm-reserved";
size = <0x0>;
alignment = <0x100000>;
//no-map;
};
/* vdin0 CMA pool */
vdin0_cma_reserved:linux,vdin0_cma {
compatible = "shared-dma-pool";
reusable;
/* 1920x1080x2x4 =16+4 M */
size = <0x04000000>;
alignment = <0x400000>;
};
/* vdin1 CMA pool */
vdin1_cma_reserved:linux,vdin1_cma {
compatible = "shared-dma-pool";
reusable;
/* 1920x1080x2x4 =16 M */
size = <0x04000000>;
alignment = <0x400000>;
};
};
cvbsout {
compatible = "amlogic, cvbsout-g12a";
dev_name = "cvbsout";
status = "okay";
clocks = <&clkc CLKID_VCLK2_ENCI
&clkc CLKID_VCLK2_VENCI0
&clkc CLKID_VCLK2_VENCI1
&clkc CLKID_DAC_CLK>;
clock-names = "venci_top_gate",
"venci_0_gate",
"venci_1_gate",
"vdac_clk_gate";
clk_path = <0>;
/* performance: reg_address, reg_value */
/* g12a */
performance = <0x1bf0 0x9
0x1b56 0x333
0x1b12 0x8080
0x1b05 0xfd
0x1c59 0xf850
0xffff 0x0>; /* ending flag */
performance_sarft = <0x1bf0 0x9
0x1b56 0x333
0x1b12 0x0
0x1b05 0x9
0x1c59 0xfc48
0xffff 0x0>; /* ending flag */
performance_revB_telecom = <0x1bf0 0x9
0x1b56 0x546
0x1b12 0x8080
0x1b05 0x9
0x1c59 0xf850
0xffff 0x0>; /* ending flag */
};
codec_mm {
compatible = "amlogic, codec, mm";
memory-region = <&codec_mm_cma &codec_mm_reserved>;
dev_name = "codec_mm";
status = "okay";
};
deinterlace {
compatible = "amlogic, deinterlace";
status = "okay";
/* 0:use reserved; 1:use cma; 2:use cma as reserved */
flag_cma = <1>;
//memory-region = <&di_reserved>;
memory-region = <&di_cma_reserved>;
interrupts = <0 46 1
0 40 1>;
interrupt-names = "pre_irq", "post_irq";
clocks = <&clkc CLKID_VPU_CLKB_TMP_COMP>,
<&clkc CLKID_VPU_CLKB_COMP>;
clock-names = "vpu_clkb_tmp_composite",
"vpu_clkb_composite";
clock-range = <334 667>;
/* buffer-size = <3621952>;(yuv422 8bit) */
buffer-size = <4074560>;/*yuv422 fullpack*/
/* reserve-iomap = "true"; */
/* if enable nr10bit, set nr10bit-support to 1 */
post-wr-support = <1>;
nr10bit-support = <1>;
nrds-enable = <1>;
pps-enable = <1>;
};
efusekey:efusekey{
keynum = <4>;
key0 = <&key_0>;
key1 = <&key_1>;
key2 = <&key_2>;
key3 = <&key_3>;
key_0:key_0{
keyname = "mac";
offset = <0>;
size = <6>;
};
key_1:key_1{
keyname = "mac_bt";
offset = <6>;
size = <6>;
};
key_2:key_2{
keyname = "mac_wifi";
offset = <12>;
size = <6>;
};
key_3:key_3{
keyname = "usid";
offset = <18>;
size = <16>;
};
};//End efusekey
amlvecm {
compatible = "amlogic, vecm";
dev_name = "aml_vecm";
status = "okay";
gamma_en = <0>;/*1:enabel ;0:disable*/
wb_en = <0>;/*1:enabel ;0:disable*/
cm_en = <0>;/*1:enabel ;0:disable*/
/*0: 709/601 1: bt2020*/
tx_op_color_primary = <0>;
};
amdolby_vision {
compatible = "amlogic, dolby_vision_g12a";
dev_name = "aml_amdolby_vision_driver";
status = "okay";
tv_mode = <0>;/*1:enabel ;0:disable*/
};
/* Audio Related start */
pdm_codec:dummy{
#sound-dai-cells = <0>;
compatible = "amlogic, pdm_dummy_codec";
status = "okay";
};
dummy_codec:dummy{
#sound-dai-cells = <0>;
compatible = "amlogic, aml_dummy_codec";
status = "okay";
};
amlogic_codec:t9015{
#sound-dai-cells = <0>;
compatible = "amlogic, aml_codec_T9015";
reg = <0xFF632000 0x2000>;
is_auge_used = <1>; /* meson or auge chipset used */
tdmout_index = <0>;
status = "disabled";
};
auge_sound {
compatible = "amlogic, g12a-sound-card";
aml-audio-card,name = "AML-AUGESOUND";
aml-audio-card,dai-link@0 {
format = "dsp_a";
mclk-fs = <512>;
//continuous-clock;
//bitclock-inversion;
//frame-inversion;
//bitclock-master = <&tdmacodec>;
//frame-master = <&tdmacodec>;
tdmacpu: cpu {
sound-dai = <&aml_tdma>;
dai-tdm-slot-tx-mask =
<1 1 1 1 1 1 1 1>;
dai-tdm-slot-rx-mask =
<1 1 1 1 1 1 1 1>;
dai-tdm-slot-num = <8>;
dai-tdm-slot-width = <32>;
system-clock-frequency = <24576000>;
};
tdmacodec: codec {
sound-dai = <&dummy_codec &dummy_codec>;
};
};
aml-audio-card,dai-link@1 {
format = "i2s";
mclk-fs = <256>;
//continuous-clock;
//bitclock-inversion;
//frame-inversion;
bitclock-master = <&aml_tdmb>;
frame-master = <&aml_tdmb>;
cpu {
sound-dai = <&aml_tdmb>;
dai-tdm-slot-tx-mask = <1 1>;
dai-tdm-slot-rx-mask = <1 1>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
system-clock-frequency = <12288000>;
};
codec {
sound-dai = <&dummy_codec &dummy_codec>;
};
};
aml-audio-card,dai-link@2 {
format = "i2s";
mclk-fs = <256>;
continuous-clock;
//bitclock-inversion;
//frame-inversion;
bitclock-master = <&aml_tdmc>;
frame-master = <&aml_tdmc>;
cpu {
sound-dai = <&aml_tdmc>;
dai-tdm-slot-tx-mask = <1 1>;
dai-tdm-slot-rx-mask = <1 1>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
system-clock-frequency = <12288000>;
};
codec {
sound-dai = <&dummy_codec &dummy_codec>;
};
};
aml-audio-card,dai-link@3 {
mclk-fs = <64>;
cpu {
sound-dai = <&aml_pdm>;
};
codec {
sound-dai = <&pdm_codec>;
};
};
aml-audio-card,dai-link@4 {
mclk-fs = <128>;
cpu {
sound-dai = <&aml_spdif>;
system-clock-frequency = <6144000>;
};
codec {
sound-dai = <&dummy_codec>;
};
};
aml-audio-card,dai-link@5 {
mclk-fs = <128>;
cpu {
sound-dai = <&aml_spdif_b>;
system-clock-frequency = <6144000>;
};
codec {
sound-dai = <&dummy_codec>;
};
};
};
audiolocker: locker {
compatible = "amlogic, audiolocker";
clocks = <&clkaudio CLKID_AUDIO_LOCKER_OUT
&clkaudio CLKID_AUDIO_LOCKER_IN
&clkaudio CLKID_AUDIO_MCLK_D
&clkaudio CLKID_AUDIO_MCLK_E
&clkc CLKID_MPLL1
&clkc CLKID_MPLL2>;
clock-names = "lock_out", "lock_in", "out_src",
"in_src", "out_calc", "in_ref";
interrupts = <GIC_SPI 1 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq";
frequency = <49000000>; /* pll */
dividor = <49>; /* locker's parent */
status = "disabled";
};
/* Audio Related end */
/*DCDC for MP8756GD*/
cpu_opp_table0: cpu_opp_table0 {
compatible = "operating-points-v2";
opp-shared;
opp00 {
opp-hz = /bits/ 64 <100000000>;
opp-microvolt = <731000>;
};
opp01 {
opp-hz = /bits/ 64 <250000000>;
opp-microvolt = <731000>;
};
opp02 {
opp-hz = /bits/ 64 <500000000>;
opp-microvolt = <731000>;
};
opp03 {
opp-hz = /bits/ 64 <667000000>;
opp-microvolt = <731000>;
};
opp04 {
opp-hz = /bits/ 64 <1000000000>;
opp-microvolt = <731000>;
};
opp05 {
opp-hz = /bits/ 64 <1200000000>;
opp-microvolt = <731000>;
};
opp06 {
opp-hz = /bits/ 64 <1398000000>;
opp-microvolt = <761000>;
};
opp07 {
opp-hz = /bits/ 64 <1512000000>;
opp-microvolt = <791000>;
};
opp08 {
opp-hz = /bits/ 64 <1608000000>;
opp-microvolt = <831000>;
};
opp09 {
opp-hz = /bits/ 64 <1704000000>;
opp-microvolt = <861000>;
};
opp10 {
opp-hz = /bits/ 64 <1908000000>;
opp-microvolt = <981000>;
};
};
cpufreq-meson {
compatible = "amlogic, cpufreq-meson";
pinctrl-names = "default";
pinctrl-0 = <&pwm_ao_d_pins3>;
status = "okay";
};
}; /* end of / */
&meson_fb {
status = "okay";
display_size_default = <1920 1080 1920 2160 32>;
mem_size = <0x00800000 0x1980000 0x100000 0x100000 0x800000>;
logo_addr = "0x7f800000";
mem_alloc = <1>;
pxp_mode = <1>; /** 0:normal mode 1:pxp mode */
};
&pwm_AO_cd {
status = "okay";
};
&audiobus {
aml_tdma: tdma {
compatible = "amlogic, g12a-snd-tdma";
#sound-dai-cells = <0>;
dai-tdm-lane-slot-mask-in = <1 0>;
dai-tdm-lane-slot-mask-out = <0 1>;
dai-tdm-clk-sel = <0>;
clocks = <&clkaudio CLKID_AUDIO_MCLK_A
&clkc CLKID_MPLL0>;
clock-names = "mclk", "clk_srcpll";
pinctrl-names = "tdm_pins";
pinctrl-0 = <&tdmout_a &tdmin_a>;
};
aml_tdmb: tdmb {
compatible = "amlogic, g12a-snd-tdmb";
#sound-dai-cells = <0>;
dai-tdm-lane-slot-mask-in = <1 1 1 1>;
dai-tdm-clk-sel = <1>;
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
&clkc CLKID_MPLL1>;
clock-names = "mclk", "clk_srcpll";
pinctrl-names = "tdm_pins";
pinctrl-0 = <&tdmb_mclk /*&tdmout_b &tdmin_b*/>;
};
aml_tdmc: tdmc {
compatible = "amlogic, g12a-snd-tdmc";
#sound-dai-cells = <0>;
dai-tdm-lane-slot-mask-in = <0 1 0 0>;
#dai-tdm-lane-slot-mask-out = <1 0 1 1>;
#dai-tdm-lane-oe-slot-mask-in = <0 0 0 0>;
dai-tdm-lane-oe-slot-mask-out = <1 0 0 0>;
dai-tdm-clk-sel = <2>;
clocks = <&clkaudio CLKID_AUDIO_MCLK_C
&clkc CLKID_MPLL2>;
clock-names = "mclk", "clk_srcpll";
pinctrl-names = "tdm_pins";
pinctrl-0 = <&tdmc_mclk &tdmout_c &tdmin_c>;
};
aml_spdif: spdif {
compatible = "amlogic, g12a-snd-spdif-a";
#sound-dai-cells = <0>;
clocks = <&clkc CLKID_MPLL0
&clkc CLKID_FCLK_DIV4
&clkaudio CLKID_AUDIO_SPDIFIN
&clkaudio CLKID_AUDIO_SPDIFOUT
&clkaudio CLKID_AUDIO_SPDIFIN_CTRL
&clkaudio CLKID_AUDIO_SPDIFOUT_CTRL>;
clock-names = "sysclk", "fixed_clk", "gate_spdifin",
"gate_spdifout", "clk_spdifin", "clk_spdifout";
interrupts =
<GIC_SPI 87 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-0 = <&spdifout &spdifin>;
status = "okay";
};
aml_spdif_b: spdif_b {
compatible = "amlogic, g12a-snd-spdif-b";
#sound-dai-cells = <0>;
clocks = <&clkc CLKID_MPLL0 /*CLKID_HIFI_PLL*/
&clkaudio CLKID_AUDIO_SPDIFOUTB
&clkaudio CLKID_AUDIO_SPDIFOUTB_CTRL>;
clock-names = "sysclk",
"gate_spdifout", "clk_spdifout";
pinctrl-names = "spdif_pins";
pinctrl-0 = <&spdifout_b>;
status = "okay";
};
aml_pdm: pdm {
compatible = "amlogic, g12a-snd-pdm";
#sound-dai-cells = <0>;
clocks = <&clkaudio CLKID_AUDIO_PDM
&clkc CLKID_FCLK_DIV3
&clkc CLKID_MPLL3
&clkaudio CLKID_AUDIO_PDMIN0
&clkaudio CLKID_AUDIO_PDMIN1>;
clock-names = "gate",
"sysclk_srcpll",
"dclk_srcpll",
"pdm_dclk",
"pdm_sysclk";
pinctrl-names = "pdm_pins";
pinctrl-0 = <&pdmin>;
filter_mode = <1>; /* mode 0~4, defalut:1 */
status = "okay";
};
aml_pwrdet: pwrdet {
compatible = "amlogic, g12a-power-detect";
interrupts = <GIC_SPI 155 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "pwrdet_irq";
/* pwrdet source sel
* 7: loopback;
* 6: tdmin_lb;
* 5: reserved;
* 4: pdmin;
* 3: spdifin;
* 2: tdmin_c;
* 1: tdmin_b;
* 0: tdmin_a;
*/
pwrdet_src = <4>;
hi_th = <0x70000>;
lo_th = <0x16000>;
status = "disabled";
};
}; /* end of audiobus */
&pinctrl_periphs {
tdmout_a: tdmout_a {
mux { /* GPIOX_11, GPIOX_10, GPIOX_8 */
groups = "tdma_sclk",
"tdma_fs",
"tdma_dout1";
function = "tdma_out";
};
};
tdmin_a: tdmin_a {
mux { /* GPIOX_9 */
groups = "tdma_din0";
function = "tdma_in";
};
};
tdmb_mclk: tdmb_mclk {
mux {
groups = "mclk0_a";
function = "mclk0";
};
};
tdmc_mclk: tdmc_mclk {
mux { /* GPIOZ_8 */
groups = "mclk1_z";
function = "mclk1";
};
};
tdmout_c:tdmout_c {
mux { /* gpioz_7, gpioz_6, GPIOZ_2, GPIOZ_4, GPIOZ_5*/
groups = "tdmc_sclk_z",
"tdmc_fs_z",
"tdmc_dout0_z"
/*,"tdmc_dout2_z",
*"tdmc_dout3_z"
*/;
function = "tdmc_out";
};
};
tdmin_c:tdmin_c {
mux { /* GPIOZ_3 */
groups = "tdmc_din1_z";
function = "tdmc_in";
};
};
spdifin: spdifin {
mux {/* gpioa_10 */
groups = "spdif_in_a10";
function = "spdif_in";
};
};
spdifout: spdifout {
mux {/* gpioa_11 */
groups = "spdif_out_a11";
function = "spdif_out";
};
};
spdifout_b: spdifout_b {
mux { /* gpioa_13 */
groups = "spdif_out_a13";
function = "spdif_out";
};
};
pdmin: pdmin {
mux { /* gpioa_5, gpioa_6, gpioa_7, gpioa_8, gpioa_9*/
groups = "pdm_din0_a",
"pdm_din1_a",
"pdm_din2_a",
"pdm_din3_a",
"pdm_dclk_a";
function = "pdm";
};
};
}; /* end of pinctrl_periphs */
&pinctrl_aobus {
tdmout_b: tdmout_b {
mux { /* GPIOAO_7, GPIOAO_8, GPIOAO_4 */
groups = "tdmb_fs_ao",
"tdmb_fs_ao",
"tdmb_dout0_ao";
function = "tdmb_out_ao";
};
};
tdmin_b:tdmin_b {
mux {
groups = "tdmb_din2_ao";
function = "tdmb_in_ao";
};
};
}; /* end of pinctrl_aobus */
/* Audio Related End */
&aobus{
};
&irblaster {
status = "disabled";
};
/*if you want to use vdin just modify status to "ok"*/
&vdin0 {
memory-region = <&vdin0_cma_reserved>;
status = "okay";
/*vdin write mem color depth support:
*bit0:support 8bit
*bit1:support 9bit
*bit2:support 10bit
*bit3:support 12bit
*bit4:support yuv422 10bit full pack mode (from txl new add)
*/
tv_bit_mode = <0x15>;
};
&vdin1 {
memory-region = <&vdin1_cma_reserved>;
status = "okay";
/*vdin write mem color depth support:
*bit0:support 8bit
*bit1:support 9bit
*bit2:support 10bit
*bit3:support 12bit
*/
tv_bit_mode = <1>;
};
&sd_emmc_b1 {
status = "okay";
sd {
caps = "MMC_CAP_4_BIT_DATA",
"MMC_CAP_MMC_HIGHSPEED",
"MMC_CAP_SD_HIGHSPEED",
"MMC_CAP_NONREMOVABLE",
"MMC_CAP_UHS_SDR12",
"MMC_CAP_UHS_SDR25",
"MMC_CAP_UHS_SDR50",
"MMC_PM_KEEP_POWER",
"MMC_CAP_NONREMOVABLE"; /**ptm debug */
f_min = <400000>;
f_max = <200000000>;
};
};
&defendkey {
status = "okay";
};

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,736 @@
/*
* arch/arm/boot/dts/amlogic/g12b_pxp.dts
*
* Copyright (C) 2017 Amlogic, Inc. All rights reserved.
*
* 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.
*
*/
/dts-v1/;
#include "mesong12b.dtsi"
/ {
model = "Amlogic";
compatible = "amlogic, g12b";
interrupt-parent = <&gic>;
#address-cells = <1>;
#size-cells = <1>;
aliases {
serial0 = &uart_AO;
i2c0 = &i2c0;
i2c1 = &i2c1;
i2c2 = &i2c2;
i2c3 = &i2c3;
i2c4 = &i2c_AO;
};
memory@00000000 {
device_type = "memory";
linux,usable-memory = <0x100000 0x3ff00000>;
};
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
/* global autoconfigured region for contiguous allocations */
secmon_reserved:linux,secmon {
compatible = "shared-dma-pool";
reusable;
size = <0x400000>;
alignment = <0x400000>;
alloc-ranges = <0x05000000 0x400000>;
};
secos_reserved:linux,secos {
status = "disable";
compatible = "amlogic, aml_secos_memory";
reg = <0x05300000 0x2000000>;
no-map;
};
logo_reserved:linux,meson-fb {
compatible = "shared-dma-pool";
reusable;
size = <0x800000>;
alignment = <0x400000>;
alloc-ranges = <0x3f800000 0x800000>;
};
ion_cma_reserved:linux,ion-dev {
compatible = "shared-dma-pool";
reusable;
size = <0x8000000>;
alignment = <0x400000>;
};
//di_reserved:linux,di {
//compatible = "amlogic, di-mem";
/* buffer_size = 3621952(yuv422 8bit) */
/* 4179008(yuv422 10bit full pack mode) */
/** 10x3621952=34.6M(0x23) support 8bit **/
/** 10x4736064=45.2M(0x2e) support 12bit **/
/** 10x4179008=40M(0x28) support 10bit **/
//size = <0x2800000>;
//no-map;
//};
/*di CMA pool */
di_cma_reserved:linux,di_cma {
compatible = "shared-dma-pool";
reusable;
/* buffer_size = 3621952(yuv422 8bit)
* | 4736064(yuv422 10bit)
* | 4074560(yuv422 10bit full pack mode)
* 10x3621952=34.6M(0x23) support 8bit
* 10x4736064=45.2M(0x2e) support 12bit
* 10x4074560=40M(0x28) support 10bit
*/
size = <0x02800000>;
alignment = <0x400000>;
};
codec_mm_cma:linux,codec_mm_cma {
compatible = "shared-dma-pool";
reusable;
/* ion_codec_mm max can alloc size 80M*/
size = <0xd000000>;
alignment = <0x400000>;
linux,contiguous-region;
alloc-ranges = <0x0 0x30000000>;
};
/* codec shared reserved */
codec_mm_reserved:linux,codec_mm_reserved {
compatible = "amlogic, codec-mm-reserved";
size = <0x0>;
alignment = <0x100000>;
//no-map;
};
/* vdin0 CMA pool */
vdin0_cma_reserved:linux,vdin0_cma {
compatible = "shared-dma-pool";
reusable;
/* 1920x1080x2x4 =16+4 M */
size = <0x04000000>;
alignment = <0x400000>;
};
/* vdin1 CMA pool */
vdin1_cma_reserved:linux,vdin1_cma {
compatible = "shared-dma-pool";
reusable;
/* 1920x1080x2x4 =16 M */
size = <0x04000000>;
alignment = <0x400000>;
};
};
cvbsout {
compatible = "amlogic, cvbsout-g12b";
dev_name = "cvbsout";
status = "okay";
clocks = <&clkc CLKID_VCLK2_ENCI
&clkc CLKID_VCLK2_VENCI0
&clkc CLKID_VCLK2_VENCI1
&clkc CLKID_DAC_CLK>;
clock-names = "venci_top_gate",
"venci_0_gate",
"venci_1_gate",
"vdac_clk_gate";
clk_path = <0>;
/* performance: reg_address, reg_value */
/* g12b */
performance = <0x1bf0 0x9
0x1b56 0x333
0x1b12 0x8080
0x1b05 0xfd
0x1c59 0xf850
0xffff 0x0>; /* ending flag */
performance_sarft = <0x1bf0 0x9
0x1b56 0x333
0x1b12 0x0
0x1b05 0x9
0x1c59 0xfc48
0xffff 0x0>; /* ending flag */
};
codec_mm {
compatible = "amlogic, codec, mm";
memory-region = <&codec_mm_cma &codec_mm_reserved>;
dev_name = "codec_mm";
status = "okay";
};
deinterlace {
compatible = "amlogic, deinterlace";
status = "disabled";
/* 0:use reserved; 1:use cma; 2:use cma as reserved */
flag_cma = <1>;
//memory-region = <&di_reserved>;
memory-region = <&di_cma_reserved>;
interrupts = <0 46 1
0 40 1>;
interrupt-names = "pre_irq", "post_irq";
clocks = <&clkc CLKID_VPU_CLKB_TMP_COMP>,
<&clkc CLKID_VPU_CLKB_COMP>;
clock-names = "vpu_clkb_tmp_composite",
"vpu_clkb_composite";
clock-range = <334 667>;
/* buffer-size = <3621952>;(yuv422 8bit) */
buffer-size = <4074560>;/*yuv422 fullpack*/
/* reserve-iomap = "true"; */
/* if enable nr10bit, set nr10bit-support to 1 */
post-wr-support = <1>;
nr10bit-support = <1>;
nrds-enable = <1>;
pps-enable = <1>;
};
amlvecm {
compatible = "amlogic, vecm";
dev_name = "aml_vecm";
status = "disabled";
gamma_en = <0>;/*1:enabel ;0:disable*/
wb_en = <0>;/*1:enabel ;0:disable*/
cm_en = <0>;/*1:enabel ;0:disable*/
};
amdolby_vision {
compatible = "amlogic, dolby_vision_g12a";
dev_name = "aml_amdolby_vision_driver";
status = "disabled";
tv_mode = <0>;/*1:enabel ;0:disable*/
};
/* Audio Related start */
pdm_codec:dummy{
#sound-dai-cells = <0>;
compatible = "amlogic, pdm_dummy_codec";
status = "disabled";
};
dummy_codec:dummy{
#sound-dai-cells = <0>;
compatible = "amlogic, aml_dummy_codec";
status = "disabled";
};
amlogic_codec:t9015{
#sound-dai-cells = <0>;
/*compatible = "amlogic, aml_codec_T9015";*/
reg = <0xFF632000 0x2000>;
is_auge_used = <1>; /* meson or auge chipset used */
tdmout_index = <0>;
status = "disabled";
};
auge_sound {
/*compatible = "amlogic, g12a-sound-card";*/
aml-audio-card,name = "AML-AUGESOUND";
aml-audio-card,dai-link@0 {
format = "dsp_a";
mclk-fs = <512>;
//continuous-clock;
//bitclock-inversion;
//frame-inversion;
//bitclock-master = <&tdmacodec>;
//frame-master = <&tdmacodec>;
tdmacpu: cpu {
sound-dai = <&aml_tdma>;
dai-tdm-slot-tx-mask =
<1 1 1 1 1 1 1 1>;
dai-tdm-slot-rx-mask =
<1 1 1 1 1 1 1 1>;
dai-tdm-slot-num = <8>;
dai-tdm-slot-width = <32>;
system-clock-frequency = <24576000>;
};
tdmacodec: codec {
sound-dai = <&dummy_codec &dummy_codec>;
};
};
aml-audio-card,dai-link@1 {
format = "i2s";
mclk-fs = <256>;
//continuous-clock;
//bitclock-inversion;
//frame-inversion;
bitclock-master = <&aml_tdmb>;
frame-master = <&aml_tdmb>;
cpu {
sound-dai = <&aml_tdmb>;
dai-tdm-slot-tx-mask = <1 1>;
dai-tdm-slot-rx-mask = <1 1>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
system-clock-frequency = <12288000>;
};
codec {
sound-dai = <&dummy_codec &dummy_codec>;
};
};
aml-audio-card,dai-link@2 {
format = "i2s";
mclk-fs = <256>;
continuous-clock;
//bitclock-inversion;
//frame-inversion;
bitclock-master = <&aml_tdmc>;
frame-master = <&aml_tdmc>;
cpu {
sound-dai = <&aml_tdmc>;
dai-tdm-slot-tx-mask = <1 1>;
dai-tdm-slot-rx-mask = <1 1>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
system-clock-frequency = <12288000>;
};
codec {
sound-dai = <&dummy_codec &dummy_codec>;
};
};
aml-audio-card,dai-link@3 {
mclk-fs = <64>;
cpu {
sound-dai = <&aml_pdm>;
};
codec {
sound-dai = <&pdm_codec>;
};
};
aml-audio-card,dai-link@4 {
mclk-fs = <128>;
cpu {
sound-dai = <&aml_spdif>;
system-clock-frequency = <6144000>;
};
codec {
sound-dai = <&dummy_codec>;
};
};
aml-audio-card,dai-link@5 {
mclk-fs = <128>;
cpu {
sound-dai = <&aml_spdif_b>;
system-clock-frequency = <6144000>;
};
codec {
sound-dai = <&dummy_codec>;
};
};
};
audiolocker: locker {
compatible = "amlogic, audiolocker";
clocks = <&clkaudio CLKID_AUDIO_LOCKER_OUT
&clkaudio CLKID_AUDIO_LOCKER_IN
&clkaudio CLKID_AUDIO_MCLK_D
&clkaudio CLKID_AUDIO_MCLK_E
&clkc CLKID_MPLL1
&clkc CLKID_MPLL2>;
clock-names = "lock_out", "lock_in", "out_src",
"in_src", "out_calc", "in_ref";
interrupts = <GIC_SPI 1 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq";
frequency = <49000000>; /* pll */
dividor = <49>; /* locker's parent */
status = "disabled";
};
/* Audio Related end */
cpu_opp_table0: cpu_opp_table0 {
compatible = "operating-points-v2";
opp-shared;
opp00 {
opp-hz = /bits/ 64 <100000000>;
opp-microvolt = <731000>;
};
opp01 {
opp-hz = /bits/ 64 <250000000>;
opp-microvolt = <731000>;
};
opp02 {
opp-hz = /bits/ 64 <500000000>;
opp-microvolt = <731000>;
};
opp03 {
opp-hz = /bits/ 64 <667000000>;
opp-microvolt = <731000>;
};
opp04 {
opp-hz = /bits/ 64 <1000000000>;
opp-microvolt = <731000>;
};
opp05 {
opp-hz = /bits/ 64 <1200000000>;
opp-microvolt = <731000>;
};
opp06 {
opp-hz = /bits/ 64 <1398000000>;
opp-microvolt = <761000>;
};
opp07 {
opp-hz = /bits/ 64 <1512000000>;
opp-microvolt = <791000>;
};
opp08 {
opp-hz = /bits/ 64 <1608000000>;
opp-microvolt = <831000>;
};
opp09 {
opp-hz = /bits/ 64 <1704000000>;
opp-microvolt = <861000>;
};
opp10 {
opp-hz = /bits/ 64 <1800000000>;
opp-microvolt = <981000>;
};
};
cpu_opp_table1: cpu_opp_table1 {
compatible = "operating-points-v2";
opp-shared;
opp00 {
opp-hz = /bits/ 64 <100000000>;
opp-microvolt = <751000>;
};
opp01 {
opp-hz = /bits/ 64 <250000000>;
opp-microvolt = <751000>;
};
opp02 {
opp-hz = /bits/ 64 <500000000>;
opp-microvolt = <751000>;
};
opp03 {
opp-hz = /bits/ 64 <667000000>;
opp-microvolt = <751000>;
};
opp04 {
opp-hz = /bits/ 64 <1000000000>;
opp-microvolt = <771000>;
};
opp05 {
opp-hz = /bits/ 64 <1200000000>;
opp-microvolt = <771000>;
};
opp06 {
opp-hz = /bits/ 64 <1398000000>;
opp-microvolt = <791000>;
};
opp07 {
opp-hz = /bits/ 64 <1512000000>;
opp-microvolt = <821000>;
};
opp08 {
opp-hz = /bits/ 64 <1608000000>;
opp-microvolt = <861000>;
};
opp09 {
opp-hz = /bits/ 64 <1704000000>;
opp-microvolt = <891000>;
};
};
cpufreq-meson {
compatible = "amlogic, cpufreq-meson";
status = "okay";
};
}; /* end of / */
&meson_fb {
status = "okay";
display_size_default = <1920 1080 1920 2160 32>;
mem_size = <0x00800000 0x1980000 0x100000 0x100000 0x800000>;
logo_addr = "0x3f800000";
mem_alloc = <1>;
pxp_mode = <1>; /** 0:normal mode 1:pxp mode */
};
&pwm_AO_cd {
status = "okay";
};
&pwm_ab {
status = "okay";
};
&audiobus {
aml_tdma: tdma {
/*compatible = "amlogic, g12a-snd-tdma";*/
#sound-dai-cells = <0>;
dai-tdm-lane-slot-mask-in = <1 0>;
dai-tdm-lane-slot-mask-out = <0 1>;
dai-tdm-clk-sel = <0>;
clocks = <&clkaudio CLKID_AUDIO_MCLK_A
&clkc CLKID_MPLL0>;
clock-names = "mclk", "clk_srcpll";
pinctrl-names = "tdm_pins";
pinctrl-0 = <&tdmout_a &tdmin_a>;
};
aml_tdmb: tdmb {
/*compatible = "amlogic, g12a-snd-tdmb";*/
#sound-dai-cells = <0>;
dai-tdm-lane-slot-mask-in = <1 1 1 1>;
dai-tdm-clk-sel = <1>;
clocks = <&clkaudio CLKID_AUDIO_MCLK_B
&clkc CLKID_MPLL1>;
clock-names = "mclk", "clk_srcpll";
pinctrl-names = "tdm_pins";
pinctrl-0 = <&tdmb_mclk /*&tdmout_b &tdmin_b*/>;
};
aml_tdmc: tdmc {
/*compatible = "amlogic, g12a-snd-tdmc";*/
#sound-dai-cells = <0>;
dai-tdm-lane-slot-mask-in = <0 1 0 0>;
#dai-tdm-lane-slot-mask-out = <1 0 1 1>;
#dai-tdm-lane-oe-slot-mask-in = <0 0 0 0>;
dai-tdm-lane-oe-slot-mask-out = <1 0 0 0>;
dai-tdm-clk-sel = <2>;
clocks = <&clkaudio CLKID_AUDIO_MCLK_C
&clkc CLKID_MPLL2>;
clock-names = "mclk", "clk_srcpll";
pinctrl-names = "tdm_pins";
pinctrl-0 = <&tdmc_mclk &tdmout_c &tdmin_c>;
};
aml_spdif: spdif {
/*compatible = "amlogic, g12a-snd-spdif-a";*/
#sound-dai-cells = <0>;
clocks = <&clkc CLKID_MPLL0
&clkc CLKID_FCLK_DIV4
&clkaudio CLKID_AUDIO_SPDIFIN
&clkaudio CLKID_AUDIO_SPDIFOUT
&clkaudio CLKID_AUDIO_SPDIFIN_CTRL
&clkaudio CLKID_AUDIO_SPDIFOUT_CTRL>;
clock-names = "sysclk", "fixed_clk", "gate_spdifin",
"gate_spdifout", "clk_spdifin", "clk_spdifout";
interrupts =
<GIC_SPI 87 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "irq_spdifin";
pinctrl-names = "spdif_pins";
pinctrl-0 = <&spdifout &spdifin>;
status = "disabled";
};
aml_spdif_b: spdif_b {
/*compatible = "amlogic, g12a-snd-spdif-b";*/
#sound-dai-cells = <0>;
clocks = <&clkc CLKID_MPLL0 /*CLKID_HIFI_PLL*/
&clkaudio CLKID_AUDIO_SPDIFOUTB
&clkaudio CLKID_AUDIO_SPDIFOUTB_CTRL>;
clock-names = "sysclk",
"gate_spdifout", "clk_spdifout";
pinctrl-names = "spdif_pins";
pinctrl-0 = <&spdifout_b>;
status = "disabled";
};
aml_pdm: pdm {
/*compatible = "amlogic, g12a-snd-pdm";*/
#sound-dai-cells = <0>;
clocks = <&clkaudio CLKID_AUDIO_PDM
&clkc CLKID_FCLK_DIV3
&clkc CLKID_MPLL3
&clkaudio CLKID_AUDIO_PDMIN0
&clkaudio CLKID_AUDIO_PDMIN1>;
clock-names = "gate",
"sysclk_srcpll",
"dclk_srcpll",
"pdm_dclk",
"pdm_sysclk";
pinctrl-names = "pdm_pins";
pinctrl-0 = <&pdmin>;
filter_mode = <1>; /* mode 0~4, defalut:1 */
status = "disabled";
};
aml_pwrdet: pwrdet {
compatible = "amlogic, g12a-power-detect";
interrupts = <GIC_SPI 155 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "pwrdet_irq";
/* pwrdet source sel
* 7: loopback;
* 6: tdmin_lb;
* 5: reserved;
* 4: pdmin;
* 3: spdifin;
* 2: tdmin_c;
* 1: tdmin_b;
* 0: tdmin_a;
*/
pwrdet_src = <4>;
hi_th = <0x70000>;
lo_th = <0x16000>;
status = "disabled";
};
}; /* end of audiobus */
&pinctrl_periphs {
tdmout_a: tdmout_a {
mux { /* GPIOX_11, GPIOX_10, GPIOX_8 */
groups = "tdma_sclk",
"tdma_fs",
"tdma_dout1";
function = "tdma_out";
};
};
tdmin_a: tdmin_a {
mux { /* GPIOX_9 */
groups = "tdma_din0";
function = "tdma_in";
};
};
tdmb_mclk: tdmb_mclk {
mux {
groups = "mclk0_a";
function = "mclk0";
};
};
tdmc_mclk: tdmc_mclk {
mux { /* GPIOZ_8 */
groups = "mclk1_z";
function = "mclk1";
};
};
tdmout_c:tdmout_c {
mux { /* gpioz_7, gpioz_6, GPIOZ_2, GPIOZ_4, GPIOZ_5*/
groups = "tdmc_sclk_z",
"tdmc_fs_z",
"tdmc_dout0_z"
/*,"tdmc_dout2_z",
*"tdmc_dout3_z"
*/;
function = "tdmc_out";
};
};
tdmin_c:tdmin_c {
mux { /* GPIOZ_3 */
groups = "tdmc_din1_z";
function = "tdmc_in";
};
};
spdifin: spdifin {
mux {/* gpioa_10 */
groups = "spdif_in_a10";
function = "spdif_in";
};
};
spdifout: spdifout {
mux {/* gpioa_11 */
groups = "spdif_out_a11";
function = "spdif_out";
};
};
spdifout_b: spdifout_b {
mux { /* gpioa_13 */
groups = "spdif_out_a13";
function = "spdif_out";
};
};
pdmin: pdmin {
mux { /* gpioa_5, gpioa_6, gpioa_7, gpioa_8, gpioa_9*/
groups = "pdm_din0_a",
"pdm_din1_a",
"pdm_din2_a",
"pdm_din3_a",
"pdm_dclk_a";
function = "pdm";
};
};
}; /* end of pinctrl_periphs */
&pinctrl_aobus {
tdmout_b: tdmout_b {
mux { /* GPIOAO_7, GPIOAO_8, GPIOAO_4 */
groups = "tdmb_fs_ao",
"tdmb_fs_ao",
"tdmb_dout0_ao";
function = "tdmb_out_ao";
};
};
tdmin_b:tdmin_b {
mux {
groups = "tdmb_din2_ao";
function = "tdmb_in_ao";
};
};
}; /* end of pinctrl_aobus */
/* Audio Related End */
&aobus{
};
&irblaster {
status = "disabled";
};
/*if you want to use vdin just modify status to "ok"*/
&vdin0 {
memory-region = <&vdin0_cma_reserved>;
status = "disabled";
/*vdin write mem color depth support:
*bit0:support 8bit
*bit1:support 9bit
*bit2:support 10bit
*bit3:support 12bit
*bit4:support yuv422 10bit full pack mode (from txl new add)
*/
tv_bit_mode = <0x15>;
};
&vdin1 {
memory-region = <&vdin1_cma_reserved>;
status = "disabled";
/*vdin write mem color depth support:
*bit0:support 8bit
*bit1:support 9bit
*bit2:support 10bit
*bit3:support 12bit
*/
tv_bit_mode = <1>;
};
&sd_emmc_b {
status = "disabled";
sd {
caps = "MMC_CAP_4_BIT_DATA",
"MMC_CAP_MMC_HIGHSPEED",
"MMC_CAP_SD_HIGHSPEED",
"MMC_CAP_NONREMOVABLE",
"MMC_CAP_UHS_SDR12",
"MMC_CAP_UHS_SDR25",
"MMC_CAP_UHS_SDR50",
"MMC_PM_KEEP_POWER",
"MMC_CAP_NONREMOVABLE"; /**ptm debug */
f_min = <400000>;
f_max = <200000000>;
};
};

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,874 @@
/*
* arch/arm/boot/dts/amlogic/gxl_p400_2g.dts
*
* Copyright (C) 2017 Amlogic, Inc. All rights reserved.
*
* 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.
*
*/
/dts-v1/;
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include "mesongxl.dtsi"
/ {
model = "Amlogic";
amlogic-dt-id = "gxl_p400_2g";
compatible = "amlogic, Gxl";
interrupt-parent = <&gic>;
#address-cells = <1>;
#size-cells = <1>;
aliases {
serial0 = &uart_AO;
serial1 = &uart_A;
serial2 = &uart_B;
serial3 = &uart_C;
serial4 = &uart_AO_B;
};
memory@00000000 {
device_type = "memory";
linux,usable-memory = <0x0100000 0x7ff00000>;
};
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
/* global autoconfigured region for contiguous allocations */
ramoops@0x07400000 {
compatible = "ramoops";
reg = <0x07400000 0x00100000>;
record-size = <0x8000>;
console-size = <0x8000>;
ftrace-size = <0x0>;
pmsg-size = <0x8000>;
};
secmon_reserved:linux,secmon {
compatible = "shared-dma-pool";
reusable;
size = <0x400000>;
alignment = <0x400000>;
alloc-ranges = <0x05000000 0x400000>;
};
secos_reserved:linux,secos {
status = "disable";
compatible = "amlogic, aml_secos_memory";
reg = <0x05300000 0x2000000>;
no-map;
};
fb_reserved:linux,meson-fb {
compatible = "shared-dma-pool";
reusable;
size = <0x2400000>;
alignment = <0x400000>;
alloc-ranges = <0x7dc00000 0x2400000>;
};
};
wifi{
compatible = "amlogic, aml_wifi";
dev_name = "aml_wifi";
status = "okay";
interrupt_pin = <&gpio GPIOX_7 GPIO_ACTIVE_HIGH>;
irq_trigger_type = "GPIO_IRQ_LOW";
power_on_pin = <&gpio GPIOX_6 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&wifi_32k_pins>;
pwm_config = <&wifi_pwm_conf>;
};
wifi_pwm_conf:wifi_pwm_conf{
pwm_channel1_conf {
pwms = <&pwm_ef MESON_PWM_0 30040 0>;
duty-cycle = <15020>;
times = <8>;
};
pwm_channel2_conf {
pwms = <&pwm_ef MESON_PWM_2 30030 0>;
duty-cycle = <15015>;
times = <12>;
};
};
sd_emmc_c: emmc@d0074000 {
status = "okay";
compatible = "amlogic, meson-mmc-gxl";
reg = <0xd0074000 0x2000>;
interrupts = <0 218 1>;
pinctrl-names = "emmc_clk_cmd_pins", "emmc_all_pins";
pinctrl-0 = <&emmc_clk_cmd_pins>;
pinctrl-1 = <&emmc_conf_pull_up &emmc_conf_pull_done>;
clocks = <&clkc CLKID_SD_EMMC_C>,
<&clkc CLKID_SD_EMMC_C_P0_COMP>,
<&clkc CLKID_FCLK_DIV2>;
clock-names = "core", "clkin0", "clkin1";
bus-width = <8>;
cap-sd-highspeed;
cap-mmc-highspeed;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
max-frequency = <200000000>;
non-removable;
disable-wp;
emmc {
pinname = "emmc";
ocr_avail = <0x200080>; /**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_1_8V_DDR",
"MMC_CAP_HW_RESET",
"MMC_CAP_ERASE",
"MMC_CAP_CMD23";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
f_min = <400000>;
f_max = <100000000>;
max_req_size = <0x20000>; /**128KB*/
gpio_dat3 = <&gpio BOOT_3 GPIO_ACTIVE_HIGH>;
hw_reset = <&gpio BOOT_9 GPIO_ACTIVE_HIGH>;
card_type = <1>;
/* 1:mmc card(include eMMC),
* 2:sd card(include tSD)
*/
};
};
sd_emmc_b:sd@d0072000 {
status = "okay";
compatible = "amlogic, meson-mmc-gxl";
reg = <0xd0072000 0x2000>;
interrupts = <0 217 1>;
pinctrl-names = "sd_all_pins",
"sd_clk_cmd_pins",
"sd_1bit_pins",
"sd_clk_cmd_uart_pins",
"sd_1bit_uart_pins",
"sd_to_ao_uart_pins",
"ao_to_sd_uart_pins",
"ao_to_sd_jtag_pins",
"sd_to_ao_jtag_pins";
pinctrl-0 = <&sd_all_pins>;
pinctrl-1 = <&sd_clk_cmd_pins>;
pinctrl-2 = <&sd_1bit_pins>;
pinctrl-3 = <&sd_to_ao_uart_clr_pins
&sd_clk_cmd_pins &ao_to_sd_uart_pins>;
pinctrl-4 = <&sd_to_ao_uart_clr_pins
&sd_1bit_pins &ao_to_sd_uart_pins>;
pinctrl-5 = <&sd_all_pins &sd_to_ao_uart_pins>;
pinctrl-6 = <&sd_to_ao_uart_clr_pins &ao_to_sd_uart_pins>;
pinctrl-7 = <&sd_to_ao_uart_clr_pins &ao_to_sd_uart_pins>;
pinctrl-8 = <&sd_all_pins &sd_to_ao_uart_pins>;
clocks = <&clkc CLKID_SD_EMMC_B>,
<&clkc CLKID_SD_EMMC_B_P0_COMP>,
<&clkc CLKID_FCLK_DIV2>;
clock-names = "core", "clkin0", "clkin1";
bus-width = <4>;
cap-sd-highspeed;
max-frequency = <100000000>;
disable-wp;
sd {
pinname = "sd";
ocr_avail = <0x200080>; /**VDD voltage 3.3 ~ 3.4 */
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 = <400000>;
f_max = <100000000>;
max_req_size = <0x20000>; /**128KB*/
gpio_dat3 = <&gpio CARD_4 GPIO_ACTIVE_HIGH>;
jtag_pin = <&gpio CARD_0 GPIO_ACTIVE_HIGH>;
gpio_cd = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
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
*/
};
};
sd_emmc_a:sdio@d0070000 {
status = "okay";
compatible = "amlogic, meson-mmc-gxl";
reg = <0xd0070000 0x2000>;
interrupts = <0 216 4>;
pinctrl-names = "sdio_clk_cmd_pins", "sdio_all_pins";
pinctrl-0 = <&sdio_clk_cmd_pins>;
pinctrl-1 = <&sdio_all_pins>;
clocks = <&clkc CLKID_SD_EMMC_A>,
<&clkc CLKID_SD_EMMC_A_P0_COMP>,
<&clkc CLKID_FCLK_DIV2>;
clock-names = "core", "clkin0", "clkin1";
bus-width = <4>;
cap-sd-highspeed;
cap-mmc-highspeed;
max-frequency = <100000000>;
non-removable;
disable-wp;
sdio {
pinname = "sdio";
ocr_avail = <0x200080>; /**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_UHS_SDR12",
"MMC_CAP_UHS_SDR25",
"MMC_CAP_UHS_SDR50",
"MMC_CAP_UHS_SDR104",
"MMC_PM_KEEP_POWER",
"MMC_CAP_SDIO_IRQ";
f_min = <400000>;
f_max = <200000000>;
max_req_size = <0x20000>; /**128KB*/
card_type = <3>;
/* 3:sdio device(ie:sdio-wifi),
* 4:SD combo (IO+mem) card
*/
};
};
ethmac: ethernet@0xc9410000 {
compatible = "amlogic, gxbb-eth-dwmac";
reg = <0xc9410000 0x10000
0xc8834540 0x8
0xc8834558 0xc>;
interrupts = <0 8 1>;
pinctrl-names = "external_eth_pins";
pinctrl-0 = <&external_eth_pins>;
rst_pin-gpios = <&gpio GPIOZ_14 0>;
GPIOZ4_pin-gpios = <&gpio GPIOZ_4 0>;
GPIOZ5_pin-gpios = <&gpio GPIOZ_5 0>;
mc_val_internal_phy = <0x1800>;
mc_val_external_phy = <0x1621>;
cali_val = <0x20000>;
interrupt-names = "macirq";
clocks = <&clkc CLKID_ETH>;
clock-names = "ethclk81";
internal_phy=<1>;
};
codec_io {
compatible = "amlogic, codec_io";
#address-cells=<1>;
#size-cells=<1>;
ranges;
io_cbus_base{
reg = <0xC1100000 0x100000>;
};
io_dos_base{
reg = <0xc8820000 0x10000>;
};
io_hiubus_base{
reg = <0xc883c000 0x2000>;
};
io_aobus_base{
reg = <0xc8100000 0x100000>;
};
io_vcbus_base{
reg = <0xd0100000 0x40000>;
};
io_dmc_base{
reg = <0xc8838000 0x400>;
};
};
aml_sensor0: aml-sensor@0 {
compatible = "amlogic, aml-thermal";
device_name = "thermal";
#thermal-sensor-cells = <1>;
cooling_devices {
cpufreq_cool_cluster0 {
min_state = <1000000>;
dyn_coeff = <140>;
cluster_id = <0>;
node_name = "cpufreq_cool0";
device_type = "cpufreq";
};
cpucore_cool_cluster0 {
min_state = <1>;
dyn_coeff = <0>;
cluster_id = <0>;
node_name = "cpucore_cool0";
device_type = "cpucore";
};
gpufreq_cool {
min_state = <400>;
dyn_coeff = <437>;
cluster_id = <0>;
node_name = "gpufreq_cool0";
device_type = "gpufreq";
};
gpucore_cool {
min_state = <1>;
dyn_coeff = <0>;
cluster_id = <0>;
node_name = "gpucore_cool0";
device_type = "gpucore";
};
};
cpufreq_cool0:cpufreq_cool0 {
#cooling-cells = <2>; /* min followed by max */
};
cpucore_cool0:cpucore_cool0 {
#cooling-cells = <2>; /* min followed by max */
};
gpufreq_cool0:gpufreq_cool0 {
#cooling-cells = <2>; /* min followed by max */
};
gpucore_cool0:gpucore_cool0 {
#cooling-cells = <2>; /* min followed by max */
};
};
thermal-zones {
soc_thermal {
polling-delay = <1000>;
polling-delay-passive = <100>;
sustainable-power = <2150>;
thermal-sensors = <&aml_sensor0 3>;
trips {
switch_on: trip-point@0 {
temperature = <70000>;
hysteresis = <1000>;
type = "passive";
};
control: trip-point@1 {
temperature = <80000>;
hysteresis = <1000>;
type = "passive";
};
hot: trip-point@2 {
temperature = <85000>;
hysteresis = <5000>;
type = "hot";
};
critical: trip-point@3 {
temperature = <260000>;
hysteresis = <1000>;
type = "critical";
};
};
cooling-maps {
cpufreq_cooling_map {
trip = <&control>;
cooling-device = <&cpufreq_cool0 0 4>;
contribution = <1024>;
};
cpucore_cooling_map {
trip = <&control>;
cooling-device = <&cpucore_cool0 0 3>;
contribution = <1024>;
};
gpufreq_cooling_map {
trip = <&control>;
cooling-device = <&gpufreq_cool0 0 4>;
contribution = <1024>;
};
gpucore_cooling_map {
trip = <&control>;
cooling-device = <&gpucore_cool0 0 2>;
contribution = <1024>;
};
};
};
};
dwc3: dwc3@c9000000 {
compatible = "synopsys, dwc3";
reg = <0xc9000000 0x100000>;
interrupts = <0 30 4>;
usb-phy = <&usb2_phy>, <&usb3_phy>;
cpu-type = "gxl";
clock-src = "usb3.0";
};
usb2_phy: usb2phy@d0078000 {
compatible = "amlogic, amlogic-new-usb2";
portnum = <3>;
reg = <0xd0078000 0x80
0xc1104408 0x4>;
};
usb3_phy: usb3phy@d0078080 {
compatible = "amlogic, amlogic-new-usb3";
portnum = <0>;
reg = <0xd0078080 0x20>;
interrupts = <0 16 4>;
otg = <1>;
gpio-vbus-power = "GPIOAO_5";
gpios = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
};
dwc2_a {
compatible = "amlogic, dwc2";
device_name = "dwc2_a";
reg = <0xc9100000 0x40000>;
status = "okay";
interrupts = <0 31 4>;
pl-periph-id = <0>; /** lm name */
clock-src = "usb0"; /** clock src */
port-id = <0>; /** ref to mach/usb.h */
port-type = <2>; /** 0: otg, 1: host, 2: slave */
port-speed = <0>; /** 0: default, high, 1: full */
port-config = <0>; /** 0: default */
port-dma = <0>; /** 0: default ... 6: disable*/
port-id-mode = <0>; /** 0: hardware, 1: sw_host, 2: sw_slave*/
usb-fifo = <728>;
cpu-type = "gxl";
controller-type = <3>; /** 0: normal,1:host,2:device,3:otg*/
phy-reg = <0xd0078000>;
phy-reg-size = <0xa0>;
clocks = <&clkc CLKID_USB_GENERAL
&clkc CLKID_USB1_TO_DDR
&clkc CLKID_USB1>;
clock-names = "usb_general",
"usb1",
"usb1_to_ddr";
};
meson-amvideom {
compatible = "amlogic, amvideom";
dev_name = "amvideom";
status = "okay";
interrupts = <0 3 1>;
interrupt-names = "vsync";
};
vout {
compatible = "amlogic, vout";
dev_name = "vout";
status = "okay";
fr_auto_policy = <0>;
};
meson-fb {
compatible = "amlogic, meson-gxl";
memory-region = <&fb_reserved>;
dev_name = "meson-fb";
status = "okay";
interrupts = <0 3 1
0 89 1>;
interrupt-names = "viu-vsync", "rdma";
mem_size = <0x00800000 0x01800000 0x00100000>;
/* uboot logo,fb0/fb1 memory size,if afbcd fb0=0x01851000 */
display_mode_default = "1080p60hz";
scale_mode = <1>;
/** 0:VPU free scale 1:OSD free scale 2:OSD super scale */
display_size_default = <1920 1080 1920 3240 32>;
/*1920*1080*4*3 = 0x17BB000*/
mem_alloc = <1>;
logo_addr = "0x7dc00000";
};
ge2d {
compatible = "amlogic, ge2d-gxl";
dev_name = "ge2d";
status = "okay";
interrupts = <0 150 1>;
interrupt-names = "ge2d";
clocks = <&clkc CLKID_VAPB_MUX>,
<&clkc CLKID_G2D>,
<&clkc CLKID_GE2D_GATE>;
clock-names = "clk_vapb_0",
"clk_ge2d",
"clk_ge2d_gate";
};
/* AUDIO MESON DEVICES */
i2s_dai: I2S {
#sound-dai-cells = <0>;
compatible = "amlogic, aml-i2s-dai";
clocks =
<&clkc CLKID_MPLL2>,
<&clkc CLKID_AMCLK_COMP>,
<&clkc CLKID_AIU_GLUE>,
<&clkc CLKID_IEC958>,
<&clkc CLKID_I2S_OUT>,
<&clkc CLKID_AMCLK>,
<&clkc CLKID_AIFIFO2>,
<&clkc CLKID_MIXER>,
<&clkc CLKID_MIXER_IFACE>,
<&clkc CLKID_ADC>,
<&clkc CLKID_AIU_TOP>,
<&clkc CLKID_AOCLK_GATE>,
<&clkc CLKID_I2S_SPDIF>;
clock-names =
"mpll",
"mclk",
"top_glue",
"aud_buf",
"i2s_out",
"amclk_measure",
"aififo2",
"aud_mixer",
"mixer_reg",
"adc",
"top_level",
"aoclk",
"aud_in";
i2s_pos_sync = <1>;
/*DMIC;*/ /* I2s Mic or Dmic, default for I2S mic */
};
dmic:snd_dmic {
#sound-dai-cells = <0>;
compatible = "aml, aml_snd_dmic";
reg = <0xd0042000 0x2000>;
status = "okay";
resets = <
&clkc CLKID_PDM_GATE
>;
reset-names = "pdm";
pinctrl-names = "audio_dmic";
pinctrl-0 = <&aml_dmic_pins>;
clocks = <&clkc CLKID_PDM_COMP>,
<&clkc CLKID_AMCLK_COMP>;
clock-names = "pdm", "mclk";
};
spdif_dai: SPDIF {
#sound-dai-cells = <0>;
compatible = "amlogic, aml-spdif-dai";
clocks =
<&clkc CLKID_MPLL1>,
<&clkc CLKID_I958_COMP>,
<&clkc CLKID_AMCLK_COMP>,
<&clkc CLKID_I958_COMP_SPDIF>,
<&clkc CLKID_CLK81>,
<&clkc CLKID_IEC958>,
<&clkc CLKID_IEC958_GATE>;
clock-names =
"mpll1",
"i958",
"mclk",
"spdif",
"clk_81",
"iec958",
"iec958_amclk";
};
pcm_dai: PCM {
#sound-dai-cells = <0>;
compatible = "amlogic, aml-pcm-dai";
pinctrl-names = "audio_pcm";
pinctrl-0 = <&audio_pcm_pins>;
clocks =
<&clkc CLKID_MPLL0>,
<&clkc CLKID_PCM_MCLK_COMP>,
<&clkc CLKID_PCM_SCLK_GATE>;
clock-names =
"mpll0",
"pcm_mclk",
"pcm_sclk";
pcm_mode = <1>; /* 0=slave mode, 1=master mode */
};
i2s_plat: i2s_platform {
compatible = "amlogic, aml-i2s";
interrupts = <0 29 1>;
};
pcm_plat: pcm_platform {
compatible = "amlogic, aml-pcm";
};
spdif_codec: spdif_codec{
#sound-dai-cells = <0>;
compatible = "amlogic, aml-spdif-codec";
pinctrl-names = "audio_spdif";
pinctrl-0 = <&audio_spdif_pins>;
};
pcm_codec: pcm_codec{
#sound-dai-cells = <0>;
compatible = "amlogic, pcm2BT-codec";
};
/* endof AUDIO MESON DEVICES */
/* AUDIO board specific */
dummy_codec:dummy{
#sound-dai-cells = <0>;
compatible = "amlogic, aml_dummy_codec";
status = "okay";
};
amlogic_codec:t9015{
#sound-dai-cells = <0>;
compatible = "amlogic, aml_codec_T9015";
reg = <0xc8832000 0x14>;
status = "disable";
};
aml_sound_meson {
compatible = "aml, meson-snd-card";
status = "okay";
aml-sound-card,format = "i2s";
aml_sound_card,name = "AML-MESONAUDIO";
aml,audio-routing =
"Ext Spk","LOUTL",
"Ext Spk","LOUTR";
mute_gpio-gpios = <&gpio GPIOH_5 0>;
mute_inv;
hp_disable;
hp_paraments = <800 300 0 5 1>;
pinctrl-names = "audio_i2s";
pinctrl-0 = <&audio_i2s_pins>;
cpu_list = <&cpudai0 &cpudai1 &cpudai2>;
codec_list = <&codec0 &codec1 &codec2>;
plat_list = <&i2s_plat &i2s_plat &pcm_plat>;
cpudai0: cpudai0 {
sound-dai = <&i2s_dai>;
};
cpudai1: cpudai1 {
sound-dai = <&spdif_dai>;
};
cpudai2: cpudai2 {
sound-dai = <&pcm_dai>;
};
codec0: codec0 {
sound-dai = <&dummy_codec>;
};
codec1: codec1 {
sound-dai = <&spdif_codec>;
};
codec2: codec2 {
sound-dai = <&pcm_codec>;
};
};
/* END OF AUDIO board specific */
rdma{
compatible = "amlogic, meson, rdma";
dev_name = "amlogic-rdma";
status = "ok";
interrupts = <0 89 1>;
interrupt-names = "rdma";
};
partitions: partitions{
parts = <11>;
part-0 = <&logo>;
part-1 = <&recovery>;
part-2 = <&rsv>;
part-3 = <&tee>;
part-4 = <&crypt>;
part-5 = <&misc>;
part-6 = <&instaboot>;
part-7 = <&boot>;
part-8 = <&system>;
part-9 = <&cache>;
part-10 = <&data>;
logo:logo{
pname = "logo";
size = <0x0 0x2000000>;
mask = <1>;
};
recovery:recovery{
pname = "recovery";
size = <0x0 0x2000000>;
mask = <1>;
};
rsv:rsv{
pname = "rsv";
size = <0x0 0x800000>;
mask = <1>;
};
tee:tee{
pname = "tee";
size = <0x0 0x800000>;
mask = <1>;
};
crypt:crypt{
pname = "crypt";
size = <0x0 0x2000000>;
mask = <1>;
};
misc:misc{
pname = "misc";
size = <0x0 0x2000000>;
mask = <1>;
};
instaboot:instaboot{
pname = "instaboot";
size = <0x0 0x400000>;
mask = <1>;
};
boot:boot
{
pname = "boot";
size = <0x0 0x2000000>;
mask = <1>;
};
system:system
{
pname = "system";
size = <0x0 0x80000000>;
mask = <1>;
};
cache:cache
{
pname = "cache";
size = <0x0 0x20000000>;
mask = <2>;
};
data:data
{
pname = "data";
size = <0xffffffff 0xffffffff>;
mask = <4>;
};
};
unifykey{
compatible = "amlogic, unifykey";
status = "ok";
unifykey-num = <15>;
unifykey-index-0 = <&keysn_0>;
unifykey-index-1 = <&keysn_1>;
unifykey-index-2 = <&keysn_2>;
unifykey-index-3 = <&keysn_3>;
unifykey-index-4 = <&keysn_4>;
unifykey-index-5 = <&keysn_5>;
unifykey-index-6 = <&keysn_6>;
unifykey-index-7 = <&keysn_7>;
unifykey-index-8 = <&keysn_8>;
unifykey-index-9 = <&keysn_9>;
unifykey-index-10= <&keysn_10>;
unifykey-index-11= <&keysn_11>;
unifykey-index-12= <&keysn_12>;
unifykey-index-13= <&keysn_13>;
unifykey-index-14= <&keysn_14>;
keysn_0: key_0{
key-name = "usid";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_1:key_1{
key-name = "mac";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_2:key_2{
key-name = "hdcp";
key-device = "secure";
key-type = "sha1";
key-permit = "read","write","del";
};
keysn_3:key_3{
key-name = "secure_boot_set";
key-device = "efuse";
key-permit = "write";
};
keysn_4:key_4{
key-name = "mac_bt";
key-device = "normal";
key-permit = "read","write","del";
key-type = "mac";
};
keysn_5:key_5{
key-name = "mac_wifi";
key-device = "normal";
key-permit = "read","write","del";
key-type = "mac";
};
keysn_6:key_6{
key-name = "hdcp2_tx";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_7:key_7{
key-name = "hdcp2_rx";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_8:key_8{
key-name = "widevinekeybox";
key-device = "secure";
key-permit = "read","write","del";
};
keysn_9:key_9{
key-name = "deviceid";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_10:key_10{
key-name = "hdcp22_fw_private";
key-device = "secure";
key-permit = "read","write","del";
};
keysn_11:key_11{
key-name = "PlayReadykeybox25";
key-device = "secure";
key-permit = "read","write","del";
};
keysn_12:key_12{
key-name = "prpubkeybox";// PlayReady
key-device = "secure";
key-permit = "read","write","del";
};
keysn_13:key_13{
key-name = "prprivkeybox";// PlayReady
key-device = "secure";
key-permit = "read","write","del";
};
keysn_14:key_14{
key-name = "attestationkeybox";// attestation key
key-device = "secure";
key-permit = "read","write","del";
};
};//End unifykey
};
&efuse {
status = "ok";
};
&pwm_ef {
status = "okay";
};
&audio_i2s_pins {
mux {
groups = "i2s_am_clk",
"i2s_ao_clk_out",
"i2s_lr_clk_out",
"i2sout_ch01",
"i2sin_ch23",
"i2sin_ch45",
"i2sin_ch67";
function = "i2s";
};
};
&i2c_AO {
status = "okay";
pca9557:pca9557@0x1f{
compatible = "nxp,pca9557";
reg = <0x1f>;
status = "okay";
};
};

View File

@@ -0,0 +1,962 @@
/*
* arch/arm/boot/dts/amlogic/gxl_p401_2g.dts
*
* Copyright (C) 2017 Amlogic, Inc. All rights reserved.
*
* 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.
*
*/
/dts-v1/;
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include "mesongxl.dtsi"
/ {
model = "Amlogic";
amlogic-dt-id = "gxl_p401_2g";
compatible = "amlogic, Gxl";
interrupt-parent = <&gic>;
#address-cells = <1>;
#size-cells = <1>;
aliases {
serial0 = &uart_AO;
serial1 = &uart_A;
serial2 = &uart_B;
serial3 = &uart_C;
serial4 = &uart_AO_B;
};
memory@00000000 {
device_type = "memory";
linux,usable-memory = <0x0100000 0x7ff00000>;
};
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
/* global autoconfigured region for contiguous allocations */
ramoops@0x07400000 {
compatible = "ramoops";
reg = <0x07400000 0x00100000>;
record-size = <0x8000>;
console-size = <0x8000>;
ftrace-size = <0x0>;
pmsg-size = <0x8000>;
};
secmon_reserved:linux,secmon {
compatible = "shared-dma-pool";
reusable;
size = <0x400000>;
alignment = <0x400000>;
alloc-ranges = <0x05000000 0x400000>;
};
secos_reserved:linux,secos {
status = "disable";
compatible = "amlogic, aml_secos_memory";
reg = <0x05300000 0x2000000>;
no-map;
};
fb_reserved:linux,meson-fb {
compatible = "shared-dma-pool";
reusable;
size = <0x2400000>;
alignment = <0x400000>;
alloc-ranges = <0x7dc00000 0x2400000>;
};
};
wifi{
compatible = "amlogic, aml_wifi";
dev_name = "aml_wifi";
status = "okay";
interrupt_pin = <&gpio GPIOX_7 GPIO_ACTIVE_HIGH>;
irq_trigger_type = "GPIO_IRQ_LOW";
power_on_pin = <&gpio GPIOX_6 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&wifi_32k_pins>;
pwm_config = <&wifi_pwm_conf>;
};
wifi_pwm_conf:wifi_pwm_conf{
pwm_channel1_conf {
pwms = <&pwm_ef MESON_PWM_0 30040 0>;
duty-cycle = <15020>;
times = <8>;
};
pwm_channel2_conf {
pwms = <&pwm_ef MESON_PWM_2 30030 0>;
duty-cycle = <15015>;
times = <12>;
};
};
sd_emmc_c: emmc@d0074000 {
status = "disabled";
compatible = "amlogic, meson-mmc-gxl";
reg = <0xd0074000 0x2000>;
interrupts = <0 218 1>;
pinctrl-names = "emmc_clk_cmd_pins", "emmc_all_pins";
pinctrl-0 = <&emmc_clk_cmd_pins>;
pinctrl-1 = <&emmc_conf_pull_up &emmc_conf_pull_done>;
clocks = <&clkc CLKID_SD_EMMC_C>,
<&clkc CLKID_SD_EMMC_C_P0_COMP>,
<&clkc CLKID_FCLK_DIV2>;
clock-names = "core", "clkin0", "clkin1";
bus-width = <8>;
cap-sd-highspeed;
cap-mmc-highspeed;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
max-frequency = <200000000>;
non-removable;
disable-wp;
emmc {
pinname = "emmc";
ocr_avail = <0x200080>; /**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_1_8V_DDR",
"MMC_CAP_HW_RESET",
"MMC_CAP_ERASE",
"MMC_CAP_CMD23";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
f_min = <400000>;
f_max = <100000000>;
max_req_size = <0x20000>; /**128KB*/
gpio_dat3 = <&gpio BOOT_3 GPIO_ACTIVE_HIGH>;
hw_reset = <&gpio BOOT_9 GPIO_ACTIVE_HIGH>;
card_type = <1>;
/* 1:mmc card(include eMMC),
* 2:sd card(include tSD)
*/
};
};
sd_emmc_b:sd@d0072000 {
status = "okay";
compatible = "amlogic, meson-mmc-gxl";
reg = <0xd0072000 0x2000>;
interrupts = <0 217 1>;
pinctrl-names = "sd_all_pins",
"sd_clk_cmd_pins",
"sd_1bit_pins",
"sd_clk_cmd_uart_pins",
"sd_1bit_uart_pins",
"sd_to_ao_uart_pins",
"ao_to_sd_uart_pins",
"ao_to_sd_jtag_pins",
"sd_to_ao_jtag_pins";
pinctrl-0 = <&sd_all_pins>;
pinctrl-1 = <&sd_clk_cmd_pins>;
pinctrl-2 = <&sd_1bit_pins>;
pinctrl-3 = <&sd_to_ao_uart_clr_pins
&sd_clk_cmd_pins &ao_to_sd_uart_pins>;
pinctrl-4 = <&sd_to_ao_uart_clr_pins
&sd_1bit_pins &ao_to_sd_uart_pins>;
pinctrl-5 = <&sd_all_pins &sd_to_ao_uart_pins>;
pinctrl-6 = <&sd_to_ao_uart_clr_pins &ao_to_sd_uart_pins>;
pinctrl-7 = <&sd_to_ao_uart_clr_pins &ao_to_sd_uart_pins>;
pinctrl-8 = <&sd_all_pins &sd_to_ao_uart_pins>;
clocks = <&clkc CLKID_SD_EMMC_B>,
<&clkc CLKID_SD_EMMC_B_P0_COMP>,
<&clkc CLKID_FCLK_DIV2>;
clock-names = "core", "clkin0", "clkin1";
bus-width = <4>;
cap-sd-highspeed;
max-frequency = <100000000>;
disable-wp;
sd {
pinname = "sd";
ocr_avail = <0x200080>; /**VDD voltage 3.3 ~ 3.4 */
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 = <400000>;
f_max = <100000000>;
max_req_size = <0x20000>; /**128KB*/
gpio_dat3 = <&gpio CARD_4 GPIO_ACTIVE_HIGH>;
jtag_pin = <&gpio CARD_0 GPIO_ACTIVE_HIGH>;
gpio_cd = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
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
*/
};
};
sd_emmc_a:sdio@d0070000 {
status = "okay";
compatible = "amlogic, meson-mmc-gxl";
reg = <0xd0070000 0x2000>;
interrupts = <0 216 4>;
pinctrl-names = "sdio_clk_cmd_pins", "sdio_all_pins";
pinctrl-0 = <&sdio_clk_cmd_pins>;
pinctrl-1 = <&sdio_all_pins>;
clocks = <&clkc CLKID_SD_EMMC_A>,
<&clkc CLKID_SD_EMMC_A_P0_COMP>,
<&clkc CLKID_FCLK_DIV2>;
clock-names = "core", "clkin0", "clkin1";
bus-width = <4>;
cap-sd-highspeed;
cap-mmc-highspeed;
max-frequency = <100000000>;
non-removable;
disable-wp;
sdio {
pinname = "sdio";
ocr_avail = <0x200080>; /**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_UHS_SDR12",
"MMC_CAP_UHS_SDR25",
"MMC_CAP_UHS_SDR50",
"MMC_CAP_UHS_SDR104",
"MMC_PM_KEEP_POWER",
"MMC_CAP_SDIO_IRQ";
f_min = <400000>;
f_max = <200000000>;
max_req_size = <0x20000>; /**128KB*/
card_type = <3>;
/* 3:sdio device(ie:sdio-wifi),
* 4:SD combo (IO+mem) card
*/
};
};
mtd_nand{
compatible = "amlogic, aml_mtd_nand";
dev_name = "mtdnand";
status = "okay";
reg = <0xd0074800 0x200>;
interrupts = < 0 34 1 >;
pinctrl-names = "nand_rb_mod","nand_norb_mod", "nand_cs_only";
pinctrl-0 = <&all_nand_pins>;
pinctrl-1 = <&all_nand_pins>;
pinctrl-2 = <&nand_cs_pins>;
device_id = <0>;
/*fip/tpl configurations, must be same
* with uboot if bl_mode was set as 1
* bl_mode: 0 compact mode; 1 descrete mode
* if bl_mode was set as 1, fip configeration will work
*/
bl_mode = <1>;
/*copy count of fip*/
fip_copies = <4>;
/*size of each fip copy */
fip_size = <0x200000>;
nand_clk_ctrl = <0xd0074000>;
plat-names = "bootloader","nandnormal";
plat-num = <2>;
plat-part-0 = <&bootloader>;
plat-part-1 = <&nandnormal>;
bootloader: bootloader{
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>;
};
nandnormal: nandnormal{
enable_pad ="ce0","ce1";
busy_pad = "rb0","rb1";
timming_mode = "mode5";
bch_mode = "bch60_1k";
plane_mode = "twoplane";
t_rea = <20>;
t_rhoh = <15>;
chip_num = <2>;
part_num = <3>;
partition = <&nand_partitions>;
rb_detect = <1>;
};
nand_partitions:nand_partition{
/*
* if bl_mode is 1, tpl size was generate by
* fip_copies * fip_size which
* will not skip bad when calculating
* the partition size;
*
* if bl_mode is 0,
* tpl partition must be comment out.
*/
tpl{
offset=<0x0 0x0>;
size=<0x0 0x0>;
};
logo{
offset=<0x0 0x0>;
size=<0x0 0x200000>;
};
recovery{
offset=<0x0 0x0>;
size=<0x0 0x1000000>;
};
boot{
offset=<0x0 0x0>;
size=<0x0 0x1000000>;
};
system{
offset=<0x0 0x0>;
size=<0x0 0xDC00000>;
};
data{
offset=<0xffffffff 0xffffffff>;
size=<0x0 0x0>;
};
};
};
ethmac: ethernet@0xc9410000 {
compatible = "amlogic, gxbb-eth-dwmac";
reg = <0xc9410000 0x10000
0xc8834540 0x8
0xc8834558 0xc>;
interrupts = <0 8 1>;
pinctrl-names = "external_eth_pins";
pinctrl-0 = <&external_eth_pins>;
rst_pin-gpios = <&gpio GPIOZ_14 0>;
GPIOZ4_pin-gpios = <&gpio GPIOZ_4 0>;
GPIOZ5_pin-gpios = <&gpio GPIOZ_5 0>;
mc_val_internal_phy = <0x1800>;
mc_val_external_phy = <0x1621>;
cali_val = <0x20000>;
interrupt-names = "macirq";
clocks = <&clkc CLKID_ETH>;
clock-names = "ethclk81";
internal_phy=<1>;
};
codec_io {
compatible = "amlogic, codec_io";
#address-cells=<1>;
#size-cells=<1>;
ranges;
io_cbus_base{
reg = <0xC1100000 0x100000>;
};
io_dos_base{
reg = <0xc8820000 0x10000>;
};
io_hiubus_base{
reg = <0xc883c000 0x2000>;
};
io_aobus_base{
reg = <0xc8100000 0x100000>;
};
io_vcbus_base{
reg = <0xd0100000 0x40000>;
};
io_dmc_base{
reg = <0xc8838000 0x400>;
};
};
aml_sensor0: aml-sensor@0 {
compatible = "amlogic, aml-thermal";
device_name = "thermal";
#thermal-sensor-cells = <1>;
cooling_devices {
cpufreq_cool_cluster0 {
min_state = <1000000>;
dyn_coeff = <140>;
cluster_id = <0>;
node_name = "cpufreq_cool0";
device_type = "cpufreq";
};
cpucore_cool_cluster0 {
min_state = <1>;
dyn_coeff = <0>;
cluster_id = <0>;
node_name = "cpucore_cool0";
device_type = "cpucore";
};
gpufreq_cool {
min_state = <400>;
dyn_coeff = <437>;
cluster_id = <0>;
node_name = "gpufreq_cool0";
device_type = "gpufreq";
};
gpucore_cool {
min_state = <1>;
dyn_coeff = <0>;
cluster_id = <0>;
node_name = "gpucore_cool0";
device_type = "gpucore";
};
};
cpufreq_cool0:cpufreq_cool0 {
#cooling-cells = <2>; /* min followed by max */
};
cpucore_cool0:cpucore_cool0 {
#cooling-cells = <2>; /* min followed by max */
};
gpufreq_cool0:gpufreq_cool0 {
#cooling-cells = <2>; /* min followed by max */
};
gpucore_cool0:gpucore_cool0 {
#cooling-cells = <2>; /* min followed by max */
};
};
thermal-zones {
soc_thermal {
polling-delay = <1000>;
polling-delay-passive = <100>;
sustainable-power = <2150>;
thermal-sensors = <&aml_sensor0 3>;
trips {
switch_on: trip-point@0 {
temperature = <70000>;
hysteresis = <1000>;
type = "passive";
};
control: trip-point@1 {
temperature = <80000>;
hysteresis = <1000>;
type = "passive";
};
hot: trip-point@2 {
temperature = <85000>;
hysteresis = <5000>;
type = "hot";
};
critical: trip-point@3 {
temperature = <260000>;
hysteresis = <1000>;
type = "critical";
};
};
cooling-maps {
cpufreq_cooling_map {
trip = <&control>;
cooling-device = <&cpufreq_cool0 0 4>;
contribution = <1024>;
};
cpucore_cooling_map {
trip = <&control>;
cooling-device = <&cpucore_cool0 0 3>;
contribution = <1024>;
};
gpufreq_cooling_map {
trip = <&control>;
cooling-device = <&gpufreq_cool0 0 4>;
contribution = <1024>;
};
gpucore_cooling_map {
trip = <&control>;
cooling-device = <&gpucore_cool0 0 2>;
contribution = <1024>;
};
};
};
};
dwc3: dwc3@c9000000 {
compatible = "synopsys, dwc3";
reg = <0xc9000000 0x100000>;
interrupts = <0 30 4>;
usb-phy = <&usb2_phy>, <&usb3_phy>;
cpu-type = "gxl";
clock-src = "usb3.0";
};
usb2_phy: usb2phy@d0078000 {
compatible = "amlogic, amlogic-new-usb2";
portnum = <3>;
reg = <0xd0078000 0x80
0xc1104408 0x4>;
};
usb3_phy: usb3phy@d0078080 {
compatible = "amlogic, amlogic-new-usb3";
portnum = <0>;
reg = <0xd0078080 0x20>;
interrupts = <0 16 4>;
otg = <1>;
gpio-vbus-power = "GPIOAO_5";
gpios = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
};
dwc2_a {
compatible = "amlogic, dwc2";
device_name = "dwc2_a";
reg = <0xc9100000 0x40000>;
status = "okay";
interrupts = <0 31 4>;
pl-periph-id = <0>; /** lm name */
clock-src = "usb0"; /** clock src */
port-id = <0>; /** ref to mach/usb.h */
port-type = <2>; /** 0: otg, 1: host, 2: slave */
port-speed = <0>; /** 0: default, high, 1: full */
port-config = <0>; /** 0: default */
port-dma = <0>; /** 0: default ... 6: disable*/
port-id-mode = <0>; /** 0: hardware, 1: sw_host, 2: sw_slave*/
usb-fifo = <728>;
cpu-type = "gxl";
controller-type = <3>; /** 0: normal,1:host,2:device,3:otg*/
phy-reg = <0xd0078000>;
phy-reg-size = <0xa0>;
clocks = <&clkc CLKID_USB_GENERAL
&clkc CLKID_USB1_TO_DDR
&clkc CLKID_USB1>;
clock-names = "usb_general",
"usb1",
"usb1_to_ddr";
};
meson-amvideom {
compatible = "amlogic, amvideom";
dev_name = "amvideom";
status = "okay";
interrupts = <0 3 1>;
interrupt-names = "vsync";
};
vout {
compatible = "amlogic, vout";
dev_name = "vout";
status = "okay";
fr_auto_policy = <0>;
};
meson-fb {
compatible = "amlogic, meson-gxl";
memory-region = <&fb_reserved>;
dev_name = "meson-fb";
status = "okay";
interrupts = <0 3 1
0 89 1>;
interrupt-names = "viu-vsync", "rdma";
mem_size = <0x00800000 0x01800000 0x00100000>;
/* uboot logo,fb0/fb1 memory size,if afbcd fb0=0x01851000 */
display_mode_default = "1080p60hz";
scale_mode = <1>;
/** 0:VPU free scale 1:OSD free scale 2:OSD super scale */
display_size_default = <1920 1080 1920 3240 32>;
/*1920*1080*4*3 = 0x17BB000*/
mem_alloc = <1>;
logo_addr = "0x7dc00000";
};
ge2d {
compatible = "amlogic, ge2d-gxl";
dev_name = "ge2d";
status = "okay";
interrupts = <0 150 1>;
interrupt-names = "ge2d";
clocks = <&clkc CLKID_VAPB_MUX>,
<&clkc CLKID_G2D>,
<&clkc CLKID_GE2D_GATE>;
clock-names = "clk_vapb_0",
"clk_ge2d",
"clk_ge2d_gate";
};
/* AUDIO MESON DEVICES */
i2s_dai: I2S {
#sound-dai-cells = <0>;
compatible = "amlogic, aml-i2s-dai";
clocks =
<&clkc CLKID_MPLL2>,
<&clkc CLKID_AMCLK_COMP>,
<&clkc CLKID_AIU_GLUE>,
<&clkc CLKID_IEC958>,
<&clkc CLKID_I2S_OUT>,
<&clkc CLKID_AMCLK>,
<&clkc CLKID_AIFIFO2>,
<&clkc CLKID_MIXER>,
<&clkc CLKID_MIXER_IFACE>,
<&clkc CLKID_ADC>,
<&clkc CLKID_AIU_TOP>,
<&clkc CLKID_AOCLK_GATE>,
<&clkc CLKID_I2S_SPDIF>;
clock-names =
"mpll",
"mclk",
"top_glue",
"aud_buf",
"i2s_out",
"amclk_measure",
"aififo2",
"aud_mixer",
"mixer_reg",
"adc",
"top_level",
"aoclk",
"aud_in";
i2s_pos_sync = <1>;
/*DMIC;*/ /* I2s Mic or Dmic, default for I2S mic */
};
dmic:snd_dmic {
#sound-dai-cells = <0>;
compatible = "aml, aml_snd_dmic";
reg = <0xd0042000 0x2000>;
status = "okay";
resets = <
&clkc CLKID_PDM_GATE
>;
reset-names = "pdm";
pinctrl-names = "audio_dmic";
pinctrl-0 = <&aml_dmic_pins>;
clocks = <&clkc CLKID_PDM_COMP>,
<&clkc CLKID_AMCLK_COMP>;
clock-names = "pdm", "mclk";
};
spdif_dai: SPDIF {
#sound-dai-cells = <0>;
compatible = "amlogic, aml-spdif-dai";
clocks =
<&clkc CLKID_MPLL1>,
<&clkc CLKID_I958_COMP>,
<&clkc CLKID_AMCLK_COMP>,
<&clkc CLKID_I958_COMP_SPDIF>,
<&clkc CLKID_CLK81>,
<&clkc CLKID_IEC958>,
<&clkc CLKID_IEC958_GATE>;
clock-names =
"mpll1",
"i958",
"mclk",
"spdif",
"clk_81",
"iec958",
"iec958_amclk";
};
pcm_dai: PCM {
#sound-dai-cells = <0>;
compatible = "amlogic, aml-pcm-dai";
pinctrl-names = "audio_pcm";
pinctrl-0 = <&audio_pcm_pins>;
clocks =
<&clkc CLKID_MPLL0>,
<&clkc CLKID_PCM_MCLK_COMP>,
<&clkc CLKID_PCM_SCLK_GATE>;
clock-names =
"mpll0",
"pcm_mclk",
"pcm_sclk";
pcm_mode = <1>; /* 0=slave mode, 1=master mode */
};
i2s_plat: i2s_platform {
compatible = "amlogic, aml-i2s";
interrupts = <0 29 1>;
};
pcm_plat: pcm_platform {
compatible = "amlogic, aml-pcm";
};
spdif_codec: spdif_codec{
#sound-dai-cells = <0>;
compatible = "amlogic, aml-spdif-codec";
pinctrl-names = "audio_spdif";
pinctrl-0 = <&audio_spdif_pins>;
};
pcm_codec: pcm_codec{
#sound-dai-cells = <0>;
compatible = "amlogic, pcm2BT-codec";
};
/* endof AUDIO MESON DEVICES */
/* AUDIO board specific */
dummy_codec:dummy{
#sound-dai-cells = <0>;
compatible = "amlogic, aml_dummy_codec";
status = "okay";
};
amlogic_codec:t9015{
#sound-dai-cells = <0>;
compatible = "amlogic, aml_codec_T9015";
reg = <0xc8832000 0x14>;
status = "disable";
};
aml_sound_meson {
compatible = "aml, meson-snd-card";
status = "okay";
aml-sound-card,format = "i2s";
aml_sound_card,name = "AML-MESONAUDIO";
aml,audio-routing =
"Ext Spk","LOUTL",
"Ext Spk","LOUTR";
mute_gpio-gpios = <&gpio GPIOH_5 0>;
mute_inv;
hp_disable;
hp_paraments = <800 300 0 5 1>;
pinctrl-names = "audio_i2s";
pinctrl-0 = <&audio_i2s_pins>;
cpu_list = <&cpudai0 &cpudai1 &cpudai2>;
codec_list = <&codec0 &codec1 &codec2>;
plat_list = <&i2s_plat &i2s_plat &pcm_plat>;
cpudai0: cpudai0 {
sound-dai = <&i2s_dai>;
};
cpudai1: cpudai1 {
sound-dai = <&spdif_dai>;
};
cpudai2: cpudai2 {
sound-dai = <&pcm_dai>;
};
codec0: codec0 {
sound-dai = <&dummy_codec>;
};
codec1: codec1 {
sound-dai = <&spdif_codec>;
};
codec2: codec2 {
sound-dai = <&pcm_codec>;
};
};
/* END OF AUDIO board specific */
rdma{
compatible = "amlogic, meson, rdma";
dev_name = "amlogic-rdma";
status = "ok";
interrupts = <0 89 1>;
interrupt-names = "rdma";
};
partitions: partitions{
parts = <11>;
part-0 = <&logo>;
part-1 = <&recovery>;
part-2 = <&rsv>;
part-3 = <&tee>;
part-4 = <&crypt>;
part-5 = <&misc>;
part-6 = <&instaboot>;
part-7 = <&boot>;
part-8 = <&system>;
part-9 = <&cache>;
part-10 = <&data>;
logo:logo{
pname = "logo";
size = <0x0 0x2000000>;
mask = <1>;
};
recovery:recovery{
pname = "recovery";
size = <0x0 0x2000000>;
mask = <1>;
};
rsv:rsv{
pname = "rsv";
size = <0x0 0x800000>;
mask = <1>;
};
tee:tee{
pname = "tee";
size = <0x0 0x800000>;
mask = <1>;
};
crypt:crypt{
pname = "crypt";
size = <0x0 0x2000000>;
mask = <1>;
};
misc:misc{
pname = "misc";
size = <0x0 0x2000000>;
mask = <1>;
};
instaboot:instaboot{
pname = "instaboot";
size = <0x0 0x400000>;
mask = <1>;
};
boot:boot
{
pname = "boot";
size = <0x0 0x2000000>;
mask = <1>;
};
system:system
{
pname = "system";
size = <0x0 0x80000000>;
mask = <1>;
};
cache:cache
{
pname = "cache";
size = <0x0 0x20000000>;
mask = <2>;
};
data:data
{
pname = "data";
size = <0xffffffff 0xffffffff>;
mask = <4>;
};
};
unifykey{
compatible = "amlogic, unifykey";
status = "ok";
unifykey-num = <15>;
unifykey-index-0 = <&keysn_0>;
unifykey-index-1 = <&keysn_1>;
unifykey-index-2 = <&keysn_2>;
unifykey-index-3 = <&keysn_3>;
unifykey-index-4 = <&keysn_4>;
unifykey-index-5 = <&keysn_5>;
unifykey-index-6 = <&keysn_6>;
unifykey-index-7 = <&keysn_7>;
unifykey-index-8 = <&keysn_8>;
unifykey-index-9 = <&keysn_9>;
unifykey-index-10= <&keysn_10>;
unifykey-index-11= <&keysn_11>;
unifykey-index-12= <&keysn_12>;
unifykey-index-13= <&keysn_13>;
unifykey-index-14= <&keysn_14>;
keysn_0: key_0{
key-name = "usid";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_1:key_1{
key-name = "mac";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_2:key_2{
key-name = "hdcp";
key-device = "secure";
key-type = "sha1";
key-permit = "read","write","del";
};
keysn_3:key_3{
key-name = "secure_boot_set";
key-device = "efuse";
key-permit = "write";
};
keysn_4:key_4{
key-name = "mac_bt";
key-device = "normal";
key-permit = "read","write","del";
key-type = "mac";
};
keysn_5:key_5{
key-name = "mac_wifi";
key-device = "normal";
key-permit = "read","write","del";
key-type = "mac";
};
keysn_6:key_6{
key-name = "hdcp2_tx";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_7:key_7{
key-name = "hdcp2_rx";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_8:key_8{
key-name = "widevinekeybox";
key-device = "secure";
key-permit = "read","write","del";
};
keysn_9:key_9{
key-name = "deviceid";
key-device = "normal";
key-permit = "read","write","del";
};
keysn_10:key_10{
key-name = "hdcp22_fw_private";
key-device = "secure";
key-permit = "read","write","del";
};
keysn_11:key_11{
key-name = "PlayReadykeybox25";
key-device = "secure";
key-permit = "read","write","del";
};
keysn_12:key_12{
key-name = "prpubkeybox";// PlayReady
key-device = "secure";
key-permit = "read","write","del";
};
keysn_13:key_13{
key-name = "prprivkeybox";// PlayReady
key-device = "secure";
key-permit = "read","write","del";
};
keysn_14:key_14{
key-name = "attestationkeybox";// attestation key
key-device = "secure";
key-permit = "read","write","del";
};
};//End unifykey
};
&efuse {
status = "ok";
};
&pwm_ef {
status = "okay";
};
&audio_i2s_pins {
mux {
groups = "i2s_am_clk",
"i2s_ao_clk_out",
"i2s_lr_clk_out",
"i2sout_ch01",
"i2sin_ch23",
"i2sin_ch45",
"i2sin_ch67";
function = "i2s";
};
};
&i2c_AO {
status = "okay";
pca9557:pca9557@0x1f{
compatible = "nxp,pca9557";
reg = <0x1f>;
status = "okay";
};
};

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,104 @@
/*
* arch/arm/boot/dts/amlogic/meson_drm.dtsi
*
* Copyright (C) 2015 Amlogic, Inc. All rights reserved.
*
* 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.
*
*/
/ {
drm_amhdmitx: drm-amhdmitx {
status = "disabled";
hdcp = "disabled";
compatible = "amlogic,drm-amhdmitx";
dev_name = "meson-amhdmitx";
interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
ports {
port {
#address-cells = <1>;
#size-cells = <0>;
hdmi_in_vpu: endpoint@0 {
reg = <0>;
remote-endpoint = <&vpu_out_hdmi>;
};
};
};
};
drm_lcd: drm-lcd {
status = "disabled";
compatible = "amlogic,drm-lcd";
dev_name = "meson-lcd";
ports {
port {
#address-cells = <1>;
#size-cells = <0>;
lcd_in_vpu: endpoint@0 {
reg = <0>;
remote-endpoint = <&vpu_out_lcd>;
};
};
};
};
drm_vpu: drm-vpu@0xff900000 {
status = "disabled";
compatible = "amlogic,meson-gxbb-vpu";
reg = <0xd0100000 0x100000>,
<0xc883c000 0x1000>,
<0xc8838000 0x1000>;
reg-names = "base", "hhi", "dmc";
interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
dma-coherent;
vpu_out: port {
#address-cells = <1>;
#size-cells = <0>;
vpu_out_hdmi: endpoint@0 {
reg = <0>;
remote-endpoint = <&hdmi_in_vpu>;
};
vpu_out_lcd: endpoint@1 {
reg = <1>;
remote-endpoint = <&lcd_in_vpu>;
};
};
};
drm_subsystem: drm-subsystem {
status = "okay";
compatible = "amlogic,drm-subsystem";
ports = <&vpu_out>;
};
};
&gpu{
/*gpu max freq is 750M*/
def_clk = <1>;
tbl = <&clk285_cfg &clk666_cfg &clk750_cfg &clk750_cfg>;
clk285_cfg:clk285_cfg {
keep_count = <2>;
threshold = <100 200>;
};
clk666_cfg:clk666_cfg {
keep_count = <1>;
threshold = <85 200>;
};
clk750_cfg:clk750_cfg {
keep_count = <1>;
threshold = <179 255>;
};
};

View File

@@ -0,0 +1,109 @@
/*
* arch/arm/boot/dts/amlogic/meson_drm.dtsi
*
* Copyright (C) 2015 Amlogic, Inc. All rights reserved.
*
* 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.
*
*/
/ {
venc-cvbs {
status = "okay";
compatible = "amlogic,meson-gxbb-cvbs";
ports {
#address-cells = <1>;
#size-cells = <0>;
enc_cvbs_in: port@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
//venc_cvbs_in_vpu: endpoint@0 {
// reg = <0>;
// remote-endpoint = <&vpu_out_venc_cvbs>;
//};
};
};
};
drm_amhdmitx: drm-amhdmitx {
status = "disabled";
hdcp = "disabled";
compatible = "amlogic,drm-amhdmitx";
dev_name = "meson-amhdmitx";
interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
ports {
port {
#address-cells = <1>;
#size-cells = <0>;
hdmi_in_vpu: endpoint@0 {
reg = <0>;
remote-endpoint = <&vpu_out_hdmi>;
};
};
};
};
drm_lcd: drm-lcd {
status = "disabled";
compatible = "amlogic,drm-lcd";
dev_name = "meson-lcd";
ports {
port {
#address-cells = <1>;
#size-cells = <0>;
lcd_in_vpu: endpoint@0 {
reg = <0>;
remote-endpoint = <&vpu_out_lcd>;
};
};
};
};
drm_vpu: drm-vpu@0xff900000 {
status = "disabled";
compatible = "amlogic,meson-g12a-vpu";
memory-region = <&logo_reserved>;
reg = <0xff900000 0x40000>,
<0xff63c000 0x2000>,
<0xff638000 0x2000>;
reg-names = "base", "hhi", "dmc";
interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 56 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "viu-vsync", "viu2-vsync";
clocks = <&clkc CLKID_VPU_CLKC_MUX>;
clock-names = "vpu_clkc";
dma-coherent;
vpu_out: port {
#address-cells = <1>;
#size-cells = <0>;
vpu_out_hdmi: endpoint@0 {
reg = <0>;
remote-endpoint = <&hdmi_in_vpu>;
};
vpu_out_lcd: endpoint@1 {
reg = <1>;
remote-endpoint = <&lcd_in_vpu>;
};
};
};
drm_subsystem: drm-subsystem {
status = "okay";
compatible = "amlogic,drm-subsystem";
ports = <&vpu_out>;
};
};

View File

@@ -0,0 +1,148 @@
/*
* arch/arm/boot/dts/amlogic/mesongxl_p212-panel.dtsi
*
* Copyright (C) 2016 Amlogic, Inc. All rights reserved.
*
* 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.
*
*/
/ {
lcd{
compatible = "amlogic, lcd-gxl";
mode = "tablet";
status = "okay";
key_valid = <0>;
/* clocks = <&clkc CLKID_VCLK2_ENCL
* &clkc CLKID_VCLK2_VENCL>;
* clock-names = "vencl_top_gate",
* "vencl_int_gate";
*/
reg = <0xc8834400 0x100>;
interrupts = <0 3 1>;
interrupt-names = "vsync";
pinctrl_version = <1>; /* for uboot */
pinctrl-names = "ttl_6bit_hvsync_de_on",
"ttl_6bit_hvsync_on",
"ttl_6bit_de_on",
"ttl_6bit_hvsync_de_off",
"ttl_8bit_hvsync_de_on",
"ttl_8bit_hvsync_on",
"ttl_8bit_de_on",
"ttl_8bit_hvsync_de_off";
pinctrl-0 = <&lcd_ttl_rgb_6bit_on_pins
&lcd_ttl_de_hvsync_on_pins>;
pinctrl-1 = <&lcd_ttl_rgb_6bit_on_pins
&lcd_ttl_hvsync_on_pins>;
pinctrl-2 = <&lcd_ttl_rgb_6bit_on_pins
&lcd_ttl_de_on_pins>;
pinctrl-3 = <&lcd_ttl_rgb_6bit_off_pins
&lcd_ttl_de_hvsync_off_pins>;
pinctrl-4 = <&lcd_ttl_rgb_8bit_on_pins
&lcd_ttl_de_hvsync_on_pins>;
pinctrl-5 = <&lcd_ttl_rgb_8bit_on_pins
&lcd_ttl_hvsync_on_pins>;
pinctrl-6 = <&lcd_ttl_rgb_8bit_on_pins
&lcd_ttl_de_on_pins>;
pinctrl-7 = <&lcd_ttl_rgb_8bit_off_pins
&lcd_ttl_de_hvsync_off_pins>;
/* power type:
* (0=cpu_gpio, 1=pmu_gpio, 2=signal,3=extern, 0xff=ending)
* power index:
* (point gpios_index, or extern_index,0xff=invalid)
* power value:(0=output low, 1=output high, 2=input)
* power delay:(unit in ms)
*/
/*lcd_cpu-gpios = <&gpio GPIOX_3 GPIO_ACTIVE_HIGH>;*/
/*lcd_cpu_gpio_names = "GPIOX_3";*/
lcd_0{
model_name = "LCD720P";
interface = "ttl";
basic_setting = <1280 720 /*h_active, v_active*/
1650 750 /*h_period, v_period*/
8 /*lcd_bits */
16 9>; /*screen_widht, screen_height*/
lcd_timing = <40 220 1 /*hs_width, hs_bp, hs_pol*/
5 20 1>; /*vs_width, vs_bp, vs_pol*/
clk_attr = <0 /*fr_adj_type(0=clk, 1=htotal, 2=vtotal)*/
0 /*clk_ss_level*/
1 /*clk_auto_generate*/
74250000>; /*pixel_clk(unit in Hz)*/
ttl_attr = <0 /*clk_pol*/
1 /*de_valid*/
1 /*hvsync_valid*/
0 /*rb_swap*/
0>; /*bit_swap*/
/* power step: type, index, value, delay(ms) */
power_on_step = <2 0 0 0
0xff 0 0 0>; /*ending*/
power_off_step = <2 0 0 50
0xff 0 0 0>; /*ending*/
backlight_index = <0xff>;
};
};
lcd_extern{
compatible = "amlogic, lcd_extern";
status = "disabled";
i2c_bus = "i2c_bus_d";
key_valid = <0>;
extern_0{
index = <0>;
extern_name = "ext_default";
status = "disabled";
type = <0>; /* 0=i2c, 1=spi, 2=mipi */
i2c_address = <0x1c>; /* 7bit i2c address */
i2c_address2 = <0xff>; /* 0xff for none */
cmd_size = <0xff>; /*0xff for dynamic cmd_size*/
/* init on/off:
* fixed cmd_size: (type, value...);
* cmd_size include all data.
* dynamic cmd_size: (type, cmd_size, value...);
* cmd_size include value.
*/
/* type: 0x00=cmd with delay(bit[3:0]=1 for address2),
* 0xc0=cmd(bit[3:0]=1 for address2),
* 0xf0=gpio,
* 0xfd=delay,
* 0xff=ending
*/
/* value: i2c or spi cmd, or gpio index & level */
/* delay: unit ms */
init_on = <
0xc0 7 0x20 0x01 0x02 0x00 0x40 0xFF 0x00
0xc0 7 0x80 0x02 0x00 0x40 0x62 0x51 0x73
0xc0 7 0x61 0x06 0x00 0x00 0x00 0x00 0x00
0xc0 7 0xC1 0x05 0x0F 0x00 0x08 0x70 0x00
0xc0 7 0x13 0x01 0x00 0x00 0x00 0x00 0x00
0xc0 7 0x3D 0x02 0x01 0x00 0x00 0x00 0x00
0xc0 7 0xED 0x0D 0x01 0x00 0x00 0x00 0x00
0xc0 7 0x23 0x02 0x00 0x00 0x00 0x00 0x00
0xfd 1 10 /* delay 10ms */
0xff 0>; /*ending*/
init_off = <0xff 0>; /*ending*/
};
extern_1{
index = <1>;
extern_name = "i2c_DLPC3439";
status = "disabled";
type = <0>; /* 0=i2c, 1=spi, 2=mipi */
i2c_address = <0x1b>; /* 7bit i2c address */
};
};
};/* end of panel */

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,141 @@
/*
* Amlogic partition set for normal
*
* Copyright (c) 2017-2017 Amlogic Ltd
*
* This file is licensed under a dual GPLv2 or BSD license.
*
*/
/ {
partitions: partitions{
parts = <14>;
part-0 = <&logo>;
part-1 = <&recovery>;
part-2 = <&misc>;
part-3 = <&dtbo>;
part-4 = <&cri_data>;
part-5 = <&param>;
part-6 = <&boot>;
part-7 = <&rsv>;
part-8 = <&tee>;
part-9 = <&vendor>;
part-10 = <&odm>;
part-11 = <&system>;
part-12 = <&cache>;
part-13 = <&data>;
logo:logo{
pname = "logo";
size = <0x0 0x800000>;
mask = <1>;
};
recovery:recovery{
pname = "recovery";
size = <0x0 0x1800000>;
mask = <1>;
};
misc:misc{
pname = "misc";
size = <0x0 0x800000>;
mask = <1>;
};
dtbo:dtbo{
pname = "dtbo";
size = <0x0 0x800000>;
mask = <1>;
};
cri_data:cri_data
{
pname = "cri_data";
size = <0x0 0x800000>;
mask = <2>;
};
rsv:rsv{
pname = "rsv";
size = <0x0 0x1000000>;
mask = <1>;
};
param:param{
pname = "param";
size = <0x0 0x1000000>;
mask = <2>;
};
boot:boot
{
pname = "boot";
size = <0x0 0x1000000>;
mask = <1>;
};
tee:tee{
pname = "tee";
size = <0x0 0x2000000>;
mask = <1>;
};
vendor:vendor
{
pname = "vendor";
size = <0x0 0x10000000>;
mask = <1>;
};
odm:odm
{
pname = "odm";
size = <0x0 0x9000000>;
mask = <1>;
};
system:system
{
pname = "system";
size = <0x0 0x67000000>;
mask = <1>;
};
cache:cache
{
pname = "cache";
size = <0x0 0x32000000>;
mask = <2>;
};
data:data
{
pname = "data";
size = <0xffffffff 0xffffffff>;
mask = <4>;
};
};
firmware {
android {
compatible = "android,firmware";
vbmeta {
compatible = "android,vbmeta";
parts = "boot,system,vendor";
by_name_prefix="/dev/block";
};
fstab {
compatible = "android,fstab";
system {
compatible = "android,system";
dev = "/dev/block/system";
type = "ext4";
mnt_flags = "ro,barrier=1,inode_readahead_blks=8";
fsmgr_flags = "wait";
};
vendor {
compatible = "android,vendor";
dev = "/dev/block/vendor";
type = "ext4";
mnt_flags = "ro,barrier=1,inode_readahead_blks=8";
fsmgr_flags = "wait";
};
odm {
compatible = "android,odm";
dev = "/dev/block/odm";
type = "ext4";
mnt_flags = "ro,barrier=1,inode_readahead_blks=8";
fsmgr_flags = "wait";
};
};
};
};
};/* end of / */

View File

@@ -0,0 +1,141 @@
/*
* Amlogic partition set for normal
*
* Copyright (c) 2017-2017 Amlogic Ltd
*
* This file is licensed under a dual GPLv2 or BSD license.
*
*/
/ {
partitions: partitions{
parts = <14>;
part-0 = <&logo>;
part-1 = <&recovery>;
part-2 = <&misc>;
part-3 = <&dto>;
part-4 = <&cri_data>;
part-5 = <&param>;
part-6 = <&boot>;
part-7 = <&rsv>;
part-8 = <&tee>;
part-9 = <&vendor>;
part-10 = <&odm>;
part-11 = <&system>;
part-12 = <&cache>;
part-13 = <&data>;
logo:logo{
pname = "logo";
size = <0x0 0x800000>;
mask = <1>;
};
recovery:recovery{
pname = "recovery";
size = <0x0 0x1800000>;
mask = <1>;
};
misc:misc{
pname = "misc";
size = <0x0 0x800000>;
mask = <1>;
};
dto:dto{
pname = "dto";
size = <0x0 0x800000>;
mask = <1>;
};
cri_data:cri_data
{
pname = "cri_data";
size = <0x0 0x800000>;
mask = <2>;
};
rsv:rsv{
pname = "rsv";
size = <0x0 0x1000000>;
mask = <1>;
};
param:param{
pname = "param";
size = <0x0 0x1000000>;
mask = <2>;
};
boot:boot
{
pname = "boot";
size = <0x0 0x1000000>;
mask = <1>;
};
tee:tee{
pname = "tee";
size = <0x0 0x2000000>;
mask = <1>;
};
vendor:vendor
{
pname = "vendor";
size = <0x0 0x10000000>;
mask = <1>;
};
odm:odm
{
pname = "odm";
size = <0x0 0x10000000>;
mask = <1>;
};
system:system
{
pname = "system";
size = <0x0 0x46000000>;
mask = <1>;
};
cache:cache
{
pname = "cache";
size = <0x0 0x25000000>;
mask = <2>;
};
data:data
{
pname = "data";
size = <0xffffffff 0xffffffff>;
mask = <4>;
};
};
firmware {
android {
compatible = "android,firmware";
vbmeta {
compatible = "android,vbmeta";
parts = "boot,system,vendor";
by_name_prefix="/dev/block";
};
fstab {
compatible = "android,fstab";
system {
compatible = "android,system";
dev = "/dev/block/system";
type = "ext4";
mnt_flags = "ro,barrier=1,inode_readahead_blks=8";
fsmgr_flags = "wait";
};
vendor {
compatible = "android,vendor";
dev = "/dev/block/vendor";
type = "ext4";
mnt_flags = "ro,barrier=1,inode_readahead_blks=8";
fsmgr_flags = "wait";
};
odm {
compatible = "android,odm";
dev = "/dev/block/odm";
type = "ext4";
mnt_flags = "ro,barrier=1,inode_readahead_blks=8";
fsmgr_flags = "wait";
};
};
};
};
};/* end of / */

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff