Commit e98ea774 authored by Linus Walleij's avatar Linus Walleij
Browse files

pinctrl/nomadik: basic Nomadik pinctrl interface



This adds a scratch pin control interface to the Nomadik pinctrl
driver, and defines the pins and groups in the DB8500 ASIC. We
define GPIO ranges to cover the pins exposed. The DB8500 has
more pins than this but we restrict the driver to the pins that
can be controlled from the combined GPIO and pin control hardware
to begin with.

ChangeLog v1->v2:
- Base on the latest pinctrl development from
  pinctrl-mergebase-20120418 so we can get rid of legacy
  group count mechanism. Also drop the range checks for group
  index, this is handled by the core now.

Acked-by: default avatarStephen Warren <swarren@wwwdotorg.org>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 072e82a1
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -9,6 +9,8 @@ config UX500_SOC_COMMON
	select ARM_ERRATA_754322
	select ARM_ERRATA_764369
	select CACHE_L2X0
	select PINCTRL
	select PINCTRL_NOMADIK

config UX500_SOC_DB5500
	bool
@@ -20,6 +22,7 @@ config UX500_SOC_DB8500
	select REGULATOR
	select REGULATOR_DB8500_PRCMU
	select CPU_FREQ_TABLE if CPU_FREQ
	select PINCTRL_DB8500

menu "Ux500 target platform (boards)"

+1 −0
Original line number Diff line number Diff line
@@ -141,6 +141,7 @@ static void __init db8500_add_gpios(struct device *parent)

	dbx500_add_gpios(parent, ARRAY_AND_SIZE(db8500_gpio_base),
			 IRQ_DB8500_GPIO0, &pdata);
	dbx500_add_pinctrl(parent, "pinctrl-db8500");
}

static int usb_db8500_rx_dma_cfg[] = {
+12 −0
Original line number Diff line number Diff line
@@ -93,4 +93,16 @@ struct nmk_gpio_platform_data;
void dbx500_add_gpios(struct device *parent, resource_size_t *base, int num,
		      int irq, struct nmk_gpio_platform_data *pdata);

static inline void
dbx500_add_pinctrl(struct device *parent, const char *name)
{
	struct platform_device_info pdevinfo = {
		.parent = parent,
		.name = name,
		.id = -1,
	};

	platform_device_register_full(&pdevinfo);
}

#endif
+8 −0
Original line number Diff line number Diff line
@@ -36,6 +36,14 @@ config PINCTRL_MMP2
	select PINCTRL_PXA3xx
	select PINCONF

config PINCTRL_NOMADIK
	bool "Nomadik pin controller driver"
	depends on ARCH_U8500

config PINCTRL_DB8500
	bool "DB8500 pin controller driver"
	depends on PINCTRL_NOMADIK && ARCH_U8500

config PINCTRL_PXA168
	bool "PXA168 pin controller driver"
	depends on ARCH_MMP
+2 −1
Original line number Diff line number Diff line
@@ -11,7 +11,8 @@ endif
obj-$(CONFIG_GENERIC_PINCONF)	+= pinconf-generic.o
obj-$(CONFIG_PINCTRL_PXA3xx)	+= pinctrl-pxa3xx.o
obj-$(CONFIG_PINCTRL_MMP2)	+= pinctrl-mmp2.o
obj-$(CONFIG_PLAT_NOMADIK)	+= pinctrl-nomadik.o
obj-$(CONFIG_PINCTRL_NOMADIK)	+= pinctrl-nomadik.o
obj-$(CONFIG_PINCTRL_DB8500)	+= pinctrl-nomadik-db8500.o
obj-$(CONFIG_PINCTRL_PXA168)	+= pinctrl-pxa168.o
obj-$(CONFIG_PINCTRL_PXA910)	+= pinctrl-pxa910.o
obj-$(CONFIG_PINCTRL_SIRF)	+= pinctrl-sirf.o
Loading