// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2019 Amlogic, Inc. All rights reserved.
 */

/dts-v1/;

#include "meson-a1.dtsi"

/ {
	amlogic-dt-id = "a1-a113l-ad403";
	compatible = "a1-a113l-ad403";

	aliases {
		serial0 = &uart_B;
		serial1 = &uart_A;
		serial2 = &uart_C;
		i2c0 = &i2c0;
		i2c1 = &i2c1;
		i2c2 = &i2c2;
		i2c3 = &i2c3;
		spi0 = &spifc;
		spi1 = &spicc0;
		tsensor0 = &tsensor;
	};
	chosen {
		stdout-path = "serial0:115200n8";
	};
	memory@0 {
		device_type = "memory";
		linux,usable-memory = <0x0 0x8000000>;
	};

	reserved-memory {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		dsp_fw_reserved:linux,dsp_fw {
			compatible = "shared-dma-pool";
			reusable;
			size = <0x1400000>;
			alignment = <0x400000>;
			alloc-ranges = <0x2800000 0x1400000>;
		};

		secos_reserved:linux,secos {
			status = "okay";
			compatible = "amlogic, aml_secos_memory";
			reg = <0x03d00000 0x00300000>;
			no-map;
		};

		/* global autoconfigured region for contiguous allocations */
		linux,cma {
			compatible = "shared-dma-pool";
			reusable;
			size = <0x800000>;
			alignment = <0x400000>;
			linux,cma-default;
		};
	};

	bat: battery {
		compatible = "simple-battery";
		charge-full-design-microamp-hours = <1900000>;
		charge-term-current-microamp = <120000>;
		constant_charge_voltage_max_microvolt = <4200000>;
		factory-internal-resistance-micro-ohms = <98000>;
		ocv-capacity-celsius = <20>;
		ocv-capacity-table-0 =
			<4115000 100>, <4088750 95>, <4052500 90>,
			<4016250 85>, <3980000 80>, <3943750 75>,
			<3907500 70>, <3871250 65>, <3835000 60>,
			<3798750 55>, <3762500 50>, <3726250 45>,
			<3690000 40>, <3653750 35>, <3617500 30>,
			<3581250 25>, <3545000 20>, <3508750 15>,
			<3472500 10>, <3436250 5>, <3400000 0>;
	};

	/* Audio Related start */
	dummy_codec:dummy_codec{
		#sound-dai-cells = <0>;
		compatible = "amlogic, aml_dummy_codec";
		status = "okay";
	};

	a1_codec:a1_codec {
		#sound-dai-cells = <0>;
		compatible = "amlogic, a1_acodec";
		status = "okay";
		reg = <0xFE004800 0x20>;
		tdmout_index = <1>;
		tdmin_index = <1>;
		dat0_ch_sel = <0>;
		/*audio output mode
		 *0:single end output
		 *1:differential output
		 */
		dacr_output_inv = <1>;
		power-domains = <&pwrdm PDID_ACODEC>;
	};

	auge_sound {
		compatible = "amlogic, auge-sound-card";
		aml-audio-card,name = "AML-AUGESOUND";

		/*avout mute gpio*/
		avout_mute-gpios = <&gpio GPIOF_4 GPIO_ACTIVE_HIGH>;

		aml-audio-card,dai-link@0 {
			format = "dsp_a";
			mclk-fs = <512>;
			//continuous-clock;
			//bitclock-inversion;
			//frame-inversion;
			/* master mode */
			bitclock-master = <&tdma>;
			frame-master = <&tdma>;
			/* slave mode */
			/*
			 * bitclock-master = <&tdmacodec>;
			 * frame-master = <&tdmacodec>;
			 */
			suffix-name = "alsaPORT-pcm";
			tdmacpu: cpu {
				sound-dai = <&tdma>;
				dai-tdm-slot-tx-mask =
							<1>;
				dai-tdm-slot-rx-mask =
							<1>;
				dai-tdm-slot-num = <2>;
				dai-tdm-slot-width = <16>;
				system-clock-frequency = <256000>;
			};
			tdmacodec: codec {
				sound-dai = <&dummy_codec>;
			};
		};

		aml-audio-card,dai-link@1 {
			format = "i2s";// "dsp_a";
			mclk-fs = <256>;
			//continuous-clock;
			//bitclock-inversion;
			//frame-inversion;
			/* master mode */
			bitclock-master = <&tdmb>;
			frame-master = <&tdmb>;
			/* slave mode */
			//bitclock-master = <&tdmbcodec>;
			//frame-master = <&tdmbcodec>;
			/* suffix-name, sync with android audio hal
			 * what's the dai link used for
			 */
			suffix-name = "alsaPORT-i2s";
			cpu {
				sound-dai = <&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 = <614400000>;
			};
			tdmbcodec: codec {
				sound-dai = <&a1_codec>;
			};
		};

		aml-audio-card,dai-link@2 {
			mclk-fs = <64>;
			/* suffix-name, sync with android audio hal
			 * what's the dai link used for
			 */
			suffix-name = "alsaPORT-pdm";
			cpu {
				sound-dai = <&pdm>;
			};
			codec {
				sound-dai = <&dummy_codec>;
			};
		};
#if 0
		aml-audio-card,dai-link@3 {
			mclk-fs = <128>;
			/* suffix-name, sync with android audio hal used for */
			suffix-name = "alsaPORT-spdif";
			cpu {
				sound-dai = <&spdifa>;
				system-clock-frequency = <6144000>;
			};
			codec {
				sound-dai = <&dummy_codec>;
			};
		};
#endif
		aml-audio-card,dai-link@4 {
			mclk-fs = <256>;
			continuous-clock;
			suffix-name = "alsaPORT-loopback";
			cpu {
				sound-dai = <&loopback>;
				system-clock-frequency = <12288000>;
			};
			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_C
				&clkaudio CLKID_AUDIO_MCLK_D
				&clkc CLKID_FCLK_DIV2
				&clkc CLKID_FCLK_DIV3>;
		clock-names = "lock_out", "lock_in", "out_src",
					"in_src", "out_calc", "in_ref";
		interrupts = <GIC_SPI 42 IRQ_TYPE_EDGE_RISING>;
		interrupt-names = "irq";
		frequency = <49000000>; /* pll */
		dividor = <49>; /* locker's parent */
		power-domains = <&pwrdm PDID_AUDIO>;
		status = "disabled";
	};
	/* Audio Related end */

	adc_keypad {
		compatible = "amlogic, adc_keypad";
		status = "okay";
		key_name = "mute", "vol-", "vol+", "play";
		key_num = <4>;
		io-channels = <&saradc 0>;
		io-channel-names = "key-chan-0";
		key_chan = <0 0 0 0>;
		key_code = <113 114 115 207>;
		key_val = <510 267 141 0>; //val=voltage/1800mV*1023
		key_tolerance = <40 40 40 40>;
	};

	gpio_keypad{
		compatible = "amlogic, gpio_keypad";
		status = "okay";
		scan_period = <20>;
		key_num = <1>;
		key_name = "power";
		key_code = <116>;
		key-gpios = <&gpio GPIOF_9 GPIO_ACTIVE_HIGH>;
		detect_mode = <0>;/*0:polling mode, 1:irq mode*/
	};

	gpioleds {
		compatible = "gpio-leds";
		status = "okay";

		spi_led_en {
			label="spi_led_en";
			gpios=<&gpio GPIOA_1 GPIO_ACTIVE_HIGH>;
			default-state ="on";
		};
	};

	pwmleds {
		compatible = "pwm-leds";
		pinctrl-0 = <&pwm_a_pins4 &pwm_b_pins2 &pwm_c_pins3>;
		pinctrl-names = "default";
		status = "okay";

		led_r {
			label = "rgb_led_r";
			/* 50kHZ */
			pwms = <&pwm_ab MESON_PWM_0 20000 0>;
			max-brightness = <255>;
			ignore-init;
		};

		led_g {
			label = "rgb_led_g";
			/* 50kHZ */
			pwms = <&pwm_ab MESON_PWM_1 20000 0>;
			max-brightness = <255>;
			ignore-init;
		};

		led_b {
			label = "rgb_led_b";
			/* 50kHZ */
			pwms = <&pwm_cd MESON_PWM_0 20000 0>;
			max-brightness = <255>;
			ignore-init;
		};
	};
	audiobridge {
		compatible = "amlogic, audio-bridge";
		status = "okay";
		mboxes = <&mailbox_pl 1>,
			 <&mailbox_pl 3>;
		#mbox-cells = <1>;
		aml-audio-line,link@0 {
			auto-running = <1>;
			def-volume = <50>;
			src {
				/* 0-arm,1-dsp,2-uac */
				core = <1>;
				/* 0-none,1-tdma,2-tdmb,3-spdif,
				 * 4-lopback,5-pdmin,6-process
				 */
				sound-card = <6>;
				channels = <4>;
				sample-rate = <48000>;
				/* 0-s8,1-s16le,7-s32le */
				format = <1>;
				create-vir-card = <1>;
			};
			dst {
				core = <2>;
				sound-card = <0>;
				channels = <2>;
				sample-rate = <16000>;
				format = <1>;
			};
		};
		aml-audio-line,link@1 {
			auto-running = <1>;
			def-volume = <100>;
			src {
				core = <2>;
				sound-card = <0>;
				channels = <2>;
				sample-rate = <48000>;
				format = <1>;
			};
			dst {
				core = <1>;
				sound-card = <2>;
				channels = <2>;
				sample-rate = <48000>;
				format = <1>;
				create-vir-card = <1>;
			};
		};
	};
};

/* Audio Related start */
&audiobus {
	tdma: tdm@0 {
		compatible = "amlogic, a1-snd-tdma";
		#sound-dai-cells = <0>;
		dai-tdm-lane-slot-mask-in = <0 1>;
		dai-tdm-lane-slot-mask-out = <1 0>;
		dai-tdm-clk-sel = <0>;
		clocks = <&clkaudio CLKID_AUDIO_MCLK_A
				&clkc CLKID_FCLK_DIV3>;
		clock-names = "mclk", "clk_srcpll";
		pinctrl-names = "tdm_pins";
		pinctrl-0 = <&tdmout_a &tdmin_a>;
		power-domains = <&pwrdm PDID_AUDIO>;

		status = "okay";
	};

	tdmb: tdm@1 {
		compatible = "amlogic, a1-snd-tdmb";
		#sound-dai-cells = <0>;
		dai-tdm-lane-slot-mask-in = <1 0 0 0>;
		dai-tdm-lane-slot-mask-out = <1 0 0 0>;
		/* dai-tdm-lane-oe-slot-mask-in = <0 1>; */
		dai-tdm-clk-sel = <1>;
		clocks = <&clkaudio CLKID_AUDIO_MCLK_B
				&clkaudio CLKID_AUDIO_MCLK_PAD0
				&clkc CLKID_FCLK_DIV3>;
		clock-names = "mclk", "mclk_pad", "clk_srcpll";
		pinctrl-names = "tdm_pins";
		pinctrl-0 = <&tdmb_mclk>;

		/* tdmin data comes from ACODEC adc */
		acodec_adc = <1>;

		/*
		 * 0: tdmout_a;
		 * 1: tdmout_b;
		 * 2: tdmout_c;
		 * 3: spdifout;
		 * 4: spdifout_b;
		 */
		//samesource_sel = <3>;
		start_clk_enable = <1>;
		power-domains = <&pwrdm PDID_AUDIO>;

		src-clk-freq = <614400000>;

		status = "okay";
	};

	spdifa: spdif@0 {
		compatible = "amlogic, a1-snd-spdif-a";
		#sound-dai-cells = <0>;
		clocks = <&clkc CLKID_FCLK_DIV3
				&clkaudio CLKID_AUDIO_GATE_SPDIFIN
				&clkaudio CLKID_AUDIO_SPDIFIN>;
		clock-names = "fixed_clk", "gate_spdifin", "clk_spdifin";
		interrupts =
				<GIC_SPI 39 IRQ_TYPE_EDGE_RISING>;

		interrupt-names = "irq_spdifin";
		/* GPIOF_6 is used for RGB led, Do not set it here
		 * pinctrl-names = "spdif_pins";
		 * pinctrl-0 = <&spdifin>;
		 */
		power-domains = <&pwrdm PDID_AUDIO>;

		status = "disabled";
	};

	pdm: pdm {
		compatible = "amlogic, a1-snd-pdm";
		#sound-dai-cells = <0>;

		clocks = <&clkaudio CLKID_AUDIO2_GATE_PDM
			&clkc CLKID_FCLK_DIV2
			&clkc CLKID_FCLK_DIV2
			&clkaudio CLKID_AUDIO2_PDM_DCLK
			&clkaudio CLKID_AUDIO2_PDM_SYSCLK>;
		clock-names = "gate",
			"sysclk_srcpll",
			"dclk_srcpll",
			"pdm_dclk",
			"pdm_sysclk";

		pinctrl-names = "pdm_pins";
		pinctrl-0 = <&pdmin>;

		/* mode 0~4, defalut:1 */
		filter_mode = <1>;
		sys-src-clk-freq = <614400000>;
		/*power-domains = <&pwrdm PDID_PDM>;*/

		status = "okay";
	};

	asrca: resample@0 {
		compatible = "amlogic, a1-resample-a";
		clocks = <&clkc CLKID_FCLK_DIV3
			&clkaudio CLKID_AUDIO_MCLK_C
			&clkaudio CLKID_AUDIO_RESAMPLEA>;
		clock-names = "resample_pll", "resample_src", "resample_clk";

		/*same with toddr_src
		 *	TDMIN_A,    0
		 *	TDMIN_B,    1
		 *	TDMIN_C,    2
		 *	SPDIFIN,    3
		 *	PDMIN,      4
		 *	FRATV,      5
		 *	TDMIN_LB,   6
		 *	LOOPBACK_A, 7
		 *	FRHDMIRX,   8
		 *	LOOPBACK_B, 9
		 *	SPDIFIN_LB, 10
		 *	EARC_RX,    11
		 */
		resample_module = <3>;

		/* only can enable one new resample
		 * as only have one new resample HW
		 */
		status = "disabled";
	};

	asrcb: resample@1 {
		compatible = "amlogic, a1-resample-b";
		clocks = <&clkc CLKID_FCLK_DIV3
			&clkaudio CLKID_AUDIO_MCLK_D
			&clkaudio CLKID_AUDIO_RESAMPLEA>;
		clock-names = "resample_pll", "resample_src", "resample_clk";

		/*this resample is only used for loopback_A.*/
		/*only support 16000 or 48000Hz for capture*/
		capture_sample_rate = <16000>;

		/* hifi pll rate */
		src-clk-freq = <614400000>;

		status = "disabled";
	};

	vad:vad {
		compatible = "amlogic, snd-vad-top";
		#sound-dai-cells = <0>;

		clocks = <&clkaudio CLKID_AUDIO2_GATE_TOVAD
			/* &clkc CLKID_FCLK_DIV2 */
			&xtal
			&clkaudio CLKID_AUDIO2_VAD_CLK>;
		clock-names = "gate", "pll", "clk";

		interrupts = <GIC_SPI 117 IRQ_TYPE_EDGE_RISING
				GIC_SPI 118 IRQ_TYPE_EDGE_RISING>;
		interrupt-names = "irq_wakeup", "irq_frame_sync";

		/*
		 * Data src sel:
		 * 2: tdmin_c, actually tdmin_vad
		 * 4: pdmin
		 */
		src = <4>;

		/*
		 * deal with hot word in user space or kernel space
		 * 0: in user space
		 * 1: in kernel space
		 */
		level = <1>;

		status = "disabled";
	};

	loopback: loopback {
		compatible = "amlogic, a1-loopbacka";
		#sound-dai-cells = <0>;

		original-src = <&tdmb>;
		//tdmin_lb-src = <&tdmin_lb>;

		clocks = <&clkaudio CLKID_AUDIO2_GATE_PDM
			&clkc CLKID_FCLK_DIV2
			&clkc CLKID_FCLK_DIV2
			&clkaudio CLKID_AUDIO2_PDM_DCLK
			&clkaudio CLKID_AUDIO2_PDM_SYSCLK
			&clkc CLKID_FCLK_DIV3
			&clkaudio CLKID_AUDIO_MCLK_C>;
		clock-names = "pdm_gate",
			"pdm_sysclk_srcpll",
			"pdm_dclk_srcpll",
			"pdm_dclk",
			"pdm_sysclk",
			"tdminlb_mpll",
			"tdminlb_mclk";

		/* datain src
		 * 0: tdmin_a;
		 * 1: tdmin_b;
		 * 2: tdmin_c;
		 * 3: spdifin;
		 * 4: pdmin;
		 */
		datain_src = <4>;
		datain_chnum = <2>;
		datain_chmask = <0x3>;
		/* config which data pin for loopback */
		datain-lane-mask-in = <1 0 0 0>;

		sys-src-clk-freq = <614400000>;

		/* calc mclk for datalb */
		mclk-fs = <256>;

		/* tdmin_lb src
		 * 0: tdmoutA
		 * 1: tdmoutB
		 * 2: tdmoutC
		 * 3: PAD_TDMINA_DIN*, refer to core pinmux
		 * 4: PAD_TDMINB_DIN*, refer to core pinmux
		 * 5: PAD_TDMINC_DIN*, refer to core pinmux
		 * 6: PAD_TDMINA_D*, oe, refer to core pinmux
		 * 7: PAD_TDMINB_D*, oe, refer to core pinmux
		 */
		/* if tdmin_lb >= 3, use external loopback */
		datalb_src = <1>;
		datalb_chnum = <2>;
		datalb_chmask = <0x3>;
		/* config which data pin as loopback */
		datalb-lane-mask-in = <1 0 0 0>;
		power-domains = <&pwrdm PDID_AUDIO>;

		status = "okay";
	};

	aed:effect {
		compatible = "amlogic, snd-effect-v3";
		#sound-dai-cells = <0>;
		clocks = <&clkaudio CLKID_AUDIO_GATE_EQDRC
			&clkc CLKID_FCLK_DIV3
			&clkaudio CLKID_AUDIO_EQDRC>;
		clock-names = "gate", "srcpll", "eqdrc";
		/*
		 * 0:tdmout_a
		 * 1:tdmout_b
		 * 2:tdmout_c
		 * 3:spdifout
		 * 4:spdifout_b
		 */
		eqdrc_module = <1>;
		/* max 0xf, each bit for one lane, usually one lane */
		lane_mask = <0x1>;
		/* max 0xff, each bit for one channel */
		channel_mask = <0x3>;
		power-domains = <&pwrdm PDID_AUDIO>;
		status = "okay";
	};
}; /* end of audiobus */
/* Audio Related end */

&pinctrl_periphs {
	/* Audio Related start */
	tdmout_a: tdmout_a {
		mux { /* GPIOX_10, GPIOX_9, GPIOX_8 */
			groups = "tdm_a_sclk",
				"tdm_a_fs",
				"tdm_a_dout0";
			function = "tdm_a";
		};
	};

	tdmin_a: tdmin_a {
		mux { /* GPIOX_7 */
			groups = "tdm_a_din1";
			function = "tdm_a";
		};
	};

	tdmb_mclk: tdmb_mclk {
		mux {
			groups = "mclk_0";
			function = "mclk_0";
			drive-strength = <2>;
		};
	};

	tdmout_b: tdmout_b {
		mux { /* GPIOA_1, GPIOA_2, GPIOA_3 */
			groups = "tdm_b_sclk",
				"tdm_b_fs",
				"tdm_b_dout0";
			function = "tdm_b";
			drive-strength = <2>;
		};
	};

	tdmin_b:tdmin_b {
		mux { /* GPIOA_7 */
			groups = "tdm_b_din0";
			function = "tdm_b";
			drive-strength = <2>;
		};
	};

	spdifin: spdifin {
		mux {/* GPIOF_6 */
			groups = "spdif_in_f6";
			function = "spdif_in";
		};
	};

	pdmin: pdmin {
		mux { /* GPIOA_7, GPIOA_8, GPIOA_9 */
			groups =
				"pdm_din1_a",
				"pdm_din0_a",
				"pdm_dclk";
			function = "pdm";
		};
	};

	/* Audio Related end */

	/* spi-led */
	spicc0_led_pins_a: spicc0_led_pins_a {
		mux {
			groups = "spi_a_mosi_a";
			function = "spi_a";
			bias-pull-down;
			drive-strength = <2>;
		};
	};

}; /* end of pinctrl_periphs */

&uart_B {
	status = "okay";
};

&spifc {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&spifc_pins>;
	spi-nor@1 {
		reg = <1>;
		compatible = "jedec,spi-nor";
		spi-max-frequency = <16000000>;
	};
	spi-nand@0 {
		compatible = "spi-nand";
		status = "okay";
		reg = <0>;
		spi-max-frequency = <96000000>;
		spi-tx-bus-width = <4>;
		spi-rx-bus-width = <4>;
		env_size = <8192>;
		bl_mode = <1>;
		fip_copies = <4>;
		fip_size = <0x200000>;
		partition = <&partitions>;
		partitions: partitions{
			bootloader{
				offset=<0x0 0x0>;
				size=<0x0 0x0>;
			};
			tpl{
				offset=<0x0 0x0>;
				size=<0x0 0x0>;
			};
			misc{
				offset=<0x0 0x0>;
				size=<0x0 0x40000>;
			};
			recovery{
				offset=<0x0 0x0>;
				size=<0x0 0x1000000>;
			};
			boot{
				offset=<0x0 0x0>;
				size=<0x0 0xc00000>;
			};
			system{
				offset=<0x0 0x0>;
				size=<0x0 0x4e00000>;
			};
			data{
				offset=<0xffffffff 0xffffffff>;
				size=<0x0 0x0>;
			};
		};
	};
};

&cpu0 {
	cpu-supply = <&VDD_CORE>;
};

&cpu1 {
	cpu-supply = <&VDD_CORE>;
};

&pwm_ef {
	status = "okay";
};

&vddcpu0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pwm_f_pins4>;
	pwms = <&pwm_ef MESON_PWM_1 1500 0>;
	status = "disable";
};

&dwc2_a {
	status = "okay";
	/** 0: normal, 1: otg+dwc3 host only, 2: otg+dwc3 device only*/
	controller-type = <3>;
};

&dwc3 {
	status = "okay";
};

&usb2_phy_v2 {
	status = "okay";
	portnum = <1>;
};

&usb3_phy_v2 {
	status = "okay";
	portnum = <0>;
	otg = <2>;
	gpio-vbus-power = "GPIOP_3";
	gpios = <&gpio GPIOP_3 GPIO_ACTIVE_HIGH
			&gpio GPIOP_2  GPIO_ACTIVE_LOW>;
};

&aml_bt {
	status = "okay";
	hostwake-gpios = <&gpio       GPIOP_1       GPIO_ACTIVE_HIGH>;
	bt_en-gpios = <&gpio       GPIOX_6       GPIO_ACTIVE_HIGH>;

};

&aml_wifi {
	status = "okay";
	interrupt-gpios = <&gpio       GPIOP_0       GPIO_ACTIVE_HIGH>;
};

&pwm_cd {
	status = "okay";
};

&uart_A {
	status = "okay";
};

&i2c0 {
	status = "okay";
	pinctrl-names="default", "sleep";
	pinctrl-0 = <&i2c0_master_pins1>;
	pinctrl-1 = <&i2c0_master_sleep_pins1>;
	clock-frequency = <100000>; /* default 100k */

	pmic@35 {
		compatible = "amlogic,pmic6b";
		status = "okay";
		reg = <0x35>;
		interrupt-parent = <&gpio_intc>;
		pmic_irq-gpio = <&gpio GPIOF_10 GPIO_ACTIVE_HIGH>;
		system-power-controller;
		interrupt-controller;
		#interrupt-cells = <2>;
		gpio-controller;
		#gpio-cells = <2>;

		regulators {
			VDD_CORE: DCDC1 {
				regulator-name = "VDD_CORE";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <1200000>;
				regulator-boot-on;
				regulator-always-on;
				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};

			VDDQ: DCDC2 {
				regulator-name = "VDDQ";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1900000>;
				regulator-boot-on;
				regulator-always-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			VCC_3_3V: DCDC3 {
				regulator-name = "VCC_3_3V";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3600000>;
				regulator-boot-on;
				regulator-always-on;
				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};

			AVDD_1_8V: LDO1 {
				regulator-name = "AVDD_1_8V";
				regulator-min-microvolt = <1660000>;
				regulator-max-microvolt = <2200000>;
				regulator-boot-on;
				regulator-always-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			MIC_BIA_3_3V: LDO2 {
				regulator-name = "MIC_BIA_3_3V";
				regulator-min-microvolt = <700000>;
				regulator-max-microvolt = <3800000>;
				regulator-boot-on;
				regulator-always-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			VCC_1_8V: LDO3 {
				regulator-name = "VCC_1_8V";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3800000>;
				regulator-boot-on;
				//regulator-always-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};
		};

		gpio {
			compatible = "amlogic,pmic6b-gpio";
		};

		pwrkey {
			compatible = "amlogic,pmic6b-pwrkey";
		};
		charger {
			status = "okay";
			compatible = "amlogic,pmic6b-battery";
			monitored-battery = <&bat>;
		};

		rtc {
			compatible = "amlogic,pmic6b-rtc";
		};
	};
};

&i2c1 {
	status = "disabled";
	pinctrl-names="default";
	pinctrl-0=<&i2c1_master_pins2>;
	clock-frequency = <100000>; /* default 100k */

	csk05: csk05@15{
		compatible = "hynitron, csk05_ts";
		reg = <0x15>;
		status = "disabled";
		reset_pin     = <&gpio GPIOF_11 GPIO_ACTIVE_HIGH>;
		interrupt_pin = <&gpio GPIOF_10 IRQ_TYPE_LEVEL_LOW>;

		freq = <6>;
		sensitivity = <1>;
		idac = <60>;
		noise = <80>;

		key_num = <5>;
		key_name = "play", "mic", "wakeup", "vol-", "vol+";
		key_code = <KEY_PLAY
			    KEY_MENU
			    KEY_HOME
			    KEY_VOLUMEDOWN
			    KEY_VOLUMEUP>;
	};
};

&sd_emmc_a {
	status = "okay";
	pinctrl-0 = <&sdio_pins>;
	pinctrl-1 = <&sdio_clk_gate_pins>;
	pinctrl-names = "default", "clk-gate";
	bus-width = <4>;
	cap-sd-highspeed;
//	sd-uhs-sdr12;
//	sd-uhs-sdr25;
//	sd-uhs-sdr50;
//	sd-uhs-sdr104;
	non-removable;
	max-frequency = <200000000>;
	disable-wp;
	cap-sdio-irq;
	keep-power-in-suspend;
	card_type = <3>;

//	vmmc-supply = <&VCC_3_3V>;
//	vqmmc-supply = <&VCC_1_8V>;
};

&saradc {
	status = "okay";
};

&spicc0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&spicc0_led_pins_a>;
	//cs-gpios = <&gpio GPIOA_8 0>;
	spidev@0 {
		compatible = "rohm,dh2228fv";
		status = "okay";
		reg = <0>;
		spi-max-frequency = <3340000>;
	};
};

&pwm_ab {
	status = "okay";
};
