[PATCH v3 05/13] arm/dt: Tegra: Add pinmux node

Stephen Warren swarren at nvidia.com
Thu Aug 25 19:43:36 EDT 2011


Add a pinmux node to tegra20.dtsi in order to instantiate the future
pinmux device. Add pinmux nodes to Harmony and Seaboard, which detail
the entire initial pinmux configuration. This configuration is identical
to that in board-harmony/seaboard-pinmux.c.

Signed-off-by: Stephen Warren <swarren at nvidia.com>
---
 arch/arm/boot/dts/tegra-harmony.dts  |  243 ++++++++++++++++++++++++++++++++++
 arch/arm/boot/dts/tegra-seaboard.dts |  239 +++++++++++++++++++++++++++++++++
 arch/arm/boot/dts/tegra20.dtsi       |    5 +
 3 files changed, 487 insertions(+), 0 deletions(-)

diff --git a/arch/arm/boot/dts/tegra-harmony.dts b/arch/arm/boot/dts/tegra-harmony.dts
index 2bbe559..a2b8dec 100644
--- a/arch/arm/boot/dts/tegra-harmony.dts
+++ b/arch/arm/boot/dts/tegra-harmony.dts
@@ -30,6 +30,249 @@
 		>;
 	};
 
+	pinmux: pinmux at 70000000 {
+		nvidia,mux-groups {
+			ata {
+				pins = "ata";
+				function = "ide";
+			};
+			atb {
+				pins = "atb", "gma", "gme";
+				function = "sdio4";
+			};
+			atc {
+				pins = "atc";
+				function = "nand";
+			};
+			atd {
+				pins = "atd", "ate", "gmb", "gmd", "spia", "spib";
+				function = "gmi";
+			};
+			cdev1 {
+				pins = "cdev1";
+				function = "plla_out";
+			};
+			cdev2 {
+				pins = "cdev2";
+				function = "pllp_out4";
+				pull-down;
+				tristate;
+			};
+			ck32 {
+				pins = "ck32", "ddrc", "pmca", "pmcb", "pmcc", "pmcd", "pmce", "xm2c", "xm2d";
+				function = "none";
+			};
+			crtp {
+				pins = "crtp";
+				function = "crt";
+				tristate;
+			};
+			csus {
+				pins = "csus";
+				function = "vi_sensor_clk";
+				pull-down;
+				tristate;
+			};
+			dap1 {
+				pins = "dap1";
+				function = "dap1";
+			};
+			dap2 {
+				pins = "dap2";
+				function = "dap2";
+				tristate;
+			};
+			dap3 {
+				pins = "dap3";
+				function = "dap3";
+				tristate;
+			};
+			dap4 {
+				pins = "dap4";
+				function = "dap4";
+				tristate;
+			};
+			ddc {
+				pins = "ddc";
+				function = "i2c2";
+				pull-up;
+			};
+			dta {
+				pins = "dta", "dtd";
+				function = "sdio2";
+				pull-up;
+			};
+			dtb {
+				pins = "dtb";
+				function = "rsvd1";
+			};
+			dtc {
+				pins = "dtc", "dte";
+				function = "rsvd1";
+				tristate;
+			};
+			dtf {
+				pins = "dtf";
+				function = "i2c3";
+				tristate;
+			};
+			gmc {
+				pins = "gmc";
+				function = "uartd";
+			};
+			gpu {
+				pins = "gpu";
+				function = "gmi";
+				tristate;
+			};
+			gpu7 {
+				pins = "gpu7";
+				function = "rtck";
+			};
+			gpv {
+				pins = "gpv", "slxa", "slxk";
+				function = "pcie";
+				tristate;
+			};
+			hdint {
+				pins = "hdint";
+				function = "hdmi";
+				pull-up;
+				tristate;
+			};
+			i2cp {
+				pins = "i2cp", "rm";
+				function = "i2c";
+			};
+			irrx {
+				pins = "irrx", "irtx";
+				function = "uarta";
+				pull-up;
+				tristate;
+			};
+			kbca {
+				pins = "kbca", "kbcb", "kbcc", "kbcd", "kbce", "kbcf";
+				function = "kbc";
+				pull-up;
+			};
+			lcsn {
+				pins = "lcsn", "ldc", "lm1", "lpw1", "lsc1", "lsck", "lsda", "lsdi", "lvp0";
+				function = "displaya";
+				pull-up;
+				tristate;
+			};
+			ld0 {
+				pins = "ld0", "ld1", "ld10", "ld11", "ld12", "ld13", "ld14", "ld15", "ld16", "ld17", "ld2", "ld3", "ld4", "ld5", "ld6", "ld7", "ld8", "ld9", "ldi", "lhp0", "lhp1", "lhp2", "lpp", "lvp1";
+				function = "displaya";
+				pull-down;
+			};
+			lhs {
+				pins = "lhs", "lm0", "lpw0", "lpw2", "lsc0", "lspi", "lvs";
+				function = "displaya";
+				pull-up;
+			};
+			owc {
+				pins = "owc";
+				function = "rsvd2";
+				pull-up;
+				tristate;
+			};
+			pmc {
+				pins = "pmc";
+				function = "pwr_on";
+			};
+			pta {
+				pins = "pta";
+				function = "hdmi";
+			};
+			sdb {
+				pins = "sdb";
+				function = "pwm";
+				tristate;
+			};
+			sdc {
+				pins = "sdc";
+				function = "pwm";
+				pull-up;
+			};
+			sdd {
+				pins = "sdd";
+				function = "pwm";
+				pull-up;
+				tristate;
+			};
+			sdio1 {
+				pins = "sdio1";
+				function = "sdio1";
+				tristate;
+			};
+			slxc {
+				pins = "slxc", "slxd";
+				function = "spdif";
+				tristate;
+			};
+			spdi {
+				pins = "spdi", "spdo", "uac";
+				function = "rsvd2";
+				tristate;
+			};
+			spic {
+				pins = "spic";
+				function = "gmi";
+				pull-up;
+				tristate;
+			};
+			spid {
+				pins = "spid", "spif";
+				function = "spi1";
+				pull-down;
+				tristate;
+			};
+			spie {
+				pins = "spie";
+				function = "spi1";
+				pull-up;
+				tristate;
+			};
+			spig {
+				pins = "spig";
+				function = "spi2_alt";
+				tristate;
+			};
+			spih {
+				pins = "spih";
+				function = "spi2_alt";
+				pull-up;
+				tristate;
+			};
+			uaa {
+				pins = "uaa", "uab";
+				function = "ulpi";
+				pull-up;
+				tristate;
+			};
+			uad {
+				pins = "uad";
+				function = "irda";
+				pull-up;
+				tristate;
+			};
+			uca {
+				pins = "uca", "ucb";
+				function = "uartc";
+				pull-up;
+				tristate;
+			};
+			uda {
+				pins = "uda";
+				function = "ulpi";
+				tristate;
+			};
+		};
+		nvidia,drive-groups {
+		};
+	};
+
 	i2c at 7000c000 {
 		clock-frequency = <400000>;
 
diff --git a/arch/arm/boot/dts/tegra-seaboard.dts b/arch/arm/boot/dts/tegra-seaboard.dts
index ec8f8cf..b0677b2 100644
--- a/arch/arm/boot/dts/tegra-seaboard.dts
+++ b/arch/arm/boot/dts/tegra-seaboard.dts
@@ -24,6 +24,245 @@
 		>;
 	};
 
+	pinmux: pinmux at 70000000 {
+		nvidia,mux-groups {
+			ata {
+				pins = "ata";
+				function = "ide";
+			};
+			atb {
+				pins = "atb", "gma", "gme";
+				function = "sdio4";
+			};
+			atc {
+				pins = "atc";
+				function = "nand";
+			};
+			atd {
+				pins = "atd";
+				function = "gmi";
+			};
+			ate {
+				pins = "ate", "spib";
+				function = "gmi";
+				tristate;
+			};
+			cdev1 {
+				pins = "cdev1";
+				function = "plla_out";
+			};
+			cdev2 {
+				pins = "cdev2";
+				function = "pllp_out4";
+			};
+			ck32 {
+				pins = "ck32", "ddrc", "pmca", "pmcb", "pmcc", "pmcd", "pmce", "xm2c", "xm2d";
+				function = "none";
+			};
+			crtp {
+				pins = "crtp";
+				function = "crt";
+				pull-up;
+				tristate;
+			};
+			csus {
+				pins = "csus";
+				function = "vi_sensor_clk";
+				tristate;
+			};
+			dap1 {
+				pins = "dap1";
+				function = "dap1";
+			};
+			dap2 {
+				pins = "dap2";
+				function = "dap2";
+			};
+			dap3 {
+				pins = "dap3";
+				function = "dap3";
+				tristate;
+			};
+			dap4 {
+				pins = "dap4";
+				function = "dap4";
+			};
+			ddc {
+				pins = "ddc", "owc";
+				function = "rsvd2";
+				tristate;
+			};
+			dta {
+				pins = "dta", "dtb", "dtc", "dtd";
+				function = "vi";
+				pull-down;
+			};
+			dte {
+				pins = "dte";
+				function = "vi";
+				pull-down;
+				tristate;
+			};
+			dtf {
+				pins = "dtf";
+				function = "i2c3";
+			};
+			gmb {
+				pins = "gmb", "spia";
+				function = "gmi";
+				pull-up;
+				tristate;
+			};
+			gmc {
+				pins = "gmc";
+				function = "uartd";
+			};
+			gmd {
+				pins = "gmd";
+				function = "sflash";
+			};
+			gpu {
+				pins = "gpu";
+				function = "pwm";
+			};
+			gpu7 {
+				pins = "gpu7";
+				function = "rtck";
+			};
+			gpv {
+				pins = "gpv";
+				function = "pcie";
+				tristate;
+			};
+			hdint {
+				pins = "hdint", "lsc1", "lsck", "lsda";
+				function = "hdmi";
+				tristate;
+			};
+			i2cp {
+				pins = "i2cp", "rm";
+				function = "i2c";
+			};
+			irrx {
+				pins = "irrx", "irtx";
+				function = "uartb";
+			};
+			kbca {
+				pins = "kbca", "kbcb", "kbcc", "kbcd", "kbce", "kbcf";
+				function = "kbc";
+				pull-up;
+			};
+			lcsn {
+				pins = "lcsn", "ldc", "lpw1", "lsdi", "lvp0";
+				function = "rsvd4";
+				tristate;
+			};
+			ld0 {
+				pins = "ld0", "ld1", "ld10", "ld11", "ld12", "ld13", "ld14", "ld15", "ld16", "ld17", "ld2", "ld3", "ld4", "ld5", "ld6", "ld7", "ld8", "ld9", "ldi", "lhp0", "lhp1", "lhp2", "lhs", "lpp", "lsc0", "lspi", "lvp1", "lvs";
+				function = "displaya";
+			};
+			lm0 {
+				pins = "lm0";
+				function = "rsvd4";
+			};
+			lm1 {
+				pins = "lm1";
+				function = "crt";
+				tristate;
+			};
+			lpw0 {
+				pins = "lpw0", "lpw2", "pta";
+				function = "hdmi";
+			};
+			pmc {
+				pins = "pmc";
+				function = "pwr_on";
+			};
+			sdb {
+				pins = "sdb", "sdc", "sdd";
+				function = "sdio3";
+			};
+			sdio1 {
+				pins = "sdio1";
+				function = "sdio1";
+				pull-up;
+			};
+			slxa {
+				pins = "slxa";
+				function = "pcie";
+				pull-up;
+				tristate;
+			};
+			slxc {
+				pins = "slxc";
+				function = "spdif";
+				tristate;
+			};
+			slxd {
+				pins = "slxd";
+				function = "spdif";
+			};
+			slxk {
+				pins = "slxk";
+				function = "pcie";
+			};
+			spdi {
+				pins = "spdi", "spdo", "uac";
+				function = "rsvd2";
+			};
+			spic {
+				pins = "spic";
+				function = "gmi";
+				pull-up;
+			};
+			spid {
+				pins = "spid", "spie";
+				function = "spi1";
+				tristate;
+			};
+			spif {
+				pins = "spif";
+				function = "spi1";
+				pull-down;
+				tristate;
+			};
+			spig {
+				pins = "spig", "spih";
+				function = "spi2_alt";
+				pull-up;
+				tristate;
+			};
+			uaa {
+				pins = "uaa", "uab";
+				function = "ulpi";
+				pull-up;
+			};
+			uad {
+				pins = "uad";
+				function = "irda";
+			};
+			uca {
+				pins = "uca", "ucb";
+				function = "uartc";
+			};
+			uda {
+				pins = "uda";
+				function = "ulpi";
+			};
+		};
+		nvidia,drive-groups {
+			sdio1 {
+				pins = "sdio1";
+				nvidia,schmitt;
+				nvidia,drive-power = <3>;
+				nvidia,pull-down-strength = <31>;
+				nvidia,pull-up-strength = <31>;
+				nvidia,slew-rate-rising = <3>;
+				nvidia,slew-rate-falling = <3>;
+			};
+		};
+	};
+
 	serial at 70006300 {
 		clock-frequency = < 216000000 >;
 	};
diff --git a/arch/arm/boot/dts/tegra20.dtsi b/arch/arm/boot/dts/tegra20.dtsi
index 5727595..5921c1d 100644
--- a/arch/arm/boot/dts/tegra20.dtsi
+++ b/arch/arm/boot/dts/tegra20.dtsi
@@ -77,6 +77,11 @@
 		gpio-controller;
 	};
 
+	pinmux: pinmux at 70000000 {
+		compatible = "nvidia,tegra20-pinmux";
+		reg = < 0x70000000 0xc00 >;
+	};
+
 	serial at 70006000 {
 		compatible = "nvidia,tegra20-uart";
 		reg = <0x70006000 0x40>;
-- 
1.7.0.4




More information about the linux-arm-kernel mailing list