blob: 4c12955cb565de0551caa5b729932ac54837e927 [file] [log] [blame]
/*
* arch/arm/boot/dts/amlogic/meson8b.dtsi
*
* 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.
*
*/
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/meson8b-clkc.h>
#include <dt-bindings/gpio/meson8b-gpio.h>
#include <dt-bindings/reset/amlogic,meson8b-reset.h>
#include <dt-bindings/iio/adc/amlogic-saradc.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/input/meson_rc.h>
#include <dt-bindings/pwm/meson.h>
#include <dt-bindings/pwm/pwm.h>
#include "skeleton.dtsi"
/ {
interrupt-parent = <&gic>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
enable-method = "amlogic,meson8b-smp";
cpu@200 {
device_type = "cpu";
compatible = "arm,cortex-a5";
next-level-cache = <&L2>;
reg = <0x200>;
timer=<&timer_a>;
};
cpu@201 {
device_type = "cpu";
compatible = "arm,cortex-a5";
next-level-cache = <&L2>;
reg = <0x1>;
timer=<&timer_b>;
};
cpu@202 {
device_type = "cpu";
compatible = "arm,cortex-a5";
next-level-cache = <&L2>;
reg = <0x2>;
timer=<&timer_c>;
};
cpu@203 {
device_type = "cpu";
compatible = "arm,cortex-a5";
next-level-cache = <&L2>;
reg = <0x3>;
timer=<&timer_d>;
};
};
i2c_AO: i2c@0100 {
compatible = "amlogic,meson8b-i2c";
status = "disabled";
reg = <0xc8100500 0x20>;
interrupts = <GIC_SPI 124 IRQ_TYPE_EDGE_RISING>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clkc CLKID_CLK81>;
clock-names = "clk_i2c";
};
soc {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;
cpucfg@c4300000 {
compatible = "amlogic,meson8b-cpuconfig";
reg = <0xc4300000 0x1000>,
<0xd9000000 0x20000>;
};
L2: l2-cache-controller@c4200000 {
compatible = "arm,pl310-cache";
reg = <0xc4200000 0x1000>;
arm,data-latency = <3 3 3>;
arm,tag-latency = <2 2 2>;
arm,filter-ranges = <0x100000 0xc0000000>;
cache-unified;
cache-level = <2>;
};
gic: interrupt-controller@c4301000 {
compatible = "arm,cortex-a9-gic";
reg = <0xc4301000 0x1000>,
<0xc4300100 0x0100>;
interrupt-controller;
#interrupt-cells = <3>;
};
reset: reset-controller@c1104404 {
compatible = "amlogic,meson8b-reset";
reg = <0xc1104404 0x20>;
#reset-cells = <1>;
};
wdt: watchdog@c1109900 {
compatible = "amlogic,meson8b-wdt";
reg = <0xc1109900 0x8>;
interrupts = <0 0 1>;
};
jtag {
compatible = "amlogic, jtag";
status = "okay";
reg = <0xda004004 0x4>;
select = "disable"; /* disable/apao/apee */
pinctrl-names="jtag_apao_pins", "jtag_apee_pins";
pinctrl-0=<&jtag_apao_pins>;
pinctrl-1=<&jtag_apee_pins>;
};
securitykey {
compatible = "aml, securitykey";
storage_free = <0x82000029>;
storage_query = <0x82000060>;
storage_read = <0x82000061>;
storage_write = <0x82000062>;
storage_tell = <0x82000063>;
storage_verify = <0x82000064>;
storage_status = <0x82000065>;
storage_list = <0x82000067>;
storage_remove = <0x82000068>;
storage_notify_ex = <0x82000069>;
storage_in_func = <0x82000023>;
storage_out_func = <0x82000024>;
storage_block_func = <0x82000025>;
storage_size_func = <0x82000027>;
storage_set_enctype = <0x8200006A>;
storage_get_enctype = <0x8200006B>;
storage_version = <0x8200006C>;
storage_set_type = <0x8200006D>;
};
cpu_iomap {
compatible = "amlogic, iomap";
#address-cells = <1>;
#size-cells = <1>;
ranges;
io_cbus_base {
reg = <0xc1100000 0x100000>;
};
io_apb_base {
reg = <0xd0050000 0x50000>;
};
io_aobus_base {
reg = <0xc8100000 0x100000>;
};
io_vapb_base {
reg = <0xd0100000 0x100000>;
};
};
cpu_version{
reg = <0xc1107d4c 4>,
<0xc11081a8 4>,
<0xd9040000 4>;
};
timer{
compatible = "arm, meson-timer";
#address-cells = <1>;
#size-cells = <1>;
ranges;
reg= <0xc1109940 4 0xc1109954 4>;
timer_a:timer-a{
timer_name="MESON TIMER-A";
clockevent-rating=<300>;
clockevent-shift=<20>;
clockevent-features=<0x03>;
interrupts = <0 10 0>;
bit_enable=<16>;
bit_mode=<12>;
bit_resolution=<0>;
reg= <0xc1109944 4>;
};
timer_b:timer-b{
timer_name="MESON TIMER-B";
clockevent-rating=<300>;
clockevent-shift=<20>;
clockevent-features=<0x03>;
interrupts = <0 11 0>;
bit_enable=<17>;
bit_mode=<13>;
bit_resolution=<2>;
reg=<0xc1109948 4>;
};
timer_c:timer-c{
timer_name="MESON TIMER-C";
clockevent-rating=<300>;
clockevent-shift=<20>;
clockevent-features=<0x03>;
interrupts = <0 6 0>;
bit_enable=<18>;
bit_mode=<14>;
bit_resolution=<4>;
reg=<0xc110994c 4>;
};
timer_d:timer-d{
timer_name="MESON TIMER-D";
clockevent-rating=<300>;
clockevent-shift=<20>;
clockevent-features=<0x03>;
interrupts = <0 29 0>;
bit_enable=<19>;
bit_mode=<15>;
bit_resolution=<6>;
reg=<0xc1109950 4>;
};
};
uart_AO: serial@c81004c0 {
compatible = "amlogic, meson-uart";
reg = <0xc81004c0 0x18>;
interrupts = <0 90 1>;
clocks = <&clkc CLKID_XTAL>;
clock-names = "clk_uart";
status = "disabled";
};
uart_A: serial@c11084c0 {
compatible = "amlogic, meson-uart";
reg = <0xc11084c0 0x18>;
interrupts = <0 26 1>;
clocks = <&clkc CLKID_UART0>;
clock-names = "clk_uart";
status = "disabled";
};
uart_B: serial@c11084dc {
compatible = "amlogic, meson-uart";
reg = <0xc11084dc 0x18>;
interrupts = <0 75 1>;
clocks = <&clkc CLKID_UART1>;
clock-names = "clk_uart";
status = "disabled";
};
uart_C: serial@c1108700 {
compatible = "amlogic, meson-uart";
reg = <0xc1108700 0x18>;
interrupts = <0 93 1>;
clocks = <&clkc CLKID_UART2>;
clock-names = "clk_uart";
status = "disabled";
};
clkc: clock-controller@c1104000 {
#clock-cells = <1>;
compatible = "amlogic,meson8b-clkc";
reg = <0xc1108000 0x4>, <0xc1104000 0x460>;
};
pwm_ab: pwm@8550 {
compatible = "amlogic,meson8b-pwm";
reg = <0xc1108550 0x10>;
#pwm-cells = <3>;
status = "disabled";
};
pwm_cd: pwm@8650 {
compatible = "amlogic,meson8b-pwm";
reg = <0xc1108650 0x10>;
#pwm-cells = <3>;
status = "disabled";
};
pwm_ef: pwm@86c0 {
compatible = "amlogic,meson8b-pwm";
reg = <0xc11086c0 0x10>;
#pwm-cells = <3>;
status = "disabled";
};
/*i2c-A*/
i2c0: i2c@8500 {
compatible = "amlogic,meson8b-i2c";
status = "disabled";
reg = <0xc1108500 0x20>;
interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 47 IRQ_TYPE_EDGE_RISING>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clkc CLKID_CLK81>;
clock-names = "clk_i2c";
};
/*i2c-B*/
i2c1: i2c@87c0 {
compatible = "amlogic,meson8b-i2c";
status = "disabled";
reg = <0xc11087c0 0x20>;
interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 48 IRQ_TYPE_EDGE_RISING>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clkc CLKID_CLK81>;
clock-names = "clk_i2c";
};
/*i2c-C*/
i2c2: i2c@87e0 {
compatible = "amlogic,meson8b-i2c";
status = "disabled";
reg = <0xc11087e0 0x20>;
interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 49 IRQ_TYPE_EDGE_RISING>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clkc CLKID_CLK81>;
clock-names = "clk_i2c";
};
/*i2c-D*/
i2c3: i2c@8d20 {
compatible = "amlogic,meson8b-i2c";
status = "disabled";
reg = <0xc1108d20 0x20>;
interrupts = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clkc CLKID_CLK81>;
clock-names = "clk_i2c";
};
gpio_intc: interrupt-controller@9880 {
compatible = "amlogic,meson-gpio-intc",
"amlogic,meson8b-gpio-intc";
reg = <0xc1109880 0x10>;
interrupt-controller;
#interrupt-cells = <2>;
amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
status = "okay";
};
pinctrl_cbus: pinctrl@c1109880 {
compatible = "amlogic,meson8b-cbus-pinctrl";
#address-cells = <1>;
#size-cells = <1>;
ranges;
gpio: banks@c11080b0 {
reg = <0xc11080b0 0x28>,
<0xc11080e8 0x18>,
<0xc1108120 0x18>,
<0xc1108030 0x38>;
reg-names = "mux",
"pull",
"pull-enable",
"gpio";
gpio-controller;
#gpio-cells = <2>;
};
a_i2c_master:a_i2c {
mux {
groups = "i2c_sda_a","i2c_sck_a";
function = "i2c_a";
};
};
b_i2c_master:b_i2c {
mux {
groups = "i2c_sda_b0","i2c_sck_b0";
function = "i2c_b";
};
};
b_i2c_master_pin1:b_i2c_pin1 {
mux {
groups = "i2c_sda_b1","i2c_sck_b1";
function = "i2c_b";
};
};
c_i2c_master:c_i2c {
mux {
groups = "i2c_sda_c0","i2c_sck_c0";
function = "i2c_c";
};
};
c_i2c_master_pin1:c_i2c_pin1{
mux {
groups = "i2c_sda_c1","i2c_sck_c1";
function = "i2c_c";
};
};
d_i2c_master:d_i2c {
mux {
groups = "i2c_sda_d0","i2c_sck_d0";
function = "i2c_d";
};
};
d_i2c_master_pin1:d_i2c_pin1 {
mux {
groups = "i2c_sda_d1","i2c_sck_d1";
function = "i2c_d";
};
};
emmc_clk_cmd_pins:emmc_clk_cmd_pins {
mux {
groups = "sd_cmd_c",
"sd_clk_c";
function = "sd_c";
input-enable;
bias-pull-up;
};
};
emmc_all_pins:emmc_all_pins {
mux {
groups = "sd_d0_c",
"sd_d1_c",
"sd_d2_c",
"sd_d3_c",
"sd_cmd_c",
"sd_clk_c";
function = "sd_c";
input-enable;
bias-pull-up;
};
};
sd_clk_cmd_pins:sd_clk_cmd_pins{
mux {
groups = "sd_cmd_b",
"sd_clk_b";
function = "sd_b";
input-enable;
bias-pull-up;
};
};
sd_1bit_pins:sd_1bit_pins{
mux {
groups = "sd_d1_b",
"sd_d2_b",
"sd_d3_b",
"sd_cmd_b",
"sd_clk_b";
function = "sd_b";
input-enable;
bias-pull-up;
};
};
sd_all_pins:sd_all_pins{
mux {
groups = "sd_d0_b",
"sd_d1_b",
"sd_d2_b",
"sd_d3_b",
"sd_cmd_b",
"sd_clk_b";
function = "sd_b";
input-enable;
bias-pull-up;
};
};
sdio_clk_cmd_pins:sdio_clk_cmd_pins {
mux {
groups = "sd_clk_a",
"sd_cmd_a";
function = "sd_a";
input-enable;
bias-pull-up;
};
};
sdio_all_pins:sdio_all_pins {
mux {
groups = "sd_d0_a",
"sd_d1_a",
"sd_d2_a",
"sd_d3_a",
"sd_clk_a",
"sd_cmd_a";
function = "sd_a";
input-enable;
bias-pull-up;
};
};
sdhc_emmc_clk_cmd_pins:sdhc_emmc_clk_cmd_pins {
mux {
groups = "sdxc_clk_c",
"sdxc_cmd_c";
function = "sdxc_c";
input-enable;
bias-pull-up;
};
};
sdhc_emmc_all_pins:sdhc_emmc_all_pins {
mux {
groups = "sdxc_d0_c",
"sdxc_d13_c",
"sdxc_d47_c",
"sdxc_clk_c",
"sdxc_cmd_c";
function = "sdxc_c";
input-enable;
bias-pull-up;
};
};
sdhc_sd_clk_cmd_pins:sdhc_sd_clk_cmd_pins {
mux {
groups = "sdxc_clk_b",
"sdxc_cmd_b";
function = "sdxc_b";
input-enable;
bias-pull-up;
};
};
sdhc_sd_all_pins:sdhc_sd_all_pins {
mux {
groups = "sdxc_d0_b",
"sdxc_d13_b",
"sdxc_clk_b",
"sdxc_cmd_b";
function = "sdxc_b";
input-enable;
bias-pull-up;
};
};
sdhc_sdio_clk_cmd_pins:sdhc_sdio_clk_cmd_pins {
mux {
groups = "sdxc_clk_a",
"sdxc_cmd_a";
function = "sdxc_a";
input-enable;
bias-pull-up;
};
};
sdhc_sdio_all_pins:sdhc_sdio_all_pins {
mux {
groups = "sdxc_d0_1_a",
"sdxc_d13_1_a",
"sdxc_clk_a",
"sdxc_cmd_a";
function = "sdxc_a";
input-enable;
bias-pull-up;
};
};
uart_a_pins: uart_a_pins {
mux {
groups = "uart_tx_a", "uart_rx_a",
"uart_cts_a", "uart_rts_a";
function = "uart_a";
};
};
uart_b0_pins: uart_b0_pins {
mux {
groups = "uart_tx_b0", "uart_rx_b0",
"uart_cts_b0", "uart_rts_b0";
function = "uart_b";
};
};
audio_pcm_pins:audio_pcm {
mux {
groups = "pcm_out_a",
"pcm_in_a",
"pcm_fs_a",
"pcm_clk_a";
function = "pcm_a";
};
};
all_nand_pins:all_nand_pins {
mux {
groups = "nand_io",
"nand_io_rb0",
"nand_ale",
"nand_cle",
"nand_wen_clk",
"nand_ren_clk",
"nand_io_ce0",
"nand_io_ce1";
function = "nand";
input-enable;
};
};
nand_cs_pins:nand_cs_pins {
mux {
groups = "nand_io_ce0",
"nand_io_ce1";
function = "nand";
input-enable;
bias-pull-up;
};
};
jtag_apee_pins:jtag_apee_pin {
mux {
groups = "CARD_0",
"CARD_1",
"CARD_2",
"CARD_3";
function = "gpio_periphs";
};
};
};
pinctrl_aobus: pinctrl@c8100084 {
compatible = "amlogic,meson8b-aobus-pinctrl";
#address-cells = <1>;
#size-cells = <1>;
ranges;
gpio_ao: ao-bank@c1108030 {
reg = <0xc8100014 0x4>,
<0xc810002c 0x4>,
<0xc8100024 0x8>;
reg-names = "mux", "pull", "gpio";
gpio-controller;
#gpio-cells = <2>;
};
remote_pins:remote_pin {
mux {
groups = "remote_input";
function = "remote";
};
};
uart_ao_a_pins: uart_ao_a {
mux {
groups = "uart_tx_ao_a", "uart_rx_ao_a";
function = "uart_ao";
};
};
ao_i2c_master:ao_i2c{
mux {
groups = "i2c_mst_sck_ao",
"i2c_mst_sda_ao";
function = "i2c_mst_ao";
};
};
hdmi_cec_1: hdmi_cec_1 {
mux {
groups = "hdmi_cec_1";
function = "hdmi_cec";
};
};
audio_i2s_pins:audio_i2s {
mux {
groups = "i2s_am_clk_out",
"i2s_ao_clk_out",
"i2s_lr_clk_out",
"i2s_in_ch01",
"i2s_out_01";
function = "i2s";
};
};
audio_spdif_pins:audio_spdif {
mux {
groups = "spdif_out_2";
function = "spdif_2";
};
};
jtag_apao_pins:jtag_apao_pin {
mux {
groups = "GPIOAO_8",
"GPIOAO_9",
"GPIOAO_10",
"GPIOAO_11";
function = "gpio_aobus";
};
};
};
dwc2_b {
compatible = "amlogic,dwc2";
device_name = "dwc2_b";
reg = <0xC90C0000 0x40000>;
interrupts = <0 31 4>;
status = "okay";
pl-periph-id = <1>; /** lm name */
clock-src = "usb1"; /** clock src */
port-id = <1>; /** ref to mach/usb.h */
port-type = <1>; /** 0: otg, 1: host, 2: slave */
port-speed = <0>; /** 0: default, 1: high, 2: full */
port-config = <0>; /** 0: default */
port-dma = <0>; /** 0: default, 1: single, 2: incr, 3: incr4, 4: incr8, 5: incr16, 6: disable*/
port-id-mode = <1>; /** 0: hardware, 1: sw_host, 2: sw_slave*/
phy-reg = <0xc1108820>;
phy-reg-size = <0x20>;
usb-fifo = <1024>;
host-only-core = <1>;
pmu-apply-power = <1>;
cpu-type = "meson8";
clocks = <&clkc CLKID_USB
&clkc CLKID_USB1_DDR_BRIDGE
&clkc CLKID_USB1>;
clock-names = "usb_general",
"usb1_to_ddr",
"usb1";
};
dwc2_a {
compatible = "amlogic,dwc2";
device_name = "dwc2_a";
reg = <0xC9040000 0x40000>;
interrupts = <0 30 4>;
status = "okay";
pl-periph-id = <0>; /** lm name */
clock-src = "usb0"; /** clock src */
port-id = <0>; /** ref to mach/usb.h */
port-type = <0>; /** 0: otg, 1: host, 2: slave */
port-speed = <0>; /** 0: default, high, 1: full */
port-config = <0>; /** 0: default */
port-dma = <0>; /** 0: default, 1: single, 2: incr, 3: incr4, 4: incr8, 5: incr16, 6: disable*/
port-id-mode = <0>; /** 0: hardware, 1: sw_host, 2: sw_slave*/
gpio-vbus-power = "GPIODV_24";
gpios = <&gpio GPIODV_24 0>;
gpio-work-mask = <1>; /**0: work on pulldown,1:work on pullup*/
phy-reg = <0xc1108800>;
phy-reg-size = <0x20>;
usb-fifo = <1024>;
cpu-type = "meson8";
clocks = <&clkc CLKID_USB
&clkc CLKID_USB0_DDR_BRIDGE
&clkc CLKID_USB0>;
clock-names = "usb_general",
"usb0_to_ddr",
"usb0";
};
efuse: efuse{
compatible = "amlogic, efuse";
reg = <0xda000000 0x14>;
clocks = <&clkc CLKID_EFUSE>;
clock-names = "efuse_clk";
status = "okay";
};
aml_tdes {
compatible = "amlogic,des,tdes";
dev_name = "aml_tdes_blkmv";
status = "okay";
interrupts = <0 36 1>;
clocks = <&clkc CLKID_BLKMV>;
clock-names = "blkmv";
};
aml_aes {
compatible = "amlogic,aes";
dev_name = "aml_aes_blkmv";
status = "okay";
interrupts = <0 36 1>;
clocks = <&clkc CLKID_BLKMV>;
clock-names = "blkmv";
};
saradc: saradc {
compatible = "amlogic,meson-m8b-saradc";
status = "okay";
#io-channel-cells = <1>;
clocks = <&clkc CLKID_XTAL>, <&clkc CLKID_SAR_ADC>;
clock-names = "xtal", "clk81_gate";
interrupts = <0 73 1>;
reg = <0xc1108680 0x30>;
};
remote:rc@c8100580 {
compatible = "amlogic, aml_remote";
dev_name = "meson-remote";
reg = <0xc8100580 0x44>, /*Multi-format IR controller*/
<0xc8100480 0x20>; /*Legacy IR controller*/
status = "okay";
protocol = <REMOTE_TYPE_NEC>;
interrupts = <0 15 1>;
pinctrl-names = "default";
pinctrl-0 = <&remote_pins>;
map = <&custom_maps>;
max_frame_time = <200>; /*set software decoder max frame time*/
};
custom_maps:custom_maps {
mapnum = <3>;
map0 = <&map_0>;
map1 = <&map_1>;
map2 = <&map_2>;
map_0: map_0{
mapname = "amlogic-remote-1";
customcode = <0xfb04>;
release_delay = <80>;
size = <50>; /*keymap size*/
keymap = <REMOTE_KEY(0x47, KEY_0)
REMOTE_KEY(0x13, KEY_1)
REMOTE_KEY(0x10, KEY_2)
REMOTE_KEY(0x11, KEY_3)
REMOTE_KEY(0x0F, KEY_4)
REMOTE_KEY(0x0C, KEY_5)
REMOTE_KEY(0x0D, KEY_6)
REMOTE_KEY(0x0B, KEY_7)
REMOTE_KEY(0x08, KEY_8)
REMOTE_KEY(0x09, KEY_9)
REMOTE_KEY(0x5C, KEY_RIGHTCTRL)
REMOTE_KEY(0x51, KEY_F3)
REMOTE_KEY(0x50, KEY_F4)
REMOTE_KEY(0x40, KEY_F5)
REMOTE_KEY(0x4d, KEY_F6)
REMOTE_KEY(0x43, KEY_F7)
REMOTE_KEY(0x17, KEY_F8)
REMOTE_KEY(0x00, KEY_F9)
REMOTE_KEY(0x01, KEY_F10)
REMOTE_KEY(0x16, KEY_F11)
REMOTE_KEY(0x49, KEY_BACKSPACE)
REMOTE_KEY(0x06, KEY_PROPS)
REMOTE_KEY(0x14, KEY_UNDO)
REMOTE_KEY(0x44, KEY_UP)
REMOTE_KEY(0x1D, KEY_DOWN)
REMOTE_KEY(0x1C, KEY_LEFT)
REMOTE_KEY(0x48, KEY_RIGHT)
REMOTE_KEY(0x53, KEY_LEFTMETA)
REMOTE_KEY(0x45, KEY_PAGEUP)
REMOTE_KEY(0x19, KEY_PAGEDOWN)
REMOTE_KEY(0x52, KEY_PAUSE)
REMOTE_KEY(0x05, KEY_HANGEUL)
REMOTE_KEY(0x59, KEY_HANJA)
REMOTE_KEY(0x1b, KEY_SCALE)
REMOTE_KEY(0x04, KEY_KPCOMMA)
REMOTE_KEY(0x1A, KEY_POWER)
REMOTE_KEY(0x0A, KEY_TAB)
REMOTE_KEY(0x0e, KEY_MUTE)
REMOTE_KEY(0x1F, KEY_HOME)
REMOTE_KEY(0x1e, KEY_FRONT)
REMOTE_KEY(0x07, KEY_COPY)
REMOTE_KEY(0x12, KEY_OPEN)
REMOTE_KEY(0x54, KEY_PASTE)
REMOTE_KEY(0x02, KEY_FIND)
REMOTE_KEY(0x4f, KEY_A)
REMOTE_KEY(0x42, KEY_B)
REMOTE_KEY(0x5d, KEY_C)
REMOTE_KEY(0x4c, KEY_D)
REMOTE_KEY(0x58, KEY_CUT)
REMOTE_KEY(0x55, KEY_CALC)>;
};
map_1: map_1{
mapname = "amlogic-remote-2";
customcode = <0xfe01>;
release_delay = <80>;
size = <53>;
keymap = <REMOTE_KEY(0x01, KEY_1)
REMOTE_KEY(0x02, KEY_2)
REMOTE_KEY(0x03, KEY_3)
REMOTE_KEY(0x04, KEY_4)
REMOTE_KEY(0x05, KEY_5)
REMOTE_KEY(0x06, KEY_6)
REMOTE_KEY(0x07, KEY_7)
REMOTE_KEY(0x08, KEY_8)
REMOTE_KEY(0x09, KEY_9)
REMOTE_KEY(0x0a, KEY_0)
REMOTE_KEY(0x1F, KEY_FN_F1)
REMOTE_KEY(0x15, KEY_MENU)
REMOTE_KEY(0x16, KEY_TAB)
REMOTE_KEY(0x0c, KEY_CHANNELUP)
REMOTE_KEY(0x0d, KEY_CHANNELDOWN)
REMOTE_KEY(0x0e, KEY_VOLUMEUP)
REMOTE_KEY(0x0f, KEY_VOLUMEDOWN)
REMOTE_KEY(0x11, KEY_HOME)
REMOTE_KEY(0x1c, KEY_RIGHT)
REMOTE_KEY(0x1b, KEY_LEFT)
REMOTE_KEY(0x19, KEY_UP)
REMOTE_KEY(0x1a, KEY_DOWN)
REMOTE_KEY(0x1d, KEY_ENTER)
REMOTE_KEY(0x17, KEY_MUTE)
REMOTE_KEY(0x49, KEY_FINANCE)
REMOTE_KEY(0x43, KEY_BACK)
REMOTE_KEY(0x12, KEY_FN_F4)
REMOTE_KEY(0x14, KEY_FN_F5)
REMOTE_KEY(0x18, KEY_FN_F6)
REMOTE_KEY(0x59, KEY_INFO)
REMOTE_KEY(0x5a, KEY_STOPCD)
REMOTE_KEY(0x10, KEY_POWER)
REMOTE_KEY(0x42, KEY_PREVIOUSSONG)
REMOTE_KEY(0x44, KEY_NEXTSONG)
REMOTE_KEY(0x1e, KEY_REWIND)
REMOTE_KEY(0x4b, KEY_FASTFORWARD)
REMOTE_KEY(0x58, KEY_PLAYPAUSE)
REMOTE_KEY(0x46, KEY_PROPS)
REMOTE_KEY(0x40, KEY_UNDO)
REMOTE_KEY(0x38, KEY_SCROLLLOCK)
REMOTE_KEY(0x57, KEY_FN)
REMOTE_KEY(0x5b, KEY_FN_ESC)
REMOTE_KEY(0x54, KEY_RED)
REMOTE_KEY(0x4c, KEY_GREEN)
REMOTE_KEY(0x4e, KEY_YELLOW)
REMOTE_KEY(0x55, KEY_BLUE)
REMOTE_KEY(0x53, KEY_BLUETOOTH)
REMOTE_KEY(0x52, KEY_WLAN)
REMOTE_KEY(0x39, KEY_CAMERA)
REMOTE_KEY(0x41, KEY_SOUND)
REMOTE_KEY(0x0b, KEY_QUESTION)
REMOTE_KEY(0x00, KEY_CHAT)
REMOTE_KEY(0x13, KEY_SEARCH)>;
};
map_2: map_2{
mapname = "amlogic-remote-3";
customcode = <0xbd02>;
release_delay = <80>;
size = <17>;
keymap = <REMOTE_KEY(0xca,103)
REMOTE_KEY(0xd2,108)
REMOTE_KEY(0x99,105)
REMOTE_KEY(0xc1,106)
REMOTE_KEY(0xce,97)
REMOTE_KEY(0x45,116)
REMOTE_KEY(0xc5,133)
REMOTE_KEY(0x80,113)
REMOTE_KEY(0xd0,15)
REMOTE_KEY(0xd6,125)
REMOTE_KEY(0x95,102)
REMOTE_KEY(0xdd,104)
REMOTE_KEY(0x8c,109)
REMOTE_KEY(0x89,131)
REMOTE_KEY(0x9c,130)
REMOTE_KEY(0x9a,120)
REMOTE_KEY(0xcd,121)>;
};
};
meson_clk_msr{
compatible = "amlogic, m8b_measure";
reg = <0xc110875c 0x4>,
<0xc1108764 0x4>;
};
aml_reboot{
compatible = "aml, reboot_m8b";
status = "okay";
};
meson_suspend:pm{
compatible = "amlogic, pm-m8b";
device_name = "aml_pm";
};
}; /* end of soc*/
ddr_bandwidth {
compatible = "amlogic, ddr-bandwidth";
status = "okay";
reg = <0x0 0xc8006000 0x0 0x100
0x0 0xc8000400 0x0 0x100>;
interrupts = <0 52 1>;
interrupt-names = "ddr_bandwidth";
};
}; /* end of / */