/*
 * Copyright (C) 2013 Ambarella,Inc. - http://www.ambarella.com/
 * Author: Cao Rongrong <rrcao@ambarella.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

/include/ "skeleton.dtsi"

/ {
	compatible = "ambarella,s3";
	interrupt-parent = <&intc>;

	aliases {
		serial0 = &uart0;
		serial1 = &uart1;
		nand = &nand0;
		spinor = &spinor0;
		emmc = &sdmmc0;
		i2c0 = &i2c0;
		i2c1 = &i2c1;
		i2c2 = &i2c2;
		spi0 = &spi0;
		spi1 = &spi1;
		ethernet0 = &mac0;
	};

	/* the memory node will be overwritten in Amboot,
	 * here is just the default value. */
	memory {
		device_type = "memory";
		reg = <0x00200000 0x07e00000>; /* 126M */
	};

	chosen {
		linux,stdout-path = &uart0;
	};

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;
		cpu@a00 {
			device_type = "cpu";
			compatible = "arm,cortex-a9";
			reg = <0xa00>;
		};
		cpu@a01 {
			device_type = "cpu";
			compatible = "arm,cortex-a9";
			reg = <0xa01>;
		};
	};

	apb@e8000000 {	/* APB */
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0xe8000000 0x01000000>;
		ranges;

		timer7: timer@e800b064 {
			compatible = "ambarella,clock-source";
			reg = <0xe800b064 0x10 0xe800b030 0x4>;
			interrupts = <13 0x1>;
			ctrl-offset = <24>; /* bit offset in timer-ctrl reg */
		};

		timer8: timer@e800b074 {
			compatible = "ambarella,clock-event";
			reg = <0xe800b074 0x10 0xe800b030 0x4>;
			interrupts = <14 0x1>;
			ctrl-offset = <28>; /* bit offset in timer-ctrl reg */
		};

		/* timer06 and timer16 */
		local_timer: timer@e800b054 {
			compatible = "ambarella,local-clock-event";
			reg = <0xe800b054 0x10 0xe800b030 0x4 0xe800f054 0x10 0xe800f030 0x4>;
			interrupts = <12 0x1 28 0x1>;
			ctrl-offset = <20 20>; /* bit offset in timer-ctrl reg */
		};

		uart0: uart@e8005000 {
			compatible = "ambarella,uart";
			reg = <0xe8005000 0x1000>;
			interrupts = <108 0x4>;
			pinctrl-names = "default";
			pinctrl-0 = <&uart0_pins>;
			status = "ok";
			/* amb,tx-fifo-fix; */
		};

		i2c0: i2c@e8003000 {
			compatible = "ambarella,i2c";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0xe8003000 0x1000>;
			interrupts = <85 0x4>;
			pinctrl-names = "default";
			pinctrl-0 = <&i2c0_pins>;
			clock-frequency = <100000>;
			amb,i2c-class = <0x81>;
			amb,bulk-num = <60>;
			status = "disabled";
	        };

		i2c1: i2c@e8001000 {
			compatible = "ambarella,i2c";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0xe8001000 0x1000>;
			interrupts = <84 0x4>;
			pinctrl-names = "default";
			pinctrl-0 = <&i2c1_pins>;
			clock-frequency = <100000>;
			amb,i2c-class = <0x08>;
			amb,bulk-num = <60>;
			status = "disabled";
	        };

		i2c2: i2c@e8007000 {
			compatible = "ambarella,i2c";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0xe8007000 0x1000>;
			interrupts = <83 0x4>;
			pinctrl-names = "default";
			pinctrl-0 = <&i2c2_pins>;
			clock-frequency = <100000>;
			amb,i2c-class = <0x81>;
			amb,bulk-num = <60>;
			status = "disabled";
	        };

		adc@e801d000 {
			compatible = "ambarella,adc";
			reg = <0xe801d000 0x1000>;
			interrupts = <103 0x4>;
			clock-frequency = <3000000>;
		};

		ir@e8006000 {
			compatible = "ambarella,ir";
			reg = <0xe8006000 0x1000>;
			interrupts = <86 0x4>;
			pinctrl-names = "default";
			pinctrl-0 = <&ir_pins>;
		};

		wdt@e800c000 {
			compatible = "ambarella,wdt";
			reg = <0xe800c000 0x1000>;
			/* interrupts = <105 0x4>; */
			timeout-sec = <15>;
		};

		rtc@e8015000 {
			compatible = "ambarella,rtc";
			reg = <0xe8015000 0x1000>;
		};

		pwm: pwm@e8008000 {
			compatible = "ambarella,pwm";
			reg = <0xe8008000 0x1000>;
			#pwm-cells = <3>;
		};

		pinctrl: pinctrl@e8009000 {
			compatible = "ambarella,pinctrl", "simple-bus";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0xe8009000 0x1000>,
			      <0xe800a000 0x1000>,
			      <0xe800e000 0x1000>,
			      <0xe8010000 0x1000>,
			      <0xe8011000 0x1000>,
			      <0xe800d000 0x1000>,
			      <0xe8014000 0x1000>,
			      <0xe8016000 0x1000>;
			reg-names = "gpio0", "gpio1", "gpio2", "gpio3",
				    "gpio4", "gpio5", "gpio6", "iomux";
			#gpio-range-cells = <3>;

			gpio: gpio@0 {
				compatible = "ambarella,gpio";
				/* gpio interrupts to vic */
				interrupts = <124 0x4>, <123 0x4>, <122 0x4>,
					     <121 0x4>, <120 0x4>, <119 0x4>,
					     <118 0x4>;
				gpio-controller;
				#gpio-cells = <2>;
				gpio-ranges = <&pinctrl 0 0 224>;
				interrupt-controller;
				#interrupt-cells = <2>;
			};

			uart0_pins: uart0@0 {
				reg = <0>;
				amb,pinmux-ids = <0x1024 0x1025>;
			};

			uart1_pins_a: uart1@0 {
				reg = <0>;
				amb,pinmux-ids = <0x2008 0x2009>;
			};

			uart1_pins_b: uart1@1 {
				reg = <1>;
				amb,pinmux-ids = <0x301b 0x301c>;
			};

			uart1_pins_c: uart1@2 {
				reg = <2>;
				amb,pinmux-ids = <0x10c3 0x10c4>;
			};

			uart1_flow_pins_a: uart1_flow@0 {
				reg = <0>;
				amb,pinmux-ids = <0x200a 0x200b>;
			};

			uart1_flow_pins_b: uart1_flow@1 {
				reg = <1>;
				amb,pinmux-ids = <0x301d 0x301e>;
			};

			uart1_flow_pins_c: uart1_flow@2 {
				reg = <2>;
				amb,pinmux-ids = <0x10c5 0x10c6>;
			};

			nand0_pins: nand0@0 {
				reg = <0>;
				amb,pinmux-ids = <0x2073 0x2074 0x2075 0x207a
						  0x207b 0x207c 0x207d 0x207e
						  0x207f 0x2080 0x2081 0x2082
						  0x2083 0x2084 0x2085>;
			};

			spinor0_pins: spinor0@0 {
				reg = <0>;
				amb,pinmux-ids = <0x3076 0x3077 0x3078 0x3079
						  0x307d 0x307e 0x307f 0x3080
						  0x3081 0x3082 0x3083 0x3084
						  0x3086 0x3087 0x3088 0x3089
						  0x308c>;
			};

			sdmmc0_pins_1bit: sdmmc0@0 {
				reg = <0>;
				amb,pinmux-ids = <0x2076 0x2077 0x2078 0x2079
						  0x2086 0x209a>;
			};

			sdmmc0_pins_4bit: sdmmc0@1 {
				reg = <1>;
				amb,pinmux-ids = <0x2076 0x2077 0x2078 0x2079
						  0x2086 0x2087 0x2088 0x2089
						  0x209a>;
			};

			sdmmc0_pins_8bit: sdmmc0@2 {
				reg = <2>;
				amb,pinmux-ids = <0x2076 0x2077 0x2078 0x2079
						  0x2086 0x2087 0x2088 0x2089
						  0x208a 0x208b 0x208c 0x208d
						  0x209a>;
			};

			sdmmc1_pins_1bit: sdmmc1@0 {
				reg = <0>;
				amb,pinmux-ids = <0x5000 0x5001 0x5002 0x5003
						  0x5004>;
			};

			sdmmc1_pins_4bit: sdmmc1@1 {
				reg = <1>;
				amb,pinmux-ids = <0x5000 0x5001 0x5002 0x5003
						  0x5004 0x5005 0x5006 0x5007>;
			};

			sdmmc2_pins_1bit: sdmmc2@0 {
				reg = <0>;
				amb,pinmux-ids = <0x208e 0x208f 0x2090 0x2094
						  0x2095 0x209b>;
			};

			sdmmc2_pins_4bit: sdmmc2@1 {
				reg = <1>;
				amb,pinmux-ids = <0x208e 0x208f 0x2090 0x2091
						  0x2092 0x2093 0x2094 0x2095
						  0x209b>;
			};

			sdmmc2_pins_8bit: sdmmc2@2 {
				reg = <2>;
				amb,pinmux-ids = <0x208e 0x208f 0x2090 0x2091
						  0x2092 0x2093 0x2094 0x2095
						  0x2096 0x2097 0x2098 0x2099
						  0x209b>;
			};

			eth_gmii_pins: eth0@0 {
				reg = <0>;
				amb,pinmux-ids = <0x102b 0x102c 0x102d 0x102e 0x102f
						  0x1030 0x1031 0x1032 0x1033 0x1034
						  0x1035 0x1036 0x1037 0x1038 0x1039
						  0x103a 0x103b 0x103c 0x103d 0x103e
						  0x103f 0x1040 0x1041 0x1042 0x1043
						  0x1044 0x1045 0x1046>;
			};

			eth_mii_pins: eth0@1 {
				reg = <1>;
				amb,pinmux-ids = <0x202b 0x202c 0x202d 0x202e 0x202f
						  0x2030 0x2035 0x2036 0x2037 0x2038
						  0x203d 0x203e 0x203f 0x2040 0x2041
						  0x2042 0x2043 0x2044 0x2045 0x2046>;
			};

			eth_rmii_pins: eth0@2 {
				reg = <2>;
				amb,pinmux-ids = <0x302b 0x302d 0x302e 0x3035 0x3036
						  0x303f 0x3041 0x3042 0x3043 0x3044
						  0x3045 0x3046>;
			};

			eth_rgmii_pins: eth0@3 {
				reg = <3>;
				amb,pinmux-ids = <0x402b 0x402d 0x402e 0x402f 0x4030
						  0x4035 0x4036 0x4037 0x4038 0x403f
						  0x4043 0x4044 0x4045 0x4046>;
			};

			i2c0_pins: i2c0@0 {
				reg = <0>;
				amb,pinmux-ids = <0x1014 0x1015>;
			};

			i2c1_pins: i2c1@0 {
				reg = <0>;
				amb,pinmux-ids = <0x1016 0x1017>;
			};

			i2c2_pins: i2c2@0 {
				reg = <0>;
				amb,pinmux-ids = <0x1018 0x1019>;
			};

			spi0_pins: spi0@0 {
				reg = <0>;
				amb,pinmux-ids = <0x101b 0x101c 0x101d>;
			};

			spi1_pins_a: spi1@0 {
				reg = <0>;
				amb,pinmux-ids = <0x2000 0x2001 0x2002>;
			};

			spi1_pins_b: spi1@1 {
				reg = <1>;
				amb,pinmux-ids = <0x20c3 0x20c4 0x20c5>;
			};

			spi_slave_pins: spi_slave@0 {
				reg = <0>;
				amb,pinmux-ids = <0x1020 0x1021 0x1022 0x1023>;
			};

			ir_pins: ir0@0 {
				reg = <0>;
				amb,pinmux-ids = <0x101a>;
			};

			i2s0_pins: i2s0@0 {
				reg = <0>;
				amb,pinmux-ids = <0x1026 0x1027 0x1028 0x1029 0x102a>;
			};

			usb_host0_pins_a: uhc0@0 { /* USB0: host/device configurable */
				reg = <0>;
				amb,pinmux-ids = <0x300c 0x300e>;
			};

			usb_host0_pins_b: uhc0@1 { /* USB0: host/device configurable */
				reg = <1>;
				amb,pinmux-ids = <0x204b 0x204d>;
			};

			usb_host1_pins_a: uhc1@0 { /* USB1: host only */
				reg = <0>;
				amb,pinmux-ids = <0x300d 0x300f>;
			};

			usb_host1_pins_b: uhc1@1 { /* USB1: host only */
				reg = <1>;
				amb,pinmux-ids = <0x204c 0x204e>;
			};

			pwm0_pins_a: pwm0@0 {
				reg = <0>;
				amb,pinmux-ids = <0x4004>;
			};

			pwm0_pins_b: pwm0@1 {
				reg = <1>;
				amb,pinmux-ids = <0x10bc>;
			};

			pwm1_pins: pwm1@0 {
				reg = <0>;
				amb,pinmux-ids = <0x4005>;
			};

			pwm2_pins: pwm2@0 {
				reg = <0>;
				amb,pinmux-ids = <0x4006>;
			};

			pwm3_pins: pwm3@0 {
				reg = <0>;
				amb,pinmux-ids = <0x4007>;
			};
		};
	};

	ahb@e0000000 {	/* AHB */
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0xe0000000 0x01000000>;
		ranges;

		intc: interrupt-controller@e0003000 {
			compatible = "ambarella,vic";
			interrupt-controller;
			#interrupt-cells = <2>;
			reg = <0xe0003000 0x1000>,
			      <0xe0010000 0x1000>,
			      <0xe001c000 0x1000>,
			      <0xe0011000 0x1000>;
		};

		dma: dma@e0005000 {
			compatible = "ambarella,dma";
			reg = <0xe0005000 0x1000>;
			interrupts = <69 0x4>;
			#dma-cells = <2>;
			dma-channels = <8>;
			dma-requests = <14>;
			dma-trans-type = <1 1 0 0 1 1 1 1>; /* 0-memcpy ,1-slave*/
			amb,copy-align = <0>;
			/* support pause/resume/stop */
			amb,support-prs;
		};

		nand0: nand@e0001000 {
			compatible = "ambarella,nand";
			#address-cells = <1>;
			#size-cells = <1>;
			reg = <0xe0001000 0x1000>, /* fio reg address */
			      <0xe0012000 0x1000>, /* fdma reg address */
			      <0xe0000000 0x4>;    /* fifo base */
			interrupts = <72 0x4>,	/* fio_cmd_irq */
				     <73 0x4>,	/* fio_dma_irq */
				     <70 0x4>;	/* fdma_irq */
			pinctrl-names = "default";
			pinctrl-0 = <&nand0_pins>;
			nand-on-flash-bbt;
			amb,enable-wp;
			/* amb,soft-ecc = <1>; */
		};

		spinor0: spinor@e0031000 {
			compatible = "ambarella,spinor";
			reg = <0xe0031000 0x2ff>, /* spi nor controller */
			      <0xe0005300 0x20>;  /* dma reg */
			pinctrl-names = "default";
			pinctrl-0 = <&spinor0_pins>;
			status = "disabled";
		};

		uart1: uart@e0032000 {
			compatible = "ambarella,uart";
			reg = <0xe0032000 0x1000>;
			interrupts = <82 0x4>;
			pinctrl-names = "default";
			pinctrl-0 = <&uart1_pins_c &uart1_flow_pins_c>;
			status = "disabled";
			amb,msr-used;	/* use Modem Status Register */
			amb,txdma-used;
			amb,rxdma-used;
			/* amb,tx-fifo-fix; */
			/* need to select pinctrl setup in board dts */
		};

		i2s0: i2s@e001a000 {
			compatible = "ambarella,i2s";
			reg = <0xe001a000 0x1000>;
			pinctrl-names = "default";
			pinctrl-0 = <&i2s0_pins>;
			amb,i2s-channels = <2>;
			amb,default-mclk = <12288000>;
		};

		udc@e0006000 {
			compatible = "ambarella,udc";
			reg = <0xe0006000 0x2000 0xec1702cc 0x4>;
			interrupts = <68 0x4>;
			amb,usbphy = <&usbphy>;
		};

		ehci@e0018000 {
			compatible = "ambarella,ehci";
			reg = <0xe0018000 0x1000>;
			interrupts = <66 0x4>;
			amb,usbphy = <&usbphy>;
		};

		ohci@e0019000 {
			compatible = "ambarella,ohci";
			reg = <0xe0019000 0x1000>;
			interrupts = <67 0x4>;
			amb,usbphy = <&usbphy>;
		};

		sdmmc0: sdmmc0@e0002000 {
			compatible = "ambarella,sdmmc";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0xe0002000 0x1000>,
			      <0xe0001000 0x80>; /* fio reg address */
			interrupts = <77 0x4>;
			amb,clk-name = "gclk_sd";
			amb,wait-tmo = <10000>; /* in millisecond */
			amb,switch_vol_tmo = <100>;
			amb,max-blk-size = <131072>; /* valid value: 4K<<n */
			pinctrl-names = "default";
			pinctrl-0 = <&sdmmc0_pins_8bit>;
			status = "disabled";

			slot@0 {
				reg = <0>;
				global-id = <0>;
				max-frequency = <48000000>;
				bus-width = <8>;
				amb,caps-adma;
				cap-sdio-irq;
			};
		};

		sdmmc1: sdmmc1@e000c000 {
			compatible = "ambarella,sdmmc";
			reg = <0xe000c000 0x1000>,
			      <0xe0001000 0x80>; /* fio reg address */
			#address-cells = <1>;
			#size-cells = <0>;
			interrupts = <76 0x4>;
			amb,clk-name = "gclk_sdio";
			amb,wait-tmo = <10000>; /* in millisecond */
			amb,switch_vol_tmo = <100>;
			amb,max-blk-size = <131072>; /* valid value: 4K<<n */
			pinctrl-names = "default";
			pinctrl-0 = <&sdmmc1_pins_4bit>;
			status = "disabled";

			slot@0 {
				reg = <0>;
				global-id = <1>;
				max-frequency = <48000000>;
				bus-width = <4>;
				amb,caps-adma;
				cap-sdio-irq;
			};
		};

		sdmmc2: sdmmc2@e001f000 {
			compatible = "ambarella,sdmmc";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0xe001f000 0x1000>,
			      <0xe0001000 0x80>; /* fio reg address */
			interrupts = <75 0x4>;
			amb,clk-name = "gclk_sdxc";
			amb,wait-tmo = <10000>; /* in millisecond */
			amb,switch_vol_tmo = <100>;
			amb,max-blk-size = <131072>; /* valid value: 4K<<n */
			pinctrl-names = "default";
			pinctrl-0 = <&sdmmc2_pins_8bit>;
			status = "disabled";

			slot@0 {
				reg = <0>;
				global-id = <2>;
				max-frequency = <12000000>;
				bus-width = <8>;
				amb,caps-adma;
				cap-sdio-irq;
			};
		};

		mac0: ethernet@e000e000 {
			compatible = "ambarella,eth";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0xe000e000 0x2000>;
			interrupts = <65 0x4>;
			amb,tx-ring-size = <32>;
			amb,rx-ring-size = <64>;
			amb,ipc-tx;
			amb,ipc-rx;
			pinctrl-names = "default";
			pinctrl-0 = <&eth_gmii_pins>;
		};

		spi0: spi@e0020000 {
			compatible = "ambarella,spi";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0xe0020000 0x1000>;
			interrupts = <80 0x4>;
			pinctrl-names = "default";
			pinctrl-0 = <&spi0_pins>;
			amb,clk-freq = <54000000>;
			dmas = <&dma 0 1>,
				   <&dma 1 1>;
			dma-names = "tx", "rx";
		};

		spi1: spi@e0021000 {
			compatible = "ambarella,spi";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0xe0021000 0x1000>;
			interrupts = <79 0x4>;
			pinctrl-names = "default";
			pinctrl-0 = <&spi1_pins_b>;
			amb,clk-freq = <54000000>;
			status = "ok";
		};

		spi_slave@e0026000 {
			compatible = "ambarella,spi-slave";
			reg = <0xe0026000 0x1000>;
			interrupts = <81 0x4>;
			pinctrl-names = "default";
			pinctrl-0 = <&spi_slave_pins>;
			status = "disabled";
		};
	};

	axi@f0000000 {	/* AXI */
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0xf0000000 0x00030000>;
		ranges;

		crypto@f0020000 {
			compatible = "ambarella,crypto";
			reg = <0xf0020000 0x8000>;
			interrupts = <111 0x1>, <112 0x1>, <113 0x1>, <110 0x1>;
			interrupt-names = "aes-irq", "des-irq", "md5-irq", "sha1-irq";
			amb,cap-md5-sha1;
			amb,data-swap;
			amb,reg-64bit;
		};
	};

	rct@ec170000 {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0xec170000 0x1000>;
		ranges;

		usbphy: usbphy@ec170050 {
			compatible = "ambarella,usbphy";
			reg = <0xec170050 0x4 0xe001b00c 0x4 0xec1702c0 0x4>;
			amb,host-phy-num = <2>;
			amb,owner-mask;
			amb,owner-invert;
		};
	};

	iav {
		compatible = "ambarella,iav";
	};

	bogus_bus {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;

		dummycodec: codec@0 {
			compatible = "ambarella,dummycodec";
		};
	};
};
