[PATCH 3/5] ARM: Exynos4: Add pinctrl devices and pin maps
Kukjin Kim
kgene.kim at samsung.com
Sun Mar 11 17:17:21 EDT 2012
Thomas Abraham wrote:
> Add the three pinctrl platform devices and the pin maps for Exynos4.
>
> Signed-off-by: Thomas Abraham<thomas.abraham at linaro.org>
> ---
> arch/arm/mach-exynos/Kconfig | 1 +
> arch/arm/mach-exynos/Makefile | 1 +
> arch/arm/mach-exynos/common.h | 6 ++
> arch/arm/mach-exynos/dev-pinctrl.c | 115 +++++++++++++++++++++++++++++
> arch/arm/plat-samsung/include/plat/devs.h | 3 +
> 5 files changed, 126 insertions(+), 0 deletions(-)
> create mode 100644 arch/arm/mach-exynos/dev-pinctrl.c
[...]
> +#include<linux/kernel.h>
> +#include<linux/dma-mapping.h>
> +#include<linux/platform_device.h>
> +#include<linux/interrupt.h>
> +#include<linux/pinctrl/machine.h>
#include <linux/ioport.h> for DEFINE_RES_xxx at below.
> +
> +#include<plat/devs.h>
> +#include<plat/pinctrl.h>
> +
> +#include<mach/map.h>
> +
> +static struct resource exynos4_pinctrl_resource0[] = {
> + [0] = {
> + .start = EXYNOS4_PA_GPIO1,
> + .end = EXYNOS4_PA_GPIO1 + SZ_4K - 1,
> + .flags = IORESOURCE_MEM,
> + },
[0] = DEFINE_RES_MEM(EXYNOS4_PA_GPIO1, SZ_4K),
> + [1] = {
> + .start = IRQ_GPIO_XA,
> + .end = IRQ_GPIO_XA,
> + .flags = IORESOURCE_IRQ,
> + },
[1] = DEFINE_RES_IRQ(IRQ_GPIO_XA),
But I'm thinking, we need to move to use EXYNOS4_IRQ_GPIO_XA here for
both EXYNOS4 and EXYNOS5 and as a note, I'm working on updating IRQ
naming you can see it in this week :)
> +};
> +
> +struct platform_device exynos4_pinctrl0 = {
> + .name = "exynos4-pinctrl",
> + .id = 0,
> + .resource = exynos4_pinctrl_resource0,
> + .num_resources = ARRAY_SIZE(exynos4_pinctrl_resource0),
> +};
> +
> +static struct resource exynos4_pinctrl_resource1[] = {
> + [0] = {
> + .start = EXYNOS4_PA_GPIO2,
> + .end = EXYNOS4_PA_GPIO2 + SZ_4K - 1,
> + .flags = IORESOURCE_MEM,
> + },
same as above.
> + [1] = {
> + .start = IRQ_GPIO_XB,
> + .end = IRQ_GPIO_XB,
> + .flags = IORESOURCE_IRQ,
> + },
same.
> +};
> +
> +struct platform_device exynos4_pinctrl1 = {
> + .name = "exynos4-pinctrl",
> + .id = 1,
> + .resource = exynos4_pinctrl_resource1,
> + .num_resources = ARRAY_SIZE(exynos4_pinctrl_resource1),
> +};
> +
> +static struct resource exynos4_pinctrl_resource2[] = {
> + [0] = {
> + .start = EXYNOS4_PA_GPIO3,
> + .end = EXYNOS4_PA_GPIO3 + SZ_4K - 1,
> + .flags = IORESOURCE_MEM,
> + },
same.
> +};
> +
> +struct platform_device exynos4_pinctrl2 = {
> + .name = "exynos4-pinctrl",
> + .id = 2,
> + .resource = exynos4_pinctrl_resource2,
> + .num_resources = ARRAY_SIZE(exynos4_pinctrl_resource2),
> +};
> +
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <kgene.kim at samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
More information about the linux-arm-kernel
mailing list