Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 989b7135 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge branch 'spear/pinctrl' into next/pinctrl

This is a rebased version of some contents of
  git://git.stlinux.com/spear/linux-2.6.git

 spear-v3.5
which was accidentally sent against linux-next rather than an
-rc release.

The commits are based on other changes in the spear/dt branch
of the arm-soc tree that they depend on.

* spear/pinctrl:
  SPEAr3xx: Add pinctrl support for boards
  SPEAr: Remove existing padmux support for SPEAr
  pinctrl: Add SPEAr3xx pinctrl drivers
  pinctrl: Add SPEAr pinctrl drivers

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents e816b57a e0373607
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -17,14 +17,14 @@ Introduction
  SPEAr (Platform)
	- SPEAr3XX (3XX SOC series, based on ARM9)
		- SPEAr300 (SOC)
			- SPEAr300_EVB (Evaluation Board)
			- SPEAr300 Evaluation Board
		- SPEAr310 (SOC)
			- SPEAr310_EVB (Evaluation Board)
			- SPEAr310 Evaluation Board
		- SPEAr320 (SOC)
			- SPEAr320_EVB (Evaluation Board)
			- SPEAr320 Evaluation Board
	- SPEAr6XX (6XX SOC series, based on ARM9)
		- SPEAr600 (SOC)
			- SPEAr600_EVB (Evaluation Board)
			- SPEAr600 Evaluation Board
	- SPEAr13XX (13XX SOC series, based on ARM CORTEXA9)
		- SPEAr1300 (SOC)

@@ -51,10 +51,11 @@ Introduction
  Common file for machines of spear3xx family is mach-spear3xx/spear3xx.c and for
  spear6xx is mach-spear6xx/spear6xx.c. mach-spear* also contain soc/machine
  specific files, like spear300.c, spear310.c, spear320.c and spear600.c.
  mach-spear* also contains board specific files for each machine type.
  mach-spear* doesn't contains board specific files as they fully support
  Flattened Device Tree.


  Document Author
  ---------------

  Viresh Kumar, (c) 2010 ST Microelectronics
  Viresh Kumar <viresh.kumar@st.com>, (c) 2010-2012 ST Microelectronics
+18 −0
Original line number Diff line number Diff line
@@ -6,3 +6,21 @@ Boards with the ST SPEAr600 SoC shall have the following properties:
Required root node property:

compatible = "st,spear600";

Boards with the ST SPEAr300 SoC shall have the following properties:

Required root node property:

compatible = "st,spear300";

Boards with the ST SPEAr310 SoC shall have the following properties:

Required root node property:

compatible = "st,spear310";

Boards with the ST SPEAr320 SoC shall have the following properties:

Required root node property:

compatible = "st,spear320";
+108 −0
Original line number Diff line number Diff line
ST Microelectronics, SPEAr pinmux controller

Required properties:
- compatible	: "st,spear300-pinmux"
		: "st,spear310-pinmux"
		: "st,spear320-pinmux"
- reg		: Address range of the pinctrl registers
- st,pinmux-mode: Mandatory for SPEAr300 and SPEAr320 and invalid for others.
	- Its values for SPEAr300:
		- NAND_MODE		: <0>
		- NOR_MODE		: <1>
		- PHOTO_FRAME_MODE	: <2>
		- LEND_IP_PHONE_MODE	: <3>
		- HEND_IP_PHONE_MODE	: <4>
		- LEND_WIFI_PHONE_MODE	: <5>
		- HEND_WIFI_PHONE_MODE	: <6>
		- ATA_PABX_WI2S_MODE	: <7>
		- ATA_PABX_I2S_MODE	: <8>
		- CAML_LCDW_MODE	: <9>
		- CAMU_LCD_MODE		: <10>
		- CAMU_WLCD_MODE	: <11>
		- CAML_LCD_MODE		: <12>
	- Its values for SPEAr320:
		- AUTO_NET_SMII_MODE	: <0>
		- AUTO_NET_MII_MODE	: <1>
		- AUTO_EXP_MODE		: <2>
		- SMALL_PRINTERS_MODE	: <3>
		- EXTENDED_MODE		: <4>

Please refer to pinctrl-bindings.txt in this directory for details of the common
pinctrl bindings used by client devices.

SPEAr's pinmux nodes act as a container for an abitrary number of subnodes. Each
of these subnodes represents muxing for a pin, a group, or a list of pins or
groups.

The name of each subnode is not important; all subnodes should be enumerated
and processed purely based on their content.

Required subnode-properties:
- st,pins : An array of strings. Each string contains the name of a pin or
  group.
- st,function: A string containing the name of the function to mux to the pin or
  group. See the SPEAr's TRM to determine which are valid for each pin or group.

  Valid values for group and function names can be found from looking at the
  group and function arrays in driver files:
  drivers/pinctrl/spear/pinctrl-spear3*0.c

Valid values for group names are:
For All SPEAr3xx machines:
	"firda_grp", "i2c0_grp", "ssp_cs_grp", "ssp0_grp", "mii0_grp",
	"gpio0_pin0_grp", "gpio0_pin1_grp", "gpio0_pin2_grp", "gpio0_pin3_grp",
	"gpio0_pin4_grp", "gpio0_pin5_grp", "uart0_ext_grp", "uart0_grp",
	"timer_0_1_grp", timer_0_1_pins, "timer_2_3_grp"

For SPEAr300 machines:
	"fsmc_2chips_grp", "fsmc_4chips_grp", "clcd_lcdmode_grp",
	"clcd_pfmode_grp", "tdm_grp", "i2c_clk_grp_grp", "caml_grp", "camu_grp",
	"dac_grp", "i2s_grp", "sdhci_4bit_grp", "sdhci_8bit_grp",
	"gpio1_0_to_3_grp", "gpio1_4_to_7_grp"

For SPEAr310 machines:
	"emi_cs_0_to_5_grp", "uart1_grp", "uart2_grp", "uart3_grp", "uart4_grp",
	"uart5_grp", "fsmc_grp", "rs485_0_grp", "rs485_1_grp", "tdm_grp"

For SPEAr320 machines:
	"clcd_grp", "emi_grp", "fsmc_8bit_grp", "fsmc_16bit_grp", "spp_grp",
	"sdhci_led_grp", "sdhci_cd_12_grp", "sdhci_cd_51_grp", "i2s_grp",
	"uart1_grp", "uart1_modem_2_to_7_grp", "uart1_modem_31_to_36_grp",
	"uart1_modem_34_to_45_grp", "uart1_modem_80_to_85_grp", "uart2_grp",
	"uart3_8_9_grp", "uart3_15_16_grp", "uart3_41_42_grp",
	"uart3_52_53_grp", "uart3_73_74_grp", "uart3_94_95_grp",
	"uart3_98_99_grp", "uart4_6_7_grp", "uart4_13_14_grp",
	"uart4_39_40_grp", "uart4_71_72_grp", "uart4_92_93_grp",
	"uart4_100_101_grp", "uart5_4_5_grp", "uart5_37_38_grp",
	"uart5_69_70_grp", "uart5_90_91_grp", "uart6_2_3_grp",
	"uart6_88_89_grp", "rs485_grp", "touchscreen_grp", "can0_grp",
	"can1_grp", "pwm0_1_pin_8_9_grp", "pwm0_1_pin_14_15_grp",
	"pwm0_1_pin_30_31_grp", "pwm0_1_pin_37_38_grp", "pwm0_1_pin_42_43_grp",
	"pwm0_1_pin_59_60_grp", "pwm0_1_pin_88_89_grp", "pwm2_pin_7_grp",
	"pwm2_pin_13_grp", "pwm2_pin_29_grp", "pwm2_pin_34_grp",
	"pwm2_pin_41_grp", "pwm2_pin_58_grp", "pwm2_pin_87_grp",
	"pwm3_pin_6_grp", "pwm3_pin_12_grp", "pwm3_pin_28_grp",
	"pwm3_pin_40_grp", "pwm3_pin_57_grp", "pwm3_pin_86_grp",
	"ssp1_17_20_grp", "ssp1_36_39_grp", "ssp1_48_51_grp", "ssp1_65_68_grp",
	"ssp1_94_97_grp", "ssp2_13_16_grp", "ssp2_32_35_grp", "ssp2_44_47_grp",
	"ssp2_61_64_grp", "ssp2_90_93_grp", "mii2_grp", "smii0_1_grp",
	"rmii0_1_grp", "i2c1_8_9_grp", "i2c1_98_99_grp", "i2c2_0_1_grp",
	"i2c2_2_3_grp", "i2c2_19_20_grp", "i2c2_75_76_grp", "i2c2_96_97_grp"

Valid values for function names are:
For All SPEAr3xx machines:
	"firda", "i2c0", "ssp_cs", "ssp0", "mii0", "gpio0", "uart0_ext",
	"uart0", "timer_0_1", "timer_2_3"

For SPEAr300 machines:
	"fsmc", "clcd", "tdm", "i2c1", "cam", "dac", "i2s", "sdhci", "gpio1"

For SPEAr310 machines:
	"emi", "uart1", "uart2", "uart3", "uart4", "uart5", "fsmc", "rs485_0",
	"rs485_1", "tdm"

For SPEAr320 machines:
	"clcd", "emi", "fsmc", "spp", "sdhci", "i2s", "uart1", "uart1_modem",
	"uart2", "uart3", "uart4", "uart5", "uart6", "rs485", "touchscreen",
	"can0", "can1", "pwm0_1", "pwm2", "pwm3", "ssp1", "ssp2", "mii2",
	"mii0_1", "i2c1", "i2c2"
+8 −15
Original line number Diff line number Diff line
@@ -5234,6 +5234,14 @@ M: Linus Walleij <linus.walleij@linaro.org>
S:	Maintained
F:	drivers/pinctrl/

PIN CONTROLLER - ST SPEAR
M:	Viresh Kumar <viresh.kumar@st.com>
L:	spear-devel@list.st.com
L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
W:	http://www.st.com/spear
S:	Maintained
F:	driver/pinctrl/spear/

PKTCDVD DRIVER
M:	Peter Osterlund <petero2@telia.com>
S:	Maintained
@@ -6330,21 +6338,6 @@ F: arch/arm/mach-spear*/clock.c
F:	arch/arm/plat-spear/clock.c
F:	arch/arm/plat-spear/include/plat/clock.h

SPEAR PAD MULTIPLEXING SUPPORT
M:	Viresh Kumar <viresh.kumar@st.com>
L:	spear-devel@list.st.com
L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
W:	http://www.st.com/spear
S:	Maintained
F:	arch/arm/plat-spear/include/plat/padmux.h
F:	arch/arm/plat-spear/padmux.c
F:	arch/arm/mach-spear*/spear*xx.c
F:	arch/arm/mach-spear*/include/mach/generic.h
F:	arch/arm/mach-spear3xx/spear3*0.c
F:	arch/arm/mach-spear3xx/spear3*0_evb.c
F:	arch/arm/mach-spear6xx/spear600.c
F:	arch/arm/mach-spear6xx/spear600_evb.c

SPI SUBSYSTEM
M:	Grant Likely <grant.likely@secretlab.ca>
L:	spi-devel-general@lists.sourceforge.net
+221 −0
Original line number Diff line number Diff line
/*
 * DTS file for SPEAr300 Evaluation Baord
 *
 * Copyright 2012 Viresh Kumar <viresh.kumar@st.com>
 *
 * The code contained herein is licensed under the GNU General Public
 * License. You may obtain a copy of the GNU General Public License
 * Version 2 or later at the following locations:
 *
 * http://www.opensource.org/licenses/gpl-license.html
 * http://www.gnu.org/copyleft/gpl.html
 */

/dts-v1/;
/include/ "spear300.dtsi"

/ {
	model = "ST SPEAr300 Evaluation Board";
	compatible = "st,spear300-evb", "st,spear300";
	#address-cells = <1>;
	#size-cells = <1>;

	memory {
		reg = <0 0x40000000>;
	};

	ahb {
		pinmux@99000000 {
			st,pinmux-mode = <2>;
			pinctrl-names = "default";
			pinctrl-0 = <&state_default>;

			state_default: pinmux {
				i2c0 {
					st,pins = "i2c0_grp";
					st,function = "i2c0";
				};
				ssp0 {
					st,pins = "ssp0_grp";
					st,function = "ssp0";
				};
				mii0 {
					st,pins = "mii0_grp";
					st,function = "mii0";
				};
				uart0 {
					st,pins = "uart0_grp";
					st,function = "uart0";
				};
				clcd {
					st,pins = "clcd_pfmode_grp";
					st,function = "clcd";
				};
				sdhci {
					st,pins = "sdhci_4bit_grp";
					st,function = "sdhci";
				};
				gpio1 {
					st,pins = "gpio1_4_to_7_grp",
						"gpio1_0_to_3_grp";
					st,function = "gpio1";
				};
			};
		};

		clcd@60000000 {
			status = "okay";
		};

		dma@fc400000 {
			status = "okay";
		};

		fsmc: flash@94000000 {
			status = "okay";
		};

		gmac: eth@e0800000 {
			status = "okay";
		};

		sdhci@70000000 {
			int-gpio = <&gpio1 0 0>;
			power-gpio = <&gpio1 2 1>;
			status = "okay";
		};

		smi: flash@fc000000 {
			status = "okay";
		};

		spi0: spi@d0100000 {
			status = "okay";
		};

		ehci@e1800000 {
			status = "okay";
		};

		ohci@e1900000 {
			status = "okay";
		};

		ohci@e2100000 {
			status = "okay";
		};

		apb {
			gpio0: gpio@fc980000 {
			       status = "okay";
			};

			gpio1: gpio@a9000000 {
			       status = "okay";
			};

			i2c0: i2c@d0180000 {
			       status = "okay";
			};

			kbd@a0000000 {
				linux,keymap = < 0x00010000
						 0x00020100
						 0x00030200
						 0x00040300
						 0x00050400
						 0x00060500
						 0x00070600
						 0x00080700
						 0x00090800
						 0x000a0001
						 0x000c0101
						 0x000d0201
						 0x000e0301
						 0x000f0401
						 0x00100501
						 0x00110601
						 0x00120701
						 0x00130801
						 0x00140002
						 0x00150102
						 0x00160202
						 0x00170302
						 0x00180402
						 0x00190502
						 0x001a0602
						 0x001b0702
						 0x001c0802
						 0x001d0003
						 0x001e0103
						 0x001f0203
						 0x00200303
						 0x00210403
						 0x00220503
						 0x00230603
						 0x00240703
						 0x00250803
						 0x00260004
						 0x00270104
						 0x00280204
						 0x00290304
						 0x002a0404
						 0x002b0504
						 0x002c0604
						 0x002d0704
						 0x002e0804
						 0x002f0005
						 0x00300105
						 0x00310205
						 0x00320305
						 0x00330405
						 0x00340505
						 0x00350605
						 0x00360705
						 0x00370805
						 0x00380006
						 0x00390106
						 0x003a0206
						 0x003b0306
						 0x003c0406
						 0x003d0506
						 0x003e0606
						 0x003f0706
						 0x00400806
						 0x00410007
						 0x00420107
						 0x00430207
						 0x00440307
						 0x00450407
						 0x00460507
						 0x00470607
						 0x00480707
						 0x00490807
						 0x004a0008
						 0x004b0108
						 0x004c0208
						 0x004d0308
						 0x004e0408
						 0x004f0508
						 0x00500608
						 0x00510708
						 0x00520808 >;
			       autorepeat;
			       st,mode = <0>;
			       status = "okay";
			};

			rtc@fc900000 {
			       status = "okay";
			};

			serial@d0000000 {
			       status = "okay";
			};

			wdt@fc880000 {
			       status = "okay";
			};
		};
	};
};
Loading