/*
 * arch/arm/boot/dts/amlogic/mesonaxg.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/amlogic,axg-clkc.h>
#include <dt-bindings/clock/amlogic,axg-audio-clk.h>
#include <dt-bindings/iio/adc/amlogic-saradc.h>
#include <dt-bindings/gpio/meson-axg-gpio.h>
#include <dt-bindings/pwm/pwm.h>
#include <dt-bindings/pwm/meson.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/input/meson_rc.h>
#include <dt-bindings/phy/phy-amlogic-pcie.h>

/ {
	cpus:cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu-map {
			cluster0:cluster0 {
				core0 {
					cpu = <&CPU0>;
				};
				core1 {
					cpu = <&CPU1>;
				};
				core2 {
					cpu = <&CPU2>;
				};
				core3 {
					cpu = <&CPU3>;
				};
			};
		};
		CPU0:cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-a53","arm,armv8";
			reg = <0x0>;
			enable-method = "psci";
			clocks = <&scpi_dvfs 0>;
			clock-names = "cpu-cluster.0";
			cpu-idle-states = <&CPU_SLEEP_0>;
		};

		CPU1:cpu@1 {
			device_type = "cpu";
			compatible = "arm,cortex-a53","arm,armv8";
			reg = <0x1>;
			enable-method = "psci";
			clocks = <&scpi_dvfs 0>;
			clock-names = "cpu-cluster.0";
			cpu-idle-states = <&CPU_SLEEP_0>;
		};
		CPU2:cpu@2 {
			device_type = "cpu";
			compatible = "arm,cortex-a53","arm,armv8";
			reg = <0x2>;
			enable-method = "psci";
			clocks = <&scpi_dvfs 0>;
			clock-names = "cpu-cluster.0";
			cpu-idle-states = <&CPU_SLEEP_0>;
		};

		CPU3:cpu@3 {
			device_type = "cpu";
			compatible = "arm,cortex-a53","arm,armv8";
			reg = <0x3>;
			enable-method = "psci";
			clocks = <&scpi_dvfs 0>;
			clock-names = "cpu-cluster.0";
			cpu-idle-states = <&CPU_SLEEP_0>;
		};

		idle-states { // mjm-TBD: double check idle-state modifications
			entry-method = "arm,psci-0.2";
			CPU_SLEEP_0: cpu-sleep-0 {
					compatible = "arm,idle-state";
					arm,psci-suspend-param = <0x0010000>;
					local-timer-stop;
					entry-latency-us = <5000>;
					exit-latency-us = <5000>;
					min-residency-us = <15000>;
			};
		};
	};

	timer {
		compatible = "arm,armv7-timer";
		interrupts = <GIC_PPI 13 0xff08>,
				<GIC_PPI 14 0xff08>,
				<GIC_PPI 11 0xff08>,
				<GIC_PPI 10 0xff08>;
	};
	timer_bc {
		compatible = "arm, meson-bc-timer";
		reg=   <0xffd0f190 0x4 0xffd0f194 0x4>;
		timer_name = "Meson TimerF";
		clockevent-rating=<300>;
		clockevent-shift=<20>;
		clockevent-features=<0x23>;
		interrupts = <0 60 1>;
		bit_enable=<16>;
		bit_mode=<12>;
		bit_resolution=<0>;
	};

	arm_pmu {
		compatible = "arm,cortex-a15-pmu";
		/* clusterb-enabled; */
		interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
		reg = <0xff634680 0x4>;
		cpumasks = <0xf>;
		/* default 10ms */
		relax-timer-ns = <10000000>;
		/* default 10000us */
		max-wait-cnt = <10000>;
	};

	gic: interrupt-controller@2c001000 {
		compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
		#interrupt-cells = <3>;
		#address-cells = <0>;
		interrupt-controller;
		reg = <0xffc01000 0x1000>,
		      <0xffc02000 0x0100>;
		interrupts = <GIC_PPI 9 0xf04>;
	};

	psci {
		compatible = "arm,psci-0.2";
		method = "smc";
	};

	meson_suspend:pm {
		compatible = "amlogic, pm";
		device_name = "aml_pm";
		status = "okay";
		reg = <0xff8000a8 0x4>,
			<0xff80023c 0x4>;
	};


	secmon {
		compatible = "amlogic, secmon";
		memory-region = <&secmon_reserved>;
		in_base_func = <0x82000020>;
		out_base_func = <0x82000021>;
		reserve_mem_size = <0x00300000>;
	};

	securitykey {
		compatible = "aml, securitykey";
		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_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>;
	};

	rng {
		compatible = "amlogic,meson-rng";
		status = "okay";
		#address-cells = <2>;
		#size-cells = <2>;
		reg = <0xff634018 0x4>;
		quality = /bits/ 16 <1000>;
	};

	mailbox: mhu@c883c400 {
		compatible = "amlogic, meson_mhu";
		reg = <0xff63c400 0x4c>,   /* MHU registers */
		      <0xfffd3000 0x800>;   /* Payload area */
		interrupts = <0 209 1>,   /* low priority interrupt */
			     <0 210 1>;   /* high priority interrupt */
		#mbox-cells = <1>;
		mbox-names = "cpu_to_scp_low", "cpu_to_scp_high";
		mboxes = <&mailbox 0 &mailbox 1>;
	};

	scpi_clocks {
		compatible = "arm, scpi-clks";

		scpi_dvfs: scpi_clocks@0 {
			compatible = "arm, scpi-clk-indexed";
			#clock-cells = <1>;
			clock-indices = <0>;
			clock-output-names = "vcpu";
		};

	};

	cpu_iomap {
		compatible = "amlogic, iomap";
		#address-cells=<1>;
		#size-cells=<1>;
		ranges;
		io_cbus_base {
			reg = <0xffd00000 0x100000>;
		};
		io_apb_base {
			reg = <0xffe00000 0x100000>;
		};
		io_aobus_base {
			reg = <0xff800000 0x100000>;
		};
		io_vapb_base {
			reg = <0xff900000 0x050000>;
		};
		io_hiu_base {
			reg = <0xff63c000 0x010000>;
		};
	};

	xtal: xtal-clk {
		compatible = "fixed-clock";
		clock-frequency = <24000000>;
		clock-output-names = "xtal";
		#clock-cells = <0>;
	};

	rtc{
		compatible = "amlogic, aml_vrtc";
		alarm_reg_addr = <0xff8000a8>;
		timer_e_addr = <0xffd0f188>;
		init_date = "2015/01/01";
		status = "okay";
	};

	cpu_info {
		compatible = "amlogic, cpuinfo";
		status = "okay";
		cpuinfo_cmd = <0x82000044>;
	};
	aml_reboot{
		compatible = "aml, reboot";
		sys_reset = <0x84000009>;
		sys_poweroff = <0x84000008>;
	};

	wdt_ee: watchdog@0xffd0f0d0 {
		compatible = "amlogic, meson-wdt";
		status = "okay";
		default_timeout=<10>;
		reset_watchdog_method=<1>; /* 0:sysfs,1:kernel */
		reset_watchdog_time=<2>;
		shutdown_timeout=<10>;
		firmware_timeout=<6>;
		suspend_timeout=<6>;
		reg = <0xffd0f0d0 0x10>;
		clock-names = "xtal";
		clocks = <&xtal>;
	};

	ram-dump {
		compatible = "amlogic, ram_dump";
		status = "okay";
		reg = <0xFF6345E0 4>;
		reg-names = "PREG_STICKY_REG8";
	};

	jtag {
		compatible = "amlogic, jtag";
		status = "okay";
		select = "disable"; /* disable/apao/apee */
		pinctrl-names="jtag_apao_pins", "jtag_apee_pins";
		pinctrl-0=<&jtag_apao_pins>;
		pinctrl-1=<&jtag_apee_pins>;
	};

	pinctrl_aobus: pinctrl@ff800014{
		compatible = "amlogic,meson-axg-aobus-pinctrl";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		gpio_ao: ao-bank@ff800014{
			reg = <0xff800014 0x8>,
				  <0xff80002c 0x4>,
				  <0xff800024 0x8>;
			reg-names = "mux", "pull", "gpio";
			gpio-controller;
			#gpio-cells = <2>;
		};
	};

	pinctrl_periphs: pinctrl@ff634480{
		compatible = "amlogic,meson-axg-periphs-pinctrl";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		gpio: banks@ff634480{
			reg = <0xff634480 0x40>,
				  <0xff6344e8 0x14>,
				  <0xff634520 0x14>,
				  <0xff634430 0x3c>;
			reg-names = "mux",
				"pull",
				"pull-enable",
				"gpio";
			gpio-controller;
			#gpio-cells = <2>;
		};
	};


	soc {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		cbus: cbus@ffd00000 {
			compatible = "simple-bus";
			reg = <0xffd00000 0x25000>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0x0 0xffd00000 0x25000>;

			gpio_intc: interrupt-controller@f080 {
				compatible = "amlogic,meson-gpio-intc",
						"amlogic,meson-axg-gpio-intc";
				reg = <0xf080 0x10>;
				interrupt-controller;
				#interrupt-cells = <2>;
				amlogic,channel-interrupts =
					<64 65 66 67 68 69 70 71>;
				status = "okay";
			};

			meson_clk_msr {
				compatible = "amlogic, gxl_measure";
				reg = <0x18004 0x4 0x1800c 0x4>;
			};

			/*i2c-A*/
			i2c0: i2c@1f000 {
				compatible = "amlogic,meson-axg-i2c";
				status = "disabled";
				reg = <0x1f000 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_I2C>;
				clock-names = "clk_i2c";
				clock-frequency = <100000>;
			};

			/*i2c-B*/
			i2c1: i2c@1e000 {
				compatible = "amlogic,meson-axg-i2c";
				status = "disabled";
				reg = <0x1e000 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_I2C>;
				clock-names = "clk_i2c";
				clock-frequency = <100000>;
			};

			/*i2c-C*/
			i2c2: i2c@1d000 {
				compatible = "amlogic,meson-axg-i2c";
				status = "disabled";
				reg = <0x1d000 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_I2C>;
				clock-names = "clk_i2c";
				clock-frequency = <100000>;
			};

			/*i2c-D*/
			i2c3: i2c@1c000 {
				compatible = "amlogic,meson-axg-i2c";
				status = "disabled";
				reg = <0x1c000 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_I2C>;
				clock-names = "clk_i2c";
				clock-frequency = <100000>;
			};

			spicc0: spi@13000 {
				compatible = "amlogic,meson-axg-spicc";
				reg = <0x13000 0x40>;
				interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
				clocks = <&clkc CLKID_SPICC0>,
					 <&clkc CLKID_SPICC_COMP>;
				clock-names = "core", "comp";
				#address-cells = <1>;
				#size-cells = <0>;
				status = "disabled";
			};

			spicc1: spi@15000 {
				compatible = "amlogic,meson-axg-spicc";
				reg = <0x15000 0x40>;
				interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
				clocks = <&clkc CLKID_SPICC1>,
					 <&clkc CLKID_SPICC_COMP>;
				clock-names = "core", "comp";
				#address-cells = <1>;
				#size-cells = <0>;
				status = "disabled";
			};
		}; /* end of cbus */

		aobus: aobus@ff800000 {
			compatible = "simple-bus";
			reg = <0xff800000 0xa000>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0x0 0xff800000 0xa000>;

			cpu_version {
				reg=<0x220 0x4>;
			};

			aoclkc: clock-controller@0 {
				compatible = "amlogic,axg-aoclkc";
				#clock-cells = <1>;
				reg = <0x0 0x320>;
			};

			i2c_AO: i2c@5000 {
				compatible = "amlogic,meson-axg-i2c";
				status = "disabled";
				reg = <0x05000 0x20>;
				interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>;
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&clkc CLKID_I2C>;
				clock-names = "clk_i2c";
				clock-frequency = <100000>;
			};

			irblaster: meson-irblaster@c0 {
				compatible = "amlogic, aml_irblaster";
				reg = <0xc0 0xc>,
					<0x40 0x4>;
				#irblaster-cells = <2>;
				pinctrl-names = "default";
				pinctrl-0 = <&irblaster_pins>;
				status = "disabled";
			};
		};/* end of aobus */

		periphs: periphs@ff634400 {
			compatible = "simple-bus";
			reg = <0xff634400 0x1c00>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0x0 0xff634400 0x1c00>;

		};/* end of periphs */

		hiubus: hiubus@ff63c000 {
			compatible = "simple-bus";
			reg = <0xff63c000 0x10000>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0x0 0xff63c000 0x10000>;

			clkc: clock-controller@0 {
				compatible = "amlogic,axg-clkc";
				#clock-cells = <1>;
				reg = <0x0 0x320>;
			};
		};/* end of hiubus*/

		audiobus: audiobus@0xff642000 {
			compatible = "amlogic, audio-controller", "simple-bus";
			reg = <0xff642000 0x2000>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0x0 0xff642000 0x2000>;
			clkaudio: audio_clocks {
				compatible = "amlogic, axg-audio-clocks";
				#clock-cells = <1>;
				reg = <0x0 0xb0>;
			};
			ddr_manager {
				compatible = "amlogic, axg-audio-ddr-manager";
				interrupts = <
					GIC_SPI 84 IRQ_TYPE_EDGE_RISING
					GIC_SPI 85 IRQ_TYPE_EDGE_RISING
					GIC_SPI 86 IRQ_TYPE_EDGE_RISING
					GIC_SPI 88 IRQ_TYPE_EDGE_RISING
					GIC_SPI 89 IRQ_TYPE_EDGE_RISING
					GIC_SPI 90 IRQ_TYPE_EDGE_RISING
				>;
				interrupt-names =
					"toddr_a", "toddr_b", "toddr_c",
					"frddr_a", "frddr_b", "frddr_c";
			};
		};/* end of audiobus*/
	}; /* end of soc*/

    pwm_ab: pwm@ffd1b000 {
		compatible = "amlogic,axg-ee-pwm";
		reg = <0xffd1b000  0x20>;
		#pwm-cells = <3>;
		clocks = <&xtal>,<&xtal>,<&xtal>,<&xtal>;
		clock-names = "clkin0","clkin1","clkin2","clkin3";
		/*default xtal 24M  clkin0-clkin2 and clkin1-clkin3
		 *should be set the same
		 */
		status = "disabled";
	};
    pwm_cd: pwm@ffd1a000 {
		compatible = "amlogic,axg-ee-pwm";
		reg = <0xffd1a000  0x20>;
		#pwm-cells = <3>;
		clocks = <&xtal>,<&xtal>,<&xtal>,<&xtal>;
		clock-names = "clkin0","clkin1","clkin2","clkin3";
		status = "disabled";
	};
    pwm_aoab: pwm@ff807000 {
		compatible = "amlogic,axg-ao-pwm";
		reg = <0xff807000  0x20>;
		#pwm-cells = <3>;
		clocks = <&xtal>,<&xtal>,<&xtal>,<&xtal>;
		clock-names = "clkin0","clkin1","clkin2","clkin3";
		status = "disabled";
	};

	pwm_aocd: pwm@ff802000 {
		compatible = "amlogic,axg-ao-pwm";
		reg = <0xff802000  0x20>;
		#pwm-cells = <3>;
		clocks = <&xtal>,<&xtal>,<&xtal>,<&xtal>;
		clock-names = "clkin0","clkin1","clkin2","clkin3";
		status = "disabled";
	};

	remote:rc@0xff808040 {
		compatible = "amlogic, aml_remote";
		dev_name = "meson-remote";
		reg = <0xff808040 0x44>, /*Multi-format IR controller*/
			<0xff808000 0x20>; /*Legacy IR controller*/
		status = "okay";
		protocol = <REMOTE_TYPE_NEC>;
		interrupts = <0 196 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)>;
		};
	};
	i2c_slave:i2c_slave@ff806000{
		compatible = "amlogic, meson-i2c-slave";
		status = "disabled";
		reg = <0xff806000 0x20>;
		interrupts = <0 194 1>;
		pinctrl-names="default";
		pinctrl-0=<&i2c_slave_pin>;
	};

	aml_dma {
		compatible = "amlogic,aml_txlx_dma";
		reg = <0xff63e000 0x48>;
		interrupts = <0 180 1>;

		aml_aes {
			compatible = "amlogic,aes_dma";
			dev_name = "aml_aes_dma";
			status = "okay";
		};

		aml_sha {
			compatible = "amlogic,sha_dma";
			dev_name = "aml_sha_dma";
			status = "okay";
		};
	};

	saradc:saradc {
		compatible = "amlogic,meson-axg-saradc";
		status = "okay";
		#io-channel-cells = <1>;
		clocks = <&xtal>, <&clkc CLKID_SARADC_GATE>;
		clock-names = "xtal", "saradc_clk";
		interrupts = <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>;
		reg = <0xff809000 0x38>;
	};
	efuse: efuse{
		compatible = "amlogic, efuse";
		read_cmd = <0x82000030>;
		write_cmd = <0x82000031>;
		get_max_cmd = <0x82000033>;
		key = <&efusekey>;
		clocks = <&clkc CLKID_EFUSE>;
		clock-names = "efuse_clk";
		status = "disabled";
	};

	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>;
		};
	};

	audio_data: audio_data {
		compatible = "amlogic, audio_data";
		query_licence_cmd = <0x82000050>;
		status = "disabled";
	};

	ddr_bandwidth {
		compatible = "amlogic, ddr-bandwidth";
		status = "okay";
		reg = <0xff638000 0x100
		       0xff637000 0x100>;
		interrupts = <0 52 1>;
		interrupt-names = "ddr_bandwidth";
	};
	dmc_monitor {
		compatible = "amlogic, dmc_monitor";
		status = "okay";
		reg_base = <0xff638800>;
		interrupts = <0 51 1>;
	};

	cpu_ver_name{
		compatible = "amlogic, cpu-major-id-axg";
	};
};/* end of / */

&pinctrl_aobus {
	remote_pins:remote_pin {
		mux {
			groups = "remote_input_ao";
			function = "remote_input_ao";
		};
	};

	irblaster_pins:irblaster_pin {
		mux {
			groups = "remote_out_ao";
			function = "remote_out_ao";
		};
	};

	ao_uart_pins:ao_uart {
		mux {
			groups = "uart_ao_tx_a",
				"uart_ao_rx_a";
			function = "uart_ao_a";
		};
	};

	ao_b_1_uart_pins:ao_b_1_uart {
		mux {
			groups = "uart_ao_tx_b",
				"uart_ao_rx_b";
			function = "uart_ao_b";
		};
	};

	ao_i2c_master:ao_i2c{
		mux {
			groups = "i2c_ao_sck_4",
				"i2c_ao_sda_5";
			function = "i2c_ao";
		};
	};

	ao_i2c_master_pin1:ao_i2c_pin1{
		mux {
			groups = "i2c_ao_sck_8",
				"i2c_ao_sda_9";
			function = "i2c_ao";
		};
	};

	ao_i2c_master_pin2:ao_i2c_pin2{
		mux {
			groups = "i2c_ao_sck_10",
				"i2c_ao_sda_11";
			function = "i2c_ao";
		};
	};

	i2c_slave_pin:s_i2c{
		mux {
			groups = "i2c_ao_slave_sck",
				"i2c_ao_slave_sda";
			function = "i2c_ao_slave";
		};
	};

	jtag_apao_pins:jtag_apao_pin {
		mux {
			groups = "jtag_ao_tdi",
			"jtag_ao_tdo",
			"jtag_ao_clk",
			"jtag_ao_tms";
			function = "jtag_ao";
		};
	};

}; /* end of pinctrl_aobus */

&pinctrl_periphs {
	external_eth_pins:external_eth_pins {
		mux {
			groups = "eth_mdio_y",
				"eth_mdc_y",
				"eth_rgmii_rx_clk_y",
				"eth_rx_dv_y",
				"eth_rxd0_y",
				"eth_rxd1_y",
				"eth_rxd2_rgmii",
				"eth_rxd3_rgmii",
				"eth_rgmii_tx_clk",
				"eth_txen_y",
				"eth_txd0_y",
				"eth_txd1_y",
				"eth_txd2_rgmii",
				"eth_txd3_rgmii";
			function = "eth";
		};
	};

	ao_b_uart_pins:ao_b_uart {
		mux {
			groups = "uart_ao_tx_b_z",
				"uart_ao_rx_b_z";
			function = "uart_ao_b";
		};
	};

	a_uart_pins:a_uart {
		mux {
			groups = "uart_tx_a",
				"uart_rx_a",
				"uart_cts_a",
				"uart_rts_a";
			function = "uart_a";
		};
	};

	b_uart_pins:b_uart {
		mux {
			groups = "uart_tx_b_z",
				"uart_rx_b_z";
			function = "uart_b";
		};
	};

	a_i2c_master:a_i2c {
		mux {
			groups = "i2c0_sck",
				"i2c0_sda";
			function = "i2c0";
		};
	};

	b_i2c_master:b_i2c {
		mux {
			groups = "i2c1_sck_z",
				"i2c1_sda_z";
			function = "i2c1";
		};
	};

	b_i2c_master_pin1:b_i2c_pin1 {
		mux {
			groups = "i2c1_sck_x",
				"i2c1_sda_x";
			function = "i2c1";
		};
	};

	c_i2c_master:c_i2c {
		mux {
			groups = "i2c2_sck_x",
				"i2c2_sda_x";
			function = "i2c2";
		};
	};

	c_i2c_master_pin1:c_i2c_pin1 {
		mux {
			groups = "i2c2_sck_a",
				"i2c2_sda_a";
			function = "i2c2";
		};
	};

	d_i2c_master:d_i2c {
		mux {
			groups = "i2c3_sda_a6",
				"i2c3_sck_a7";
			function = "i2c3";
		};
	};

	d_i2c_master_pin1:d_i2c_pin1 {
		mux {
			groups = "i2c3_sda_a12",
				"i2c3_sck_a13";
			function = "i2c3";
		};
	};

	d_i2c_master_pin2:d_i2c_pin2 {
		mux {
			groups = "i2c3_sda_a19",
				"i2c3_sck_a20";
			function = "i2c3";
		};
	};

	spi0_pins: spi0 {
		mux {
			groups = "spi0_clk",
				"spi0_mosi",
				"spi0_miso";
			function = "spi0";
		};
	};

	spi1_a_pins: spi1_a {
		mux {
			groups = "spi1_clk_a",
				"spi1_mosi_a",
				"spi1_miso_a";
			function = "spi1";
		};
	};

	spi1_x_pins: spi1_x {
		mux {
			groups = "spi1_clk_x",
				"spi1_mosi_x",
				"spi1_miso_x";
			function = "spi1";
		};
	};

	nand_pulldown: nand_pulldown {
		mux {
			groups = "emmc_nand_d0",
				"emmc_nand_d1",
				"emmc_nand_d2",
				"emmc_nand_d3",
				"emmc_nand_d4",
				"emmc_nand_d5",
				"emmc_nand_d6",
				"emmc_nand_d7",
				"nand_rb0";
			function = "nand";
			bias-pull-down;
		};
	};

	nand_pullup: nand_pullup {
		mux {
			groups = "nand_ce0";
			function = "nand";
			bias-pull-up;
		};
	};

	all_nand_pins: all_nand_pins {
		mux {
			groups =  "emmc_nand_d0",
				"emmc_nand_d1",
				"emmc_nand_d2",
				"emmc_nand_d3",
				"emmc_nand_d4",
				"emmc_nand_d5",
				"emmc_nand_d6",
				"emmc_nand_d7",
				"nand_ce0",
				"nand_ale",
				"nand_cle",
				"nand_wen_clk",
				"nand_ren_wr",
				"nand_rb0";
			function = "nand";
			input-enable;
		};
	};

	nand_cs_pins: nand_cs {
		mux {
			groups = "nand_ce0";
			function = "nand";
		};
	};

	emmc_clk_cmd_pins:emmc_clk_cmd_pins {
		mux {
			groups = "emmc_clk",
				"emmc_cmd";
			function = "emmc";
			input-enable;
			bias-pull-up;
		};
	};


	emmc_conf_pull_up:emmc_conf_pull_up {
		mux {
			groups = "emmc_nand_d0",
				"emmc_nand_d1",
				"emmc_nand_d2",
				"emmc_nand_d3",
				"emmc_nand_d4",
				"emmc_nand_d5",
				"emmc_nand_d6",
				"emmc_nand_d7",
				"emmc_clk",
				"emmc_cmd";
			function = "emmc";
			input-enable;
			bias-pull-up;
		};
	};

	emmc_conf_pull_done:emmc_conf_pull_done {
		mux {
			groups = "emmc_ds";
			function = "emmc";
			input-enable;
			bias-pull-down;
		};
	};

	sdio_clk_cmd_pins:sdio_clk_cmd_pins {
		mux {
			groups = "sdio_clk",
				"sdio_cmd";
			function = "sdio";
			input-enable;
			bias-pull-up;
		};
	};

	sdio_all_pins:sdio_all_pins {
		mux {
			groups = "sdio_d0",
				"sdio_d1",
				"sdio_d2",
				"sdio_d3",
				"sdio_clk",
				"sdio_cmd";
			function = "sdio";
			input-enable;
			bias-pull-up;
		};
	};

	wifi_32k_pins:wifi_32k_pins {
		mux {
			groups ="pwm_a_x20";
			function = "pwm_a";
		};
	};

	jtag_apee_pins:jtag_apee_pin {
		mux {
			groups = "jtag_tdo_x",
			"jtag_tdi_x",
			"jtag_clk_x",
			"jtag_tms_x";
			function = "jtag_ee";
		};
	};

}; /* end of pinctrl_periphs */

