linux/drivers/pinctrl
Antoine Tenart 3de68d331c pinctrl: berlin: add the core pinctrl driver for Marvell Berlin SoCs
The Marvell Berlin boards have a group based pinmuxing mechanism. This
adds the core driver support. We actually do not need any information
about the pins here and only have the definition of the groups.

Let's take the example of the uart0 pinmuxing on the BG2Q. Balls BK4 and
BH6 are muxed to respectively UART0 RX and TX if the group GSM12 is set
to mode 0:

Group	Modes	Offset Base	Offset	LSB	Bit Width
GSM12	3	sm_base		0x40	0x10	0x2

Ball	Group	Mode 0		Mode 1		Mode 2
BK4	GSM12	UART0_RX	IrDA0_RX	GPIO9
BH6	GSM12	UART0_TX	IrDA0_TX	GPIO10

So in order to configure BK4 -> UART0_TX and BH6 -> UART0_RX, we need
to set (sm_base + 0x40 + 0x10) &= ff3fffff.

As pin control registers are part of either chip control or system
control registers, that deal with a bunch of other functions we rely
on a regmap instead of exclusively remapping any resources.

Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2014-05-23 00:05:00 +02:00
..
berlin pinctrl: berlin: add the core pinctrl driver for Marvell Berlin SoCs 2014-05-23 00:05:00 +02:00
mvebu pinctrl: mvebu: new driver for Orion platforms 2014-04-24 15:09:35 +02:00
sh-pfc pinctrl: sh-pfc: r8a73a4: Allow Multiplatform Build 2014-05-23 00:01:52 +02:00
sirf pinctrl: sirf: switch driver to use gpiolib irqchip helpers 2014-04-23 22:02:54 +02:00
spear pinctrl: remove redundant of_match_ptr 2013-10-08 10:02:25 +02:00
sunxi pinctrl: sunxi: Enable the pinctrl Kconfig options by default 2014-05-23 00:01:50 +02:00
vt8500 pinctrl: vt8500: Change devicetree data parsing 2014-02-03 09:08:01 +01:00
core.c pinctrl: allows not to define the get_group_pins operation 2014-04-22 14:47:02 +02:00
core.h pinctrl: move subsystem mutex to pinctrl_dev struct 2013-04-26 17:01:35 +02:00
devicetree.c pinctrl: Quiet logging about missing DT nodes when not using DT 2014-02-24 10:44:54 +01:00
devicetree.h pinctrl: core device tree mapping table parsing support 2012-04-18 13:53:10 +02:00
Kconfig pinctrl: berlin: add the core pinctrl driver for Marvell Berlin SoCs 2014-05-23 00:05:00 +02:00
Makefile pinctrl: berlin: add the core pinctrl driver for Marvell Berlin SoCs 2014-05-23 00:05:00 +02:00
pinconf-generic.c pinctrl: Adds slew-rate, input-enable/disable 2013-12-16 10:55:03 +01:00
pinconf.c pinctrl: pinconf: remove warning: unused variable 'ops' 2013-12-13 13:55:15 +01:00
pinconf.h pinctrl: add function to parse generic pinconfig properties from a dt node 2013-06-16 11:57:32 +02:00
pinctrl-ab8500.c pinctrl: ab8500: Staticize some symbols 2013-04-09 09:54:00 +02:00
pinctrl-ab8505.c pinctrl: ab8505: Staticize some symbols 2013-04-09 09:59:42 +02:00
pinctrl-ab8540.c pinctrl: ab8540: Staticize some symbols 2013-04-09 09:58:02 +02:00
pinctrl-ab9540.c pinctrl: ab9540: Staticize some symbols 2013-04-09 09:55:59 +02:00
pinctrl-abx500.c mfd/pinctrl: Delete platform data header 2014-01-21 08:27:42 +00:00
pinctrl-abx500.h mfd/pinctrl: Delete platform data header 2014-01-21 08:27:42 +00:00
pinctrl-adi2-bf54x.c pinctrl: pinctrl-adi: combine multiple groups of one function together 2014-02-25 10:49:13 +01:00
pinctrl-adi2-bf60x.c pinctrl: pinctrl-adi: combine multiple groups of one function together 2014-02-25 10:49:13 +01:00
pinctrl-adi2.c pinctrl: adi2: Statize adi_gpio_irq_domain_ops 2014-04-22 08:41:35 +02:00
pinctrl-adi2.h pinctrl: pinctrl-adi: combine multiple groups of one function together 2014-02-25 10:49:13 +01:00
pinctrl-apq8064.c pinctrl: msm: Add definitions for the APQ8064 platform 2014-04-22 08:41:35 +02:00
pinctrl-as3722.c Bulk pin control changes for the v3.14 cycle: 2014-01-21 10:14:10 -08:00
pinctrl-at91.c pinctrl/at91: Fix mask creation in at91_gpio_dbg_show 2014-04-22 23:45:57 +02:00
pinctrl-baytrail.c pinctrl: baytrail: Add pull type, strength and open drain to debugfs output 2014-05-23 00:01:54 +02:00
pinctrl-bcm281xx.c pinctrl: Rename Broadcom Capri pinctrl driver 2014-04-14 09:39:33 +02:00
pinctrl-bcm2835.c gpio/pinctrl: make gpio_chip members typed boolean 2013-12-04 14:42:46 +01:00
pinctrl-coh901.c pinctrl: coh901: convert driver to use gpiolib irqchip 2014-03-26 10:31:34 +01:00
pinctrl-coh901.h pinctrl: support pinconfig on the U300 2012-03-12 22:49:03 +01:00
pinctrl-exynos5440.c pinctrl: remove redundant of_match_ptr 2013-10-08 10:02:25 +02:00
pinctrl-exynos.c pinctrl: exynos: Add driver data for Exynos3250 2014-04-23 09:00:25 +02:00
pinctrl-exynos.h pinctrl: exynos: Handle suspend/resume of GPIO EINT registers 2013-05-27 15:37:09 +02:00
pinctrl-falcon.c pinctrl: Pass all configs to driver on pin_config_set() 2013-08-28 13:34:41 +02:00
pinctrl-imx1-core.c pinctrl: imx27: fix offset calculation in imx_read_2bit 2014-02-03 09:08:09 +01:00
pinctrl-imx1.h pinctrl: imx1 core driver 2013-10-29 06:54:37 -07:00
pinctrl-imx6dl.c pinctrl: remove redundant of_match_ptr 2013-10-08 10:02:25 +02:00
pinctrl-imx6q.c pinctrl: remove redundant of_match_ptr 2013-10-08 10:02:25 +02:00
pinctrl-imx6sl.c pinctrl: remove redundant of_match_ptr 2013-10-08 10:02:25 +02:00
pinctrl-imx23.c Drivers: pinctrl: remove __dev* attributes. 2013-01-03 15:57:02 -08:00
pinctrl-imx25.c pinctrl: pinctrl-imx: add imx25 pinctrl driver 2013-11-25 09:08:30 +01:00
pinctrl-imx27.c pinctrl: imx27: imx27 pincontrol driver 2013-10-29 08:58:06 -07:00
pinctrl-imx28.c Drivers: pinctrl: remove __dev* attributes. 2013-01-03 15:57:02 -08:00
pinctrl-imx35.c pinctrl: remove redundant of_match_ptr 2013-10-08 10:02:25 +02:00
pinctrl-imx50.c pinctrl: imx50: add pinctrl support code for the IMX50 SoC 2013-11-06 10:06:59 +01:00
pinctrl-imx51.c pinctrl: remove redundant of_match_ptr 2013-10-08 10:02:25 +02:00
pinctrl-imx53.c pinctrl: remove redundant of_match_ptr 2013-10-08 10:02:25 +02:00
pinctrl-imx.c pinctrl: pinctrl-imx: Print the mux_mode field in hex format 2014-04-22 15:10:35 +02:00
pinctrl-imx.h pinctrl: imx: Use struct type for pins 2013-08-16 14:43:56 +02:00
pinctrl-ipq8064.c pinctrl: qcom: Correct name for pin 0 2014-05-02 15:42:52 -07:00
pinctrl-lantiq.c pinctrl/lantiq: Free mapping configs for both pin and groups 2013-05-15 13:28:46 +02:00
pinctrl-lantiq.h pinctrl: lantiq: Fix header file include guard 2014-04-22 08:41:35 +02:00
pinctrl-msm8x74.c pinctrl: msm: Make number of functions variable 2014-04-22 08:41:34 +02:00
pinctrl-msm.c pinctrl: msm: Make number of functions variable 2014-04-22 08:41:34 +02:00
pinctrl-msm.h pinctrl: msm: Make number of functions variable 2014-04-22 08:41:34 +02:00
pinctrl-mxs.c pinctrl: Pass all configs to driver on pin_config_set() 2013-08-28 13:34:41 +02:00
pinctrl-mxs.h pinctrl: add pinctrl-mxs support 2012-05-02 01:18:27 +02:00
pinctrl-nomadik-db8500.c pinctrl/nomadik-db8500: Fix checkpatch errors 2013-03-27 22:21:32 +01:00
pinctrl-nomadik-db8540.c Drivers: pinctrl: remove __dev* attributes. 2013-01-03 15:57:02 -08:00
pinctrl-nomadik-stn8815.c pinctrl: pinctrl-nomadik-stn8815: Fix checkpatch error 2013-03-13 19:50:20 +01:00
pinctrl-nomadik.c pinctrl: nomadik: delete stray debug print 2014-04-14 09:39:33 +02:00
pinctrl-nomadik.h pinctrl: nomadik: move platform data handling into driver 2013-11-26 21:01:58 +01:00
pinctrl-palmas.c pinctrl: palmas: remove pin config BIAS_PULL_PIN_DEFAULT support 2013-10-08 13:27:27 +02:00
pinctrl-rockchip.c pinctrl: rockchip: base regmap supplied by a syscon 2014-05-09 11:16:13 +02:00
pinctrl-s3c24xx.c pinctrl: s3c24xx: off by one in s3c24xx_eint_init() 2013-08-28 14:44:25 +02:00
pinctrl-s3c64xx.c pinctrl: s3c64xx: Fix build error caused by undefined chained_irq_enter 2013-04-23 13:59:45 +02:00
pinctrl-samsung.c pinctrl: exynos: Add driver data for Exynos3250 2014-04-23 09:00:25 +02:00
pinctrl-samsung.h pinctrl: exynos: Add driver data for Exynos3250 2014-04-23 09:00:25 +02:00
pinctrl-single.c pinctrl: single: add low power mode support 2014-02-10 10:13:08 +01:00
pinctrl-st.c pinctrl: st: Use ARRAY_SIZE for STiH415 data 2014-04-22 08:41:35 +02:00
pinctrl-tb10x.c pinctrl: tb10x: use module_platform_driver to simplify the code 2013-10-23 10:46:00 +02:00
pinctrl-tegra20.c pinctrl: tegra: remove fsafe from data tables 2014-04-22 16:50:24 +02:00
pinctrl-tegra30.c pinctrl: tegra: remove fsafe from data tables 2014-04-22 16:50:24 +02:00
pinctrl-tegra114.c pinctrl: tegra: remove fsafe from data tables 2014-04-22 16:50:24 +02:00
pinctrl-tegra124.c pinctrl: tegra: remove fsafe from data tables 2014-04-22 16:50:24 +02:00
pinctrl-tegra.c pinctrl: tegra: print better error messages 2014-04-22 16:53:43 +02:00
pinctrl-tegra.h pinctrl: tegra: add missing kerneldoc 2014-04-22 16:55:41 +02:00
pinctrl-tz1090-pdc.c pinctrl: Pass all configs to driver on pin_config_set() 2013-08-28 13:34:41 +02:00
pinctrl-tz1090.c pinctrl: Pass all configs to driver on pin_config_set() 2013-08-28 13:34:41 +02:00
pinctrl-u300.c pinctrl: Pass all configs to driver on pin_config_set() 2013-08-28 13:34:41 +02:00
pinctrl-utils.c pinctrl: utils: include export.h to avoid warnings 2013-08-28 15:50:33 +02:00
pinctrl-utils.h pinctrl: add utility functions for add map/configs 2013-08-14 21:00:41 +02:00
pinctrl-vf610.c pinctrl: remove redundant of_match_ptr 2013-10-08 10:02:25 +02:00
pinctrl-xway.c pinctrl/lantiq: fix typo 2014-01-08 10:13:38 +01:00
pinmux.c pinctrl: allows not to define the get_group_pins operation 2014-04-22 14:47:02 +02:00
pinmux.h pinctrl: ifdef CONFIG_DEBUG_FS cleanup 2012-04-18 13:53:12 +02:00