/*
 * Abilis Systems TB100 SOC device tree
 *
 * Copyright (C) Abilis Systems 2013
 *
 * Author: Christian Ruppert <christian.ruppert@abilis.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.
 *
 * 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.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 */

/include/ "abilis_tb10x.dtsi"


/ {
	soc100 {
		bus-frequency	= <166666666>;

		pll0: oscillator {
			clock-frequency  = <1000000000>;
		};
		cpu_clk: clkdiv_cpu {
			clock-mult = <1>;
			clock-div = <2>;
		};
		ahb_clk: clkdiv_ahb {
			clock-mult = <1>;
			clock-div = <6>;
		};

		iomux: iomux@FF10601c {
			/* Port 1 */
			pctl_tsin_s0: pctl-tsin-s0 {   /* Serial TS-in 0 */
				abilis,function = "mis0";
			};
			pctl_tsin_s1: pctl-tsin-s1 {   /* Serial TS-in 1 */
				abilis,function = "mis1";
			};
			pctl_gpio_a: pctl-gpio-a {     /* GPIO bank A */
				abilis,function = "gpioa";
			};
			pctl_tsin_p1: pctl-tsin-p1 {   /* Parallel TS-in 1 */
				abilis,function = "mip1";
			};
			/* Port 2 */
			pctl_tsin_s2: pctl-tsin-s2 {   /* Serial TS-in 2 */
				abilis,function = "mis2";
			};
			pctl_tsin_s3: pctl-tsin-s3 {   /* Serial TS-in 3 */
				abilis,function = "mis3";
			};
			pctl_gpio_c: pctl-gpio-c {     /* GPIO bank C */
				abilis,function = "gpioc";
			};
			pctl_tsin_p3: pctl-tsin-p3 {   /* Parallel TS-in 3 */
				abilis,function = "mip3";
			};
			/* Port 3 */
			pctl_tsin_s4: pctl-tsin-s4 {   /* Serial TS-in 4 */
				abilis,function = "mis4";
			};
			pctl_tsin_s5: pctl-tsin-s5 {   /* Serial TS-in 5 */
				abilis,function = "mis5";
			};
			pctl_gpio_e: pctl-gpio-e {     /* GPIO bank E */
				abilis,function = "gpioe";
			};
			pctl_tsin_p5: pctl-tsin-p5 {   /* Parallel TS-in 5 */
				abilis,function = "mip5";
			};
			/* Port 4 */
			pctl_tsin_s6: pctl-tsin-s6 {   /* Serial TS-in 6 */
				abilis,function = "mis6";
			};
			pctl_tsin_s7: pctl-tsin-s7 {   /* Serial TS-in 7 */
				abilis,function = "mis7";
			};
			pctl_gpio_g: pctl-gpio-g {     /* GPIO bank G */
				abilis,function = "gpiog";
			};
			pctl_tsin_p7: pctl-tsin-p7 {   /* Parallel TS-in 7 */
				abilis,function = "mip7";
			};
			/* Port 5 */
			pctl_gpio_j: pctl-gpio-j {     /* GPIO bank J */
				abilis,function = "gpioj";
			};
			pctl_gpio_k: pctl-gpio-k {     /* GPIO bank K */
				abilis,function = "gpiok";
			};
			pctl_ciplus: pctl-ciplus {     /* CI+ interface */
				abilis,function = "ciplus";
			};
			pctl_mcard: pctl-mcard {       /* M-Card interface */
				abilis,function = "mcard";
			};
			/* Port 6 */
			pctl_tsout_p: pctl-tsout-p {   /* Parallel TS-out */
				abilis,function = "mop";
			};
			pctl_tsout_s0: pctl-tsout-s0 { /* Serial TS-out 0 */
				abilis,function = "mos0";
			};
			pctl_tsout_s1: pctl-tsout-s1 { /* Serial TS-out 1 */
				abilis,function = "mos1";
			};
			pctl_tsout_s2: pctl-tsout-s2 { /* Serial TS-out 2 */
				abilis,function = "mos2";
			};
			pctl_tsout_s3: pctl-tsout-s3 { /* Serial TS-out 3 */
				abilis,function = "mos3";
			};
			/* Port 7 */
			pctl_uart0: pctl-uart0 {       /* UART 0 */
				abilis,function = "uart0";
			};
			pctl_uart1: pctl-uart1 {       /* UART 1 */
				abilis,function = "uart1";
			};
			pctl_gpio_l: pctl-gpio-l {     /* GPIO bank L */
				abilis,function = "gpiol";
			};
			pctl_gpio_m: pctl-gpio-m {     /* GPIO bank M */
				abilis,function = "gpiom";
			};
			/* Port 8 */
			pctl_spi3: pctl-spi3 {
				abilis,function = "spi3";
			};
			/* Port 9 */
			pctl_spi1: pctl-spi1 {
				abilis,function = "spi1";
			};
			pctl_gpio_n: pctl-gpio-n {
				abilis,function = "gpion";
			};
			/* Unmuxed GPIOs */
			pctl_gpio_b: pctl-gpio-b {
				abilis,function = "gpiob";
			};
			pctl_gpio_d: pctl-gpio-d {
				abilis,function = "gpiod";
			};
			pctl_gpio_f: pctl-gpio-f {
				abilis,function = "gpiof";
			};
			pctl_gpio_h: pctl-gpio-h {
				abilis,function = "gpioh";
			};
			pctl_gpio_i: pctl-gpio-i {
				abilis,function = "gpioi";
			};
		};

		gpioa: gpio@FF140000 {
			compatible = "abilis,tb10x-gpio";
			interrupt-controller;
			#interrupt-cells = <1>;
			interrupt-parent = <&tb10x_ictl>;
			interrupts = <27 2>;
			reg = <0xFF140000 0x1000>;
			gpio-controller;
			#gpio-cells = <2>;
			abilis,ngpio = <3>;
			gpio-ranges = <&iomux 0 0 0>;
			gpio-ranges-group-names = "gpioa";
		};
		gpiob: gpio@FF141000 {
			compatible = "abilis,tb10x-gpio";
			interrupt-controller;
			#interrupt-cells = <1>;
			interrupt-parent = <&tb10x_ictl>;
			interrupts = <27 2>;
			reg = <0xFF141000 0x1000>;
			gpio-controller;
			#gpio-cells = <2>;
			abilis,ngpio = <2>;
			gpio-ranges = <&iomux 0 0 0>;
			gpio-ranges-group-names = "gpiob";
		};
		gpioc: gpio@FF142000 {
			compatible = "abilis,tb10x-gpio";
			interrupt-controller;
			#interrupt-cells = <1>;
			interrupt-parent = <&tb10x_ictl>;
			interrupts = <27 2>;
			reg = <0xFF142000 0x1000>;
			gpio-controller;
			#gpio-cells = <2>;
			abilis,ngpio = <3>;
			gpio-ranges = <&iomux 0 0 0>;
			gpio-ranges-group-names = "gpioc";
		};
		gpiod: gpio@FF143000 {
			compatible = "abilis,tb10x-gpio";
			interrupt-controller;
			#interrupt-cells = <1>;
			interrupt-parent = <&tb10x_ictl>;
			interrupts = <27 2>;
			reg = <0xFF143000 0x1000>;
			gpio-controller;
			#gpio-cells = <2>;
			abilis,ngpio = <2>;
			gpio-ranges = <&iomux 0 0 0>;
			gpio-ranges-group-names = "gpiod";
		};
		gpioe: gpio@FF144000 {
			compatible = "abilis,tb10x-gpio";
			interrupt-controller;
			#interrupt-cells = <1>;
			interrupt-parent = <&tb10x_ictl>;
			interrupts = <27 2>;
			reg = <0xFF144000 0x1000>;
			gpio-controller;
			#gpio-cells = <2>;
			abilis,ngpio = <3>;
			gpio-ranges = <&iomux 0 0 0>;
			gpio-ranges-group-names = "gpioe";
		};
		gpiof: gpio@FF145000 {
			compatible = "abilis,tb10x-gpio";
			interrupt-controller;
			#interrupt-cells = <1>;
			interrupt-parent = <&tb10x_ictl>;
			interrupts = <27 2>;
			reg = <0xFF145000 0x1000>;
			gpio-controller;
			#gpio-cells = <2>;
			abilis,ngpio = <2>;
			gpio-ranges = <&iomux 0 0 0>;
			gpio-ranges-group-names = "gpiof";
		};
		gpiog: gpio@FF146000 {
			compatible = "abilis,tb10x-gpio";
			interrupt-controller;
			#interrupt-cells = <1>;
			interrupt-parent = <&tb10x_ictl>;
			interrupts = <27 2>;
			reg = <0xFF146000 0x1000>;
			gpio-controller;
			#gpio-cells = <2>;
			abilis,ngpio = <3>;
			gpio-ranges = <&iomux 0 0 0>;
			gpio-ranges-group-names = "gpiog";
		};
		gpioh: gpio@FF147000 {
			compatible = "abilis,tb10x-gpio";
			interrupt-controller;
			#interrupt-cells = <1>;
			interrupt-parent = <&tb10x_ictl>;
			interrupts = <27 2>;
			reg = <0xFF147000 0x1000>;
			gpio-controller;
			#gpio-cells = <2>;
			abilis,ngpio = <2>;
			gpio-ranges = <&iomux 0 0 0>;
			gpio-ranges-group-names = "gpioh";
		};
		gpioi: gpio@FF148000 {
			compatible = "abilis,tb10x-gpio";
			interrupt-controller;
			#interrupt-cells = <1>;
			interrupt-parent = <&tb10x_ictl>;
			interrupts = <27 2>;
			reg = <0xFF148000 0x1000>;
			gpio-controller;
			#gpio-cells = <2>;
			abilis,ngpio = <12>;
			gpio-ranges = <&iomux 0 0 0>;
			gpio-ranges-group-names = "gpioi";
		};
		gpioj: gpio@FF149000 {
			compatible = "abilis,tb10x-gpio";
			interrupt-controller;
			#interrupt-cells = <1>;
			interrupt-parent = <&tb10x_ictl>;
			interrupts = <27 2>;
			reg = <0xFF149000 0x1000>;
			gpio-controller;
			#gpio-cells = <2>;
			abilis,ngpio = <32>;
			gpio-ranges = <&iomux 0 0 0>;
			gpio-ranges-group-names = "gpioj";
		};
		gpiok: gpio@FF14a000 {
			compatible = "abilis,tb10x-gpio";
			interrupt-controller;
			#interrupt-cells = <1>;
			interrupt-parent = <&tb10x_ictl>;
			interrupts = <27 2>;
			reg = <0xFF14A000 0x1000>;
			gpio-controller;
			#gpio-cells = <2>;
			abilis,ngpio = <22>;
			gpio-ranges = <&iomux 0 0 0>;
			gpio-ranges-group-names = "gpiok";
		};
		gpiol: gpio@FF14b000 {
			compatible = "abilis,tb10x-gpio";
			interrupt-controller;
			#interrupt-cells = <1>;
			interrupt-parent = <&tb10x_ictl>;
			interrupts = <27 2>;
			reg = <0xFF14B000 0x1000>;
			gpio-controller;
			#gpio-cells = <2>;
			abilis,ngpio = <4>;
			gpio-ranges = <&iomux 0 0 0>;
			gpio-ranges-group-names = "gpiol";
		};
		gpiom: gpio@FF14c000 {
			compatible = "abilis,tb10x-gpio";
			interrupt-controller;
			#interrupt-cells = <1>;
			interrupt-parent = <&tb10x_ictl>;
			interrupts = <27 2>;
			reg = <0xFF14C000 0x1000>;
			gpio-controller;
			#gpio-cells = <2>;
			abilis,ngpio = <4>;
			gpio-ranges = <&iomux 0 0 0>;
			gpio-ranges-group-names = "gpiom";
		};
		gpion: gpio@FF14d000 {
			compatible = "abilis,tb10x-gpio";
			interrupt-controller;
			#interrupt-cells = <1>;
			interrupt-parent = <&tb10x_ictl>;
			interrupts = <27 2>;
			reg = <0xFF14D000 0x1000>;
			gpio-controller;
			#gpio-cells = <2>;
			abilis,ngpio = <5>;
			gpio-ranges = <&iomux 0 0 0>;
			gpio-ranges-group-names = "gpion";
		};
	};
};
