/*
 * Samsung's Exynos5260 SoC pin-mux and pin-config device tree source
 *
 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 *
 * Samsung's Exynos5260 SoC pin-mux and pin-config options are listed as device
 * tree nodes are listed in this file.
 *
 * 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.
*/

#define PIN_PULL_NONE	0
#define PIN_PULL_DOWN	1
#define PIN_PULL_UP	3

&pinctrl_0 {
	gpa0: gpa0 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpa1: gpa1 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpa2: gpa2 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpb0: gpb0 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpb1: gpb1 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpb2: gpb2 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpb3: gpb3 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpb4: gpb4 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpb5: gpb5 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpd0: gpd0 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpd1: gpd1 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpd2: gpd2 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpe0: gpe0 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpe1: gpe1 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpf0: gpf0 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpf1: gpf1 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpk0: gpk0 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpx0: gpx0 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpx1: gpx1 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpx2: gpx2 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpx3: gpx3 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	uart0_data: uart0-data {
		samsung,pins = "gpa0-0", "gpa0-1";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_NONE>;
		samsung,pin-drv = <0>;
	};

	uart0_fctl: uart0-fctl {
		samsung,pins = "gpa0-2", "gpa0-3";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_NONE>;
		samsung,pin-drv = <0>;
	};

	uart1_data: uart1-data {
		samsung,pins = "gpa1-0", "gpa1-1";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_NONE>;
		samsung,pin-drv = <0>;
	};

	uart1_fctl: uart1-fctl {
		samsung,pins = "gpa1-2", "gpa1-3";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_NONE>;
		samsung,pin-drv = <0>;
	};

	uart2_data: uart2-data {
		samsung,pins = "gpa1-4", "gpa1-5";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_NONE>;
		samsung,pin-drv = <0>;
	};

	spi0_bus: spi0-bus {
		samsung,pins = "gpa2-0", "gpa2-2", "gpa2-3";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <0>;
	};

	spi1_bus: spi1-bus {
		samsung,pins = "gpa2-4", "gpa2-6", "gpa2-7";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <0>;
	};

	usb3_vbus0_en: usb3-vbus0-en {
		samsung,pins = "gpa2-4";
		samsung,pin-function = <1>;
		samsung,pin-pud = <PIN_PULL_NONE>;
		samsung,pin-drv = <0>;
	};

	i2s1_bus: i2s1-bus {
		samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
				"gpb0-4";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_NONE>;
		samsung,pin-drv = <0>;
	};

	pcm1_bus: pcm1-bus {
		samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
				"gpb0-4";
		samsung,pin-function = <3>;
		samsung,pin-pud = <PIN_PULL_NONE>;
		samsung,pin-drv = <0>;
	};

	spdif1_bus: spdif1-bus {
		samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2";
		samsung,pin-function = <4>;
		samsung,pin-pud = <PIN_PULL_NONE>;
		samsung,pin-drv = <0>;
	};

	spi2_bus: spi2-bus {
		samsung,pins = "gpb1-0", "gpb1-2", "gpb1-3";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <0>;
	};

	i2c0_hs_bus: i2c0-hs-bus {
		samsung,pins = "gpb3-0", "gpb3-1";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <0>;
	};

	i2c1_hs_bus: i2c1-hs-bus {
		samsung,pins = "gpb3-2", "gpb3-3";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <0>;
	};

	i2c2_hs_bus: i2c2-hs-bus {
		samsung,pins = "gpb3-4", "gpb3-5";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <0>;
	};

	i2c3_hs_bus: i2c3-hs-bus {
		samsung,pins = "gpb3-6", "gpb3-7";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <0>;
	};

	i2c4_bus: i2c4-bus {
		samsung,pins = "gpb4-0", "gpb4-1";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <0>;
	};

	i2c5_bus: i2c5-bus {
		samsung,pins = "gpb4-2", "gpb4-3";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <0>;
	};

	i2c6_bus: i2c6-bus {
		samsung,pins = "gpb4-4", "gpb4-5";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <0>;
	};

	i2c7_bus: i2c7-bus {
		samsung,pins = "gpb4-6", "gpb4-7";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <0>;
	};

	i2c8_bus: i2c8-bus {
		samsung,pins = "gpb5-0", "gpb5-1";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <0>;
	};

	i2c9_bus: i2c9-bus {
		samsung,pins = "gpb5-2", "gpb5-3";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <0>;
	};

	i2c10_bus: i2c10-bus {
		samsung,pins = "gpb5-4", "gpb5-5";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <0>;
	};

	i2c11_bus: i2c11-bus {
		samsung,pins = "gpb5-6", "gpb5-7";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <0>;
	};

	cam_gpio_a: cam-gpio-a {
		samsung,pins = "gpe0-0", "gpe0-1", "gpe0-2", "gpe0-3",
			"gpe0-4", "gpe0-5", "gpe0-6", "gpe0-7",
			"gpe1-0", "gpe1-1";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_NONE>;
		samsung,pin-drv = <0>;
	};

	cam_gpio_b: cam-gpio-b {
		samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3",
			"gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
		samsung,pin-function = <3>;
		samsung,pin-pud = <PIN_PULL_NONE>;
		samsung,pin-drv = <0>;
	};

	cam_i2c1_bus: cam-i2c1-bus {
		samsung,pins = "gpf0-2", "gpf0-3";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <0>;
	};

	cam_i2c0_bus: cam-i2c0-bus {
		samsung,pins = "gpf0-0", "gpf0-1";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <0>;
	};

	cam_spi0_bus: cam-spi0-bus {
		samsung,pins = "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_NONE>;
		samsung,pin-drv = <0>;
	};

	cam_spi1_bus: cam-spi1-bus {
		samsung,pins = "gpf1-4", "gpf1-5", "gpf1-6", "gpf1-7";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_NONE>;
		samsung,pin-drv = <0>;
	};
};

&pinctrl_1 {
	gpc0: gpc0 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpc1: gpc1 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpc2: gpc2 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpc3: gpc3 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpc4: gpc4 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	sd0_clk: sd0-clk {
		samsung,pins = "gpc0-0";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_NONE>;
		samsung,pin-drv = <3>;
	};

	sd0_cmd: sd0-cmd {
		samsung,pins = "gpc0-1";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_NONE>;
		samsung,pin-drv = <3>;
	};

	sd0_bus1: sd0-bus-width1 {
		samsung,pins = "gpc0-2";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <3>;
	};

	sd0_bus4: sd0-bus-width4 {
		samsung,pins = "gpc0-3", "gpc0-4", "gpc0-5";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <3>;
	};

	sd0_bus8: sd0-bus-width8 {
		samsung,pins = "gpc3-0", "gpc3-1", "gpc3-2", "gpc3-3";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <3>;
	};

	sd0_rdqs: sd0-rdqs {
		samsung,pins = "gpc0-6";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <3>;
	};

	sd1_clk: sd1-clk {
		samsung,pins = "gpc1-0";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_NONE>;
		samsung,pin-drv = <3>;
	};

	sd1_cmd: sd1-cmd {
		samsung,pins = "gpc1-1";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_NONE>;
		samsung,pin-drv = <3>;
	};

	sd1_bus1: sd1-bus-width1 {
		samsung,pins = "gpc1-2";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <3>;
	};

	sd1_bus4: sd1-bus-width4 {
		samsung,pins = "gpc1-3", "gpc1-4", "gpc1-5";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <3>;
	};

	sd1_bus8: sd1-bus-width8 {
		samsung,pins = "gpc4-0", "gpc4-1", "gpc4-2", "gpc4-3";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <3>;
	};

	sd2_clk: sd2-clk {
		samsung,pins = "gpc2-0";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_NONE>;
		samsung,pin-drv = <3>;
	};

	sd2_cmd: sd2-cmd {
		samsung,pins = "gpc2-1";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_NONE>;
		samsung,pin-drv = <3>;
	};

	sd2_cd: sd2-cd {
		samsung,pins = "gpc2-2";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <3>;
	};

	sd2_bus1: sd2-bus-width1 {
		samsung,pins = "gpc2-3";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <3>;
	};

	sd2_bus4: sd2-bus-width4 {
		samsung,pins = "gpc2-4", "gpc2-5", "gpc2-6";
		samsung,pin-function = <2>;
		samsung,pin-pud = <PIN_PULL_UP>;
		samsung,pin-drv = <3>;
	};
};

&pinctrl_2 {
	gpz0: gpz0 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};

	gpz1: gpz1 {
		gpio-controller;
		#gpio-cells = <2>;

		interrupt-controller;
		#interrupt-cells = <2>;
	};
};
