* [PATCH 0/4] pinctrl: samsung: Add support for Exynos4x12 SoCs
@ 2012-10-24 14:37 ` Tomasz Figa
0 siblings, 0 replies; 36+ messages in thread
From: Tomasz Figa @ 2012-10-24 14:37 UTC (permalink / raw)
To: linux-arm-kernel
Cc: linux-samsung-soc, devicetree-discuss, kgene.kim, kyungmin.park,
m.szyprowski, t.figa, tomasz.figa, thomas.abraham, linus.walleij,
swarren
This patch series adds pinctrl support for SoCs from Exynos4x12 family.
First two patches make necessary preperations to skip legacy GPIO and
GPIO interrupt registration in case of Exynos4x12 SoCs which are not
supported by legacy (non-DT) code.
Third patch adds Exynos4x12-specific definitions to pinctrl-samsung driver.
Fourth patch adds device nodes for pin controllers available on Exynos4x12
SoCs to Exynos4x12 device tree sources.
This series depends on:
- [PATCH] ARM: dts: exynos4: Add support for Exynos4x12 SoCs
Tomasz Figa (4):
ARM: EXYNOS: Skip wakeup-int setup if pinctrl driver is used on
Exynos4x12
gpio: samsung: Skip registration if pinctrl driver is present on
Exynos4x12
pinctrl: samsung: Add support for Exynos4x12
ARM: dts: exynos4x12: Add nodes for pin controllers
.../bindings/pinctrl/samsung-pinctrl.txt | 1 +
arch/arm/boot/dts/exynos4x12-pinctrl.dtsi | 965 +++++++++++++++++++++
arch/arm/boot/dts/exynos4x12.dtsi | 38 +
arch/arm/mach-exynos/common.c | 7 +-
drivers/gpio/gpio-samsung.c | 43 +-
drivers/pinctrl/pinctrl-exynos.c | 110 +++
drivers/pinctrl/pinctrl-samsung.c | 2 +
drivers/pinctrl/pinctrl-samsung.h | 1 +
8 files changed, 1144 insertions(+), 23 deletions(-)
create mode 100644 arch/arm/boot/dts/exynos4x12-pinctrl.dtsi
--
1.7.12
^ permalink raw reply [flat|nested] 36+ messages in thread* [PATCH 0/4] pinctrl: samsung: Add support for Exynos4x12 SoCs @ 2012-10-24 14:37 ` Tomasz Figa 0 siblings, 0 replies; 36+ messages in thread From: Tomasz Figa @ 2012-10-24 14:37 UTC (permalink / raw) To: linux-arm-kernel This patch series adds pinctrl support for SoCs from Exynos4x12 family. First two patches make necessary preperations to skip legacy GPIO and GPIO interrupt registration in case of Exynos4x12 SoCs which are not supported by legacy (non-DT) code. Third patch adds Exynos4x12-specific definitions to pinctrl-samsung driver. Fourth patch adds device nodes for pin controllers available on Exynos4x12 SoCs to Exynos4x12 device tree sources. This series depends on: - [PATCH] ARM: dts: exynos4: Add support for Exynos4x12 SoCs Tomasz Figa (4): ARM: EXYNOS: Skip wakeup-int setup if pinctrl driver is used on Exynos4x12 gpio: samsung: Skip registration if pinctrl driver is present on Exynos4x12 pinctrl: samsung: Add support for Exynos4x12 ARM: dts: exynos4x12: Add nodes for pin controllers .../bindings/pinctrl/samsung-pinctrl.txt | 1 + arch/arm/boot/dts/exynos4x12-pinctrl.dtsi | 965 +++++++++++++++++++++ arch/arm/boot/dts/exynos4x12.dtsi | 38 + arch/arm/mach-exynos/common.c | 7 +- drivers/gpio/gpio-samsung.c | 43 +- drivers/pinctrl/pinctrl-exynos.c | 110 +++ drivers/pinctrl/pinctrl-samsung.c | 2 + drivers/pinctrl/pinctrl-samsung.h | 1 + 8 files changed, 1144 insertions(+), 23 deletions(-) create mode 100644 arch/arm/boot/dts/exynos4x12-pinctrl.dtsi -- 1.7.12 ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH 1/4] ARM: EXYNOS: Skip wakeup-int setup if pinctrl driver is used on Exynos4x12 2012-10-24 14:37 ` Tomasz Figa @ 2012-10-24 14:37 ` Tomasz Figa -1 siblings, 0 replies; 36+ messages in thread From: Tomasz Figa @ 2012-10-24 14:37 UTC (permalink / raw) To: linux-arm-kernel Cc: linux-samsung-soc, devicetree-discuss, kgene.kim, kyungmin.park, m.szyprowski, t.figa, tomasz.figa, thomas.abraham, linus.walleij, swarren This patch modifies the old wakeup interrupt initialization code to detect pinctrl driver by using for_each_matching_node instead of for_each_compatible_node and adds match table for both Exynos4210 and Exynos4x12. Signed-off-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> --- arch/arm/mach-exynos/common.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c index cb891a7..109f878 100644 --- a/arch/arm/mach-exynos/common.c +++ b/arch/arm/mach-exynos/common.c @@ -1032,11 +1032,14 @@ static int __init exynos_init_irq_eint(void) * platforms switch over to using the pinctrl driver, the wakeup * interrupt support code here can be completely removed. */ + static const struct of_device_id exynos_pinctrl_ids[] = { + { .compatible = "samsung,pinctrl-exynos4210", }, + { .compatible = "samsung,pinctrl-exynos4x12", }, + }; struct device_node *pctrl_np, *wkup_np; - const char *pctrl_compat = "samsung,pinctrl-exynos4210"; const char *wkup_compat = "samsung,exynos4210-wakeup-eint"; - for_each_compatible_node(pctrl_np, NULL, pctrl_compat) { + for_each_matching_node(pctrl_np, exynos_pinctrl_ids) { if (of_device_is_available(pctrl_np)) { wkup_np = of_find_compatible_node(pctrl_np, NULL, wkup_compat); -- 1.7.12 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [PATCH 1/4] ARM: EXYNOS: Skip wakeup-int setup if pinctrl driver is used on Exynos4x12 @ 2012-10-24 14:37 ` Tomasz Figa 0 siblings, 0 replies; 36+ messages in thread From: Tomasz Figa @ 2012-10-24 14:37 UTC (permalink / raw) To: linux-arm-kernel This patch modifies the old wakeup interrupt initialization code to detect pinctrl driver by using for_each_matching_node instead of for_each_compatible_node and adds match table for both Exynos4210 and Exynos4x12. Signed-off-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> --- arch/arm/mach-exynos/common.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c index cb891a7..109f878 100644 --- a/arch/arm/mach-exynos/common.c +++ b/arch/arm/mach-exynos/common.c @@ -1032,11 +1032,14 @@ static int __init exynos_init_irq_eint(void) * platforms switch over to using the pinctrl driver, the wakeup * interrupt support code here can be completely removed. */ + static const struct of_device_id exynos_pinctrl_ids[] = { + { .compatible = "samsung,pinctrl-exynos4210", }, + { .compatible = "samsung,pinctrl-exynos4x12", }, + }; struct device_node *pctrl_np, *wkup_np; - const char *pctrl_compat = "samsung,pinctrl-exynos4210"; const char *wkup_compat = "samsung,exynos4210-wakeup-eint"; - for_each_compatible_node(pctrl_np, NULL, pctrl_compat) { + for_each_matching_node(pctrl_np, exynos_pinctrl_ids) { if (of_device_is_available(pctrl_np)) { wkup_np = of_find_compatible_node(pctrl_np, NULL, wkup_compat); -- 1.7.12 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [PATCH 2/4] gpio: samsung: Skip registration if pinctrl driver is present on Exynos4x12 2012-10-24 14:37 ` Tomasz Figa @ 2012-10-24 14:37 ` Tomasz Figa -1 siblings, 0 replies; 36+ messages in thread From: Tomasz Figa @ 2012-10-24 14:37 UTC (permalink / raw) To: linux-arm-kernel Cc: linux-samsung-soc, devicetree-discuss, kgene.kim, kyungmin.park, m.szyprowski, t.figa, tomasz.figa, thomas.abraham, linus.walleij, swarren This patch modifies the Samsung GPIO driver to check for pinctrl driver presence earlier and use generic matching instead of a single compatible value. This allows us to fix warning about unrecognized SoC in case of Exynos4x12, which is not supported by this driver. Signed-off-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> --- drivers/gpio/gpio-samsung.c | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/drivers/gpio/gpio-samsung.c b/drivers/gpio/gpio-samsung.c index 43c4595..01f7fe9 100644 --- a/drivers/gpio/gpio-samsung.c +++ b/drivers/gpio/gpio-samsung.c @@ -2796,27 +2796,6 @@ static __init void exynos4_gpiolib_init(void) int group = 0; void __iomem *gpx_base; -#ifdef CONFIG_PINCTRL_SAMSUNG - /* - * This gpio driver includes support for device tree support and - * there are platforms using it. In order to maintain - * compatibility with those platforms, and to allow non-dt - * Exynos4210 platforms to use this gpiolib support, a check - * is added to find out if there is a active pin-controller - * driver support available. If it is available, this gpiolib - * support is ignored and the gpiolib support available in - * pin-controller driver is used. This is a temporary check and - * will go away when all of the Exynos4210 platforms have - * switched to using device tree and the pin-ctrl driver. - */ - struct device_node *pctrl_np; - const char *pctrl_compat = "samsung,pinctrl-exynos4210"; - pctrl_np = of_find_compatible_node(NULL, NULL, pctrl_compat); - if (pctrl_np) - if (of_device_is_available(pctrl_np)) - return; -#endif - /* gpio part1 */ gpio_base1 = ioremap(EXYNOS4_PA_GPIO1, SZ_4K); if (gpio_base1 == NULL) { @@ -3031,6 +3010,28 @@ static __init int samsung_gpiolib_init(void) int i, nr_chips; int group = 0; +#ifdef CONFIG_PINCTRL_SAMSUNG + /* + * This gpio driver includes support for device tree support and there + * are platforms using it. In order to maintain compatibility with those + * platforms, and to allow non-dt Exynos4210 platforms to use this + * gpiolib support, a check is added to find out if there is a active + * pin-controller driver support available. If it is available, this + * gpiolib support is ignored and the gpiolib support available in + * pin-controller driver is used. This is a temporary check and will go + * away when all of the Exynos4210 platforms have switched to using + * device tree and the pin-ctrl driver. + */ + struct device_node *pctrl_np; + static const struct of_device_id exynos_pinctrl_ids[] = { + { .compatible = "samsung,pinctrl-exynos4210", }, + { .compatible = "samsung,pinctrl-exynos4x12", }, + }; + for_each_matching_node(pctrl_np, exynos_pinctrl_ids) + if (pctrl_np && of_device_is_available(pctrl_np)) + return -ENODEV; +#endif + samsung_gpiolib_set_cfg(samsung_gpio_cfgs, ARRAY_SIZE(samsung_gpio_cfgs)); if (soc_is_s3c24xx()) { -- 1.7.12 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [PATCH 2/4] gpio: samsung: Skip registration if pinctrl driver is present on Exynos4x12 @ 2012-10-24 14:37 ` Tomasz Figa 0 siblings, 0 replies; 36+ messages in thread From: Tomasz Figa @ 2012-10-24 14:37 UTC (permalink / raw) To: linux-arm-kernel This patch modifies the Samsung GPIO driver to check for pinctrl driver presence earlier and use generic matching instead of a single compatible value. This allows us to fix warning about unrecognized SoC in case of Exynos4x12, which is not supported by this driver. Signed-off-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> --- drivers/gpio/gpio-samsung.c | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/drivers/gpio/gpio-samsung.c b/drivers/gpio/gpio-samsung.c index 43c4595..01f7fe9 100644 --- a/drivers/gpio/gpio-samsung.c +++ b/drivers/gpio/gpio-samsung.c @@ -2796,27 +2796,6 @@ static __init void exynos4_gpiolib_init(void) int group = 0; void __iomem *gpx_base; -#ifdef CONFIG_PINCTRL_SAMSUNG - /* - * This gpio driver includes support for device tree support and - * there are platforms using it. In order to maintain - * compatibility with those platforms, and to allow non-dt - * Exynos4210 platforms to use this gpiolib support, a check - * is added to find out if there is a active pin-controller - * driver support available. If it is available, this gpiolib - * support is ignored and the gpiolib support available in - * pin-controller driver is used. This is a temporary check and - * will go away when all of the Exynos4210 platforms have - * switched to using device tree and the pin-ctrl driver. - */ - struct device_node *pctrl_np; - const char *pctrl_compat = "samsung,pinctrl-exynos4210"; - pctrl_np = of_find_compatible_node(NULL, NULL, pctrl_compat); - if (pctrl_np) - if (of_device_is_available(pctrl_np)) - return; -#endif - /* gpio part1 */ gpio_base1 = ioremap(EXYNOS4_PA_GPIO1, SZ_4K); if (gpio_base1 == NULL) { @@ -3031,6 +3010,28 @@ static __init int samsung_gpiolib_init(void) int i, nr_chips; int group = 0; +#ifdef CONFIG_PINCTRL_SAMSUNG + /* + * This gpio driver includes support for device tree support and there + * are platforms using it. In order to maintain compatibility with those + * platforms, and to allow non-dt Exynos4210 platforms to use this + * gpiolib support, a check is added to find out if there is a active + * pin-controller driver support available. If it is available, this + * gpiolib support is ignored and the gpiolib support available in + * pin-controller driver is used. This is a temporary check and will go + * away when all of the Exynos4210 platforms have switched to using + * device tree and the pin-ctrl driver. + */ + struct device_node *pctrl_np; + static const struct of_device_id exynos_pinctrl_ids[] = { + { .compatible = "samsung,pinctrl-exynos4210", }, + { .compatible = "samsung,pinctrl-exynos4x12", }, + }; + for_each_matching_node(pctrl_np, exynos_pinctrl_ids) + if (pctrl_np && of_device_is_available(pctrl_np)) + return -ENODEV; +#endif + samsung_gpiolib_set_cfg(samsung_gpio_cfgs, ARRAY_SIZE(samsung_gpio_cfgs)); if (soc_is_s3c24xx()) { -- 1.7.12 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* Re: [PATCH 2/4] gpio: samsung: Skip registration if pinctrl driver is present on Exynos4x12 2012-10-24 14:37 ` Tomasz Figa @ 2012-10-28 19:11 ` Linus Walleij -1 siblings, 0 replies; 36+ messages in thread From: Linus Walleij @ 2012-10-28 19:11 UTC (permalink / raw) To: Tomasz Figa Cc: linux-arm-kernel, linux-samsung-soc, devicetree-discuss, kgene.kim, kyungmin.park, m.szyprowski, tomasz.figa, thomas.abraham, swarren On Wed, Oct 24, 2012 at 4:37 PM, Tomasz Figa <t.figa@samsung.com> wrote: > This patch modifies the Samsung GPIO driver to check for pinctrl driver > presence earlier and use generic matching instead of a single compatible > value. > > This allows us to fix warning about unrecognized SoC in case of > Exynos4x12, which is not supported by this driver. > > Signed-off-by: Tomasz Figa <t.figa@samsung.com> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Tell me if there is something you want merged through the GPIO or pinctrl tree. I have this Samsung branch on the pinctrl tree... Yours, Linus Walleij ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH 2/4] gpio: samsung: Skip registration if pinctrl driver is present on Exynos4x12 @ 2012-10-28 19:11 ` Linus Walleij 0 siblings, 0 replies; 36+ messages in thread From: Linus Walleij @ 2012-10-28 19:11 UTC (permalink / raw) To: linux-arm-kernel On Wed, Oct 24, 2012 at 4:37 PM, Tomasz Figa <t.figa@samsung.com> wrote: > This patch modifies the Samsung GPIO driver to check for pinctrl driver > presence earlier and use generic matching instead of a single compatible > value. > > This allows us to fix warning about unrecognized SoC in case of > Exynos4x12, which is not supported by this driver. > > Signed-off-by: Tomasz Figa <t.figa@samsung.com> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Tell me if there is something you want merged through the GPIO or pinctrl tree. I have this Samsung branch on the pinctrl tree... Yours, Linus Walleij ^ permalink raw reply [flat|nested] 36+ messages in thread
* RE: [PATCH 2/4] gpio: samsung: Skip registration if pinctrl driver is present on Exynos4x12 2012-10-28 19:11 ` Linus Walleij @ 2012-11-07 4:41 ` Kukjin Kim -1 siblings, 0 replies; 36+ messages in thread From: Kukjin Kim @ 2012-11-07 4:41 UTC (permalink / raw) To: 'Linus Walleij', 'Tomasz Figa' Cc: linux-arm-kernel, linux-samsung-soc, devicetree-discuss, kyungmin.park, m.szyprowski, tomasz.figa, thomas.abraham, swarren Linus Walleij wrote: > > On Wed, Oct 24, 2012 at 4:37 PM, Tomasz Figa <t.figa@samsung.com> wrote: > > > This patch modifies the Samsung GPIO driver to check for pinctrl driver > > presence earlier and use generic matching instead of a single compatible > > value. > > > > This allows us to fix warning about unrecognized SoC in case of > > Exynos4x12, which is not supported by this driver. > > > > Signed-off-by: Tomasz Figa <t.figa@samsung.com> > > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> > > Acked-by: Linus Walleij <linus.walleij@linaro.org> > > Tell me if there is something you want merged through > the GPIO or pinctrl tree. I have this Samsung branch on the > pinctrl tree... > Hi Linus, A commit 1b6056d6 ("pinctrl: samsung: Include bank-specific eint offset in bank struct") which is in your pinctrl tree (samsung branch) changed macro(EXYNOS_PIN_BANK_EINTG) to add offset. Eventually, this series(due to 3rd patch, pinctrl: samsung: Add support for Exynos4x12) breaks compilation without the commit. So if you don't have a plan to rebase samsung branch of your pinctrl tree, I'd like to merge it in my tree. Is it ok to you? Thanks. Best regards, Kgene. -- Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd. ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH 2/4] gpio: samsung: Skip registration if pinctrl driver is present on Exynos4x12 @ 2012-11-07 4:41 ` Kukjin Kim 0 siblings, 0 replies; 36+ messages in thread From: Kukjin Kim @ 2012-11-07 4:41 UTC (permalink / raw) To: linux-arm-kernel Linus Walleij wrote: > > On Wed, Oct 24, 2012 at 4:37 PM, Tomasz Figa <t.figa@samsung.com> wrote: > > > This patch modifies the Samsung GPIO driver to check for pinctrl driver > > presence earlier and use generic matching instead of a single compatible > > value. > > > > This allows us to fix warning about unrecognized SoC in case of > > Exynos4x12, which is not supported by this driver. > > > > Signed-off-by: Tomasz Figa <t.figa@samsung.com> > > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> > > Acked-by: Linus Walleij <linus.walleij@linaro.org> > > Tell me if there is something you want merged through > the GPIO or pinctrl tree. I have this Samsung branch on the > pinctrl tree... > Hi Linus, A commit 1b6056d6 ("pinctrl: samsung: Include bank-specific eint offset in bank struct") which is in your pinctrl tree (samsung branch) changed macro(EXYNOS_PIN_BANK_EINTG) to add offset. Eventually, this series(due to 3rd patch, pinctrl: samsung: Add support for Exynos4x12) breaks compilation without the commit. So if you don't have a plan to rebase samsung branch of your pinctrl tree, I'd like to merge it in my tree. Is it ok to you? Thanks. Best regards, Kgene. -- Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd. ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [PATCH 2/4] gpio: samsung: Skip registration if pinctrl driver is present on Exynos4x12 2012-11-07 4:41 ` Kukjin Kim @ 2012-11-08 21:12 ` Linus Walleij -1 siblings, 0 replies; 36+ messages in thread From: Linus Walleij @ 2012-11-08 21:12 UTC (permalink / raw) To: Kukjin Kim Cc: Tomasz Figa, linux-arm-kernel, linux-samsung-soc, devicetree-discuss, kyungmin.park, m.szyprowski, tomasz.figa, thomas.abraham, swarren On Wed, Nov 7, 2012 at 5:41 AM, Kukjin Kim <kgene.kim@samsung.com> wrote: > A commit 1b6056d6 ("pinctrl: samsung: Include bank-specific eint offset in > bank struct") which is in your pinctrl tree (samsung branch) changed > macro(EXYNOS_PIN_BANK_EINTG) to add offset. Eventually, this series(due to > 3rd patch, pinctrl: samsung: Add support for Exynos4x12) breaks compilation > without the commit. So if you don't have a plan to rebase samsung branch of > your pinctrl tree, I'd like to merge it in my tree. Is it ok to you? Sure tell me when you've merged it and I'll drop commit 1b6056d6 from my tree. Yours, Linus Walleij ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH 2/4] gpio: samsung: Skip registration if pinctrl driver is present on Exynos4x12 @ 2012-11-08 21:12 ` Linus Walleij 0 siblings, 0 replies; 36+ messages in thread From: Linus Walleij @ 2012-11-08 21:12 UTC (permalink / raw) To: linux-arm-kernel On Wed, Nov 7, 2012 at 5:41 AM, Kukjin Kim <kgene.kim@samsung.com> wrote: > A commit 1b6056d6 ("pinctrl: samsung: Include bank-specific eint offset in > bank struct") which is in your pinctrl tree (samsung branch) changed > macro(EXYNOS_PIN_BANK_EINTG) to add offset. Eventually, this series(due to > 3rd patch, pinctrl: samsung: Add support for Exynos4x12) breaks compilation > without the commit. So if you don't have a plan to rebase samsung branch of > your pinctrl tree, I'd like to merge it in my tree. Is it ok to you? Sure tell me when you've merged it and I'll drop commit 1b6056d6 from my tree. Yours, Linus Walleij ^ permalink raw reply [flat|nested] 36+ messages in thread
* RE: [PATCH 2/4] gpio: samsung: Skip registration if pinctrl driver is present on Exynos4x12 2012-11-08 21:12 ` Linus Walleij @ 2012-11-09 10:09 ` Kukjin Kim -1 siblings, 0 replies; 36+ messages in thread From: Kukjin Kim @ 2012-11-09 10:09 UTC (permalink / raw) To: 'Linus Walleij' Cc: 'Tomasz Figa', linux-arm-kernel, linux-samsung-soc, tomasz.figa, thomas.abraham Linus Walleij wrote: > > On Wed, Nov 7, 2012 at 5:41 AM, Kukjin Kim <kgene.kim@samsung.com> wrote: > > > A commit 1b6056d6 ("pinctrl: samsung: Include bank-specific eint offset > in > > bank struct") which is in your pinctrl tree (samsung branch) changed > > macro(EXYNOS_PIN_BANK_EINTG) to add offset. Eventually, this series(due > to > > 3rd patch, pinctrl: samsung: Add support for Exynos4x12) breaks > compilation > > without the commit. So if you don't have a plan to rebase samsung branch > of > > your pinctrl tree, I'd like to merge it in my tree. Is it ok to you? > > Sure tell me when you've merged it and I'll drop commit 1b6056d6 > from my tree. > Thanks :-) (- some guys in Cc...) But having a problem, the 'it' means the commit 1b6056d6? If so, I couldn't cherry-pick only that because of dependency with other commits 40ba622 and 3a232ba. $ git cherry-pick -s 40ba622 [next/dt-exynos4x12 3b1977c] pinctrl: samsung: Assing pin numbers dynamically Author: Tomasz Figa <t.figa@samsung.com> 3 files changed, 62 insertions(+), 54 deletions(-) $ git cherry-pick -s 3a232ba [next/dt-exynos4x12 7fa08a4] pinctrl: samsung: Remove static pin enumerations Author: Tomasz Figa <t.figa@samsung.com> 1 files changed, 96 insertions(+), 215 deletions(-) rewrite drivers/pinctrl/pinctrl-exynos.h (66%) $ git cherry-pick -s 1b6056d [next/dt-exynos4x12 86010aa] pinctrl: samsung: Include bank-specific eint offset in bank struct Author: Tomasz Figa <t.figa@samsung.com> 3 files changed, 30 insertions(+), 29 deletions(-) I could cherry-pick clearly with 2 more commits. Can you drop above 3 commits in your tree? If many conflicts happens during rebasing, how about that I merge your pinctrl/samsung branch into Samsung tree?... $ git log --oneline pinctrl/samsung v3.7-rc1..pinctrl/samsung b33ef91 Documentation: Update samsung-pinctrl device tree bindings documentation a19fe2d pinctrl: samsung: Add GPIO to IRQ translation 22b9ba0 pinctrl: exynos: Set pin function to EINT in irq_set_type of wake-up EINT a04b07c pinctrl: samsung: Use per-bank IRQ domain for wake-up interrupts d3a7b9e pinctrl: samsung: Use one GPIO chip per pin bank 595be72 pinctrl: exynos: Use one IRQ domain per pin bank 1b6056d pinctrl: samsung: Include bank-specific eint offset in bank struct 6defe9a pinctrl: samsung: Hold pointer to driver data in bank struct ab66378 pinctrl: samsung: Match pin banks with their device nodes a7a8241 ARM: dts: exynos4210-pinctrl: Add nodes for pin banks 724e56a pinctrl: samsung: Distinguish between pin group and bank nodes 3a232ba pinctrl: samsung: Remove static pin enumerations 40ba622 pinctrl: samsung: Assing pin numbers dynamically 62f14c0 pinctrl: samsung: Do not pass gpio_chip to pin_to_reg_bank 7c367d3 pinctrl: samsung: Detect and handle unsupported configuration types Thanks. Best regards, Kgene. -- Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd. ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH 2/4] gpio: samsung: Skip registration if pinctrl driver is present on Exynos4x12 @ 2012-11-09 10:09 ` Kukjin Kim 0 siblings, 0 replies; 36+ messages in thread From: Kukjin Kim @ 2012-11-09 10:09 UTC (permalink / raw) To: linux-arm-kernel Linus Walleij wrote: > > On Wed, Nov 7, 2012 at 5:41 AM, Kukjin Kim <kgene.kim@samsung.com> wrote: > > > A commit 1b6056d6 ("pinctrl: samsung: Include bank-specific eint offset > in > > bank struct") which is in your pinctrl tree (samsung branch) changed > > macro(EXYNOS_PIN_BANK_EINTG) to add offset. Eventually, this series(due > to > > 3rd patch, pinctrl: samsung: Add support for Exynos4x12) breaks > compilation > > without the commit. So if you don't have a plan to rebase samsung branch > of > > your pinctrl tree, I'd like to merge it in my tree. Is it ok to you? > > Sure tell me when you've merged it and I'll drop commit 1b6056d6 > from my tree. > Thanks :-) (- some guys in Cc...) But having a problem, the 'it' means the commit 1b6056d6? If so, I couldn't cherry-pick only that because of dependency with other commits 40ba622 and 3a232ba. $ git cherry-pick -s 40ba622 [next/dt-exynos4x12 3b1977c] pinctrl: samsung: Assing pin numbers dynamically Author: Tomasz Figa <t.figa@samsung.com> 3 files changed, 62 insertions(+), 54 deletions(-) $ git cherry-pick -s 3a232ba [next/dt-exynos4x12 7fa08a4] pinctrl: samsung: Remove static pin enumerations Author: Tomasz Figa <t.figa@samsung.com> 1 files changed, 96 insertions(+), 215 deletions(-) rewrite drivers/pinctrl/pinctrl-exynos.h (66%) $ git cherry-pick -s 1b6056d [next/dt-exynos4x12 86010aa] pinctrl: samsung: Include bank-specific eint offset in bank struct Author: Tomasz Figa <t.figa@samsung.com> 3 files changed, 30 insertions(+), 29 deletions(-) I could cherry-pick clearly with 2 more commits. Can you drop above 3 commits in your tree? If many conflicts happens during rebasing, how about that I merge your pinctrl/samsung branch into Samsung tree?... $ git log --oneline pinctrl/samsung v3.7-rc1..pinctrl/samsung b33ef91 Documentation: Update samsung-pinctrl device tree bindings documentation a19fe2d pinctrl: samsung: Add GPIO to IRQ translation 22b9ba0 pinctrl: exynos: Set pin function to EINT in irq_set_type of wake-up EINT a04b07c pinctrl: samsung: Use per-bank IRQ domain for wake-up interrupts d3a7b9e pinctrl: samsung: Use one GPIO chip per pin bank 595be72 pinctrl: exynos: Use one IRQ domain per pin bank 1b6056d pinctrl: samsung: Include bank-specific eint offset in bank struct 6defe9a pinctrl: samsung: Hold pointer to driver data in bank struct ab66378 pinctrl: samsung: Match pin banks with their device nodes a7a8241 ARM: dts: exynos4210-pinctrl: Add nodes for pin banks 724e56a pinctrl: samsung: Distinguish between pin group and bank nodes 3a232ba pinctrl: samsung: Remove static pin enumerations 40ba622 pinctrl: samsung: Assing pin numbers dynamically 62f14c0 pinctrl: samsung: Do not pass gpio_chip to pin_to_reg_bank 7c367d3 pinctrl: samsung: Detect and handle unsupported configuration types Thanks. Best regards, Kgene. -- Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd. ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [PATCH 2/4] gpio: samsung: Skip registration if pinctrl driver is present on Exynos4x12 2012-11-09 10:09 ` Kukjin Kim @ 2012-11-11 18:35 ` Linus Walleij -1 siblings, 0 replies; 36+ messages in thread From: Linus Walleij @ 2012-11-11 18:35 UTC (permalink / raw) To: Kukjin Kim, Axel Lin Cc: Tomasz Figa, linux-arm-kernel, linux-samsung-soc, tomasz.figa, thomas.abraham On Fri, Nov 9, 2012 at 11:09 AM, Kukjin Kim <kgene.kim@samsung.com> wrote: >> On Wed, Nov 7, 2012 at 5:41 AM, Kukjin Kim <kgene.kim@samsung.com> wrote: >> >> > A commit 1b6056d6 ("pinctrl: samsung: Include bank-specific eint offset >> in >> > bank struct") which is in your pinctrl tree (samsung branch) changed >> > macro(EXYNOS_PIN_BANK_EINTG) to add offset. Eventually, this series(due >> to >> > 3rd patch, pinctrl: samsung: Add support for Exynos4x12) breaks >> compilation >> > without the commit. So if you don't have a plan to rebase samsung branch >> of >> > your pinctrl tree, I'd like to merge it in my tree. Is it ok to you? >> >> Sure tell me when you've merged it and I'll drop commit 1b6056d6 >> from my tree. >> > > Thanks :-) > > (- some guys in Cc...) > > But having a problem, the 'it' means the commit 1b6056d6? If so, I couldn't > cherry-pick only that because of dependency with other commits 40ba622 and > 3a232ba. > > $ git cherry-pick -s 40ba622 > [next/dt-exynos4x12 3b1977c] pinctrl: samsung: Assing pin numbers > dynamically > Author: Tomasz Figa <t.figa@samsung.com> > 3 files changed, 62 insertions(+), 54 deletions(-) > > $ git cherry-pick -s 3a232ba > [next/dt-exynos4x12 7fa08a4] pinctrl: samsung: Remove static pin > enumerations > Author: Tomasz Figa <t.figa@samsung.com> > 1 files changed, 96 insertions(+), 215 deletions(-) > rewrite drivers/pinctrl/pinctrl-exynos.h (66%) > > $ git cherry-pick -s 1b6056d > [next/dt-exynos4x12 86010aa] pinctrl: samsung: Include bank-specific eint > offset in bank struct > Author: Tomasz Figa <t.figa@samsung.com> > 3 files changed, 30 insertions(+), 29 deletions(-) > > I could cherry-pick clearly with 2 more commits. > > Can you drop above 3 commits in your tree? If many conflicts happens during > rebasing, how about that I merge your pinctrl/samsung branch into Samsung > tree?... Why not :-) I have removed the samsung branch from my for-next to avoid clashes. So please bring the samsung branch into you tree and fix everything up there. Axel Lin has sent some tree-wide cleanups but let's hope they don't hit samsung so much, or they will need to be postponed/dropped. Yours, Linus Walleij ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH 2/4] gpio: samsung: Skip registration if pinctrl driver is present on Exynos4x12 @ 2012-11-11 18:35 ` Linus Walleij 0 siblings, 0 replies; 36+ messages in thread From: Linus Walleij @ 2012-11-11 18:35 UTC (permalink / raw) To: linux-arm-kernel On Fri, Nov 9, 2012 at 11:09 AM, Kukjin Kim <kgene.kim@samsung.com> wrote: >> On Wed, Nov 7, 2012 at 5:41 AM, Kukjin Kim <kgene.kim@samsung.com> wrote: >> >> > A commit 1b6056d6 ("pinctrl: samsung: Include bank-specific eint offset >> in >> > bank struct") which is in your pinctrl tree (samsung branch) changed >> > macro(EXYNOS_PIN_BANK_EINTG) to add offset. Eventually, this series(due >> to >> > 3rd patch, pinctrl: samsung: Add support for Exynos4x12) breaks >> compilation >> > without the commit. So if you don't have a plan to rebase samsung branch >> of >> > your pinctrl tree, I'd like to merge it in my tree. Is it ok to you? >> >> Sure tell me when you've merged it and I'll drop commit 1b6056d6 >> from my tree. >> > > Thanks :-) > > (- some guys in Cc...) > > But having a problem, the 'it' means the commit 1b6056d6? If so, I couldn't > cherry-pick only that because of dependency with other commits 40ba622 and > 3a232ba. > > $ git cherry-pick -s 40ba622 > [next/dt-exynos4x12 3b1977c] pinctrl: samsung: Assing pin numbers > dynamically > Author: Tomasz Figa <t.figa@samsung.com> > 3 files changed, 62 insertions(+), 54 deletions(-) > > $ git cherry-pick -s 3a232ba > [next/dt-exynos4x12 7fa08a4] pinctrl: samsung: Remove static pin > enumerations > Author: Tomasz Figa <t.figa@samsung.com> > 1 files changed, 96 insertions(+), 215 deletions(-) > rewrite drivers/pinctrl/pinctrl-exynos.h (66%) > > $ git cherry-pick -s 1b6056d > [next/dt-exynos4x12 86010aa] pinctrl: samsung: Include bank-specific eint > offset in bank struct > Author: Tomasz Figa <t.figa@samsung.com> > 3 files changed, 30 insertions(+), 29 deletions(-) > > I could cherry-pick clearly with 2 more commits. > > Can you drop above 3 commits in your tree? If many conflicts happens during > rebasing, how about that I merge your pinctrl/samsung branch into Samsung > tree?... Why not :-) I have removed the samsung branch from my for-next to avoid clashes. So please bring the samsung branch into you tree and fix everything up there. Axel Lin has sent some tree-wide cleanups but let's hope they don't hit samsung so much, or they will need to be postponed/dropped. Yours, Linus Walleij ^ permalink raw reply [flat|nested] 36+ messages in thread
* RE: [PATCH 2/4] gpio: samsung: Skip registration if pinctrl driver is present on Exynos4x12 2012-11-11 18:35 ` Linus Walleij @ 2012-11-12 5:03 ` Kukjin Kim -1 siblings, 0 replies; 36+ messages in thread From: Kukjin Kim @ 2012-11-12 5:03 UTC (permalink / raw) To: 'Linus Walleij', 'Axel Lin' Cc: 'Tomasz Figa', linux-arm-kernel, linux-samsung-soc, tomasz.figa, thomas.abraham Linus Walleij wrote: > > > > > Can you drop above 3 commits in your tree? If many conflicts happens > during > > rebasing, how about that I merge your pinctrl/samsung branch into > Samsung > > tree?... > > Why not :-) > > I have removed the samsung branch from my for-next to avoid > clashes. > Thanks ;-) > So please bring the samsung branch into you tree and fix > everything up there. > I did. > Axel Lin has sent some tree-wide cleanups but let's hope they don't > hit samsung so much, or they will need to be postponed/dropped. > OK, I see. Thanks again. Best regards, Kgene. -- Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd. ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH 2/4] gpio: samsung: Skip registration if pinctrl driver is present on Exynos4x12 @ 2012-11-12 5:03 ` Kukjin Kim 0 siblings, 0 replies; 36+ messages in thread From: Kukjin Kim @ 2012-11-12 5:03 UTC (permalink / raw) To: linux-arm-kernel Linus Walleij wrote: > > > > > Can you drop above 3 commits in your tree? If many conflicts happens > during > > rebasing, how about that I merge your pinctrl/samsung branch into > Samsung > > tree?... > > Why not :-) > > I have removed the samsung branch from my for-next to avoid > clashes. > Thanks ;-) > So please bring the samsung branch into you tree and fix > everything up there. > I did. > Axel Lin has sent some tree-wide cleanups but let's hope they don't > hit samsung so much, or they will need to be postponed/dropped. > OK, I see. Thanks again. Best regards, Kgene. -- Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd. ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH 3/4] pinctrl: samsung: Add support for Exynos4x12 2012-10-24 14:37 ` Tomasz Figa @ 2012-10-24 14:37 ` Tomasz Figa -1 siblings, 0 replies; 36+ messages in thread From: Tomasz Figa @ 2012-10-24 14:37 UTC (permalink / raw) To: linux-arm-kernel Cc: linux-samsung-soc, devicetree-discuss, kgene.kim, kyungmin.park, m.szyprowski, t.figa, tomasz.figa, thomas.abraham, linus.walleij, swarren This patch extends the driver with any necessary SoC-specific definitions to support Exynos4x12 SoCs. Signed-off-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> --- .../bindings/pinctrl/samsung-pinctrl.txt | 1 + drivers/pinctrl/pinctrl-exynos.c | 110 +++++++++++++++++++++ drivers/pinctrl/pinctrl-samsung.c | 2 + drivers/pinctrl/pinctrl-samsung.h | 1 + 4 files changed, 114 insertions(+) diff --git a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt index 63806e2..e97a278 100644 --- a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt @@ -8,6 +8,7 @@ on-chip controllers onto these pads. Required Properties: - compatible: should be one of the following. - "samsung,pinctrl-exynos4210": for Exynos4210 compatible pin-controller. + - "samsung,pinctrl-exynos4x12": for Exynos4x12 compatible pin-controller. - "samsung,pinctrl-exynos5250": for Exynos5250 compatible pin-controller. - reg: Base address of the pin controller hardware module and length of diff --git a/drivers/pinctrl/pinctrl-exynos.c b/drivers/pinctrl/pinctrl-exynos.c index 73a0aa2..19fab68 100644 --- a/drivers/pinctrl/pinctrl-exynos.c +++ b/drivers/pinctrl/pinctrl-exynos.c @@ -566,3 +566,113 @@ struct samsung_pin_ctrl exynos4210_pin_ctrl[] = { .label = "exynos4210-gpio-ctrl2", }, }; + +/* pin banks of exynos4x12 pin-controller 0 */ +static struct samsung_pin_bank exynos4x12_pin_banks0[] = { + EXYNOS_PIN_BANK_EINTG(8, 0x000, "gpa0", 0x00), + EXYNOS_PIN_BANK_EINTG(6, 0x020, "gpa1", 0x04), + EXYNOS_PIN_BANK_EINTG(8, 0x040, "gpb", 0x08), + EXYNOS_PIN_BANK_EINTG(5, 0x060, "gpc0", 0x0c), + EXYNOS_PIN_BANK_EINTG(5, 0x080, "gpc1", 0x10), + EXYNOS_PIN_BANK_EINTG(4, 0x0A0, "gpd0", 0x14), + EXYNOS_PIN_BANK_EINTG(4, 0x0C0, "gpd1", 0x18), + EXYNOS_PIN_BANK_EINTG(8, 0x180, "gpf0", 0x30), + EXYNOS_PIN_BANK_EINTG(8, 0x1A0, "gpf1", 0x34), + EXYNOS_PIN_BANK_EINTG(8, 0x1C0, "gpf2", 0x38), + EXYNOS_PIN_BANK_EINTG(6, 0x1E0, "gpf3", 0x3c), + EXYNOS_PIN_BANK_EINTG(8, 0x240, "gpj0", 0x40), + EXYNOS_PIN_BANK_EINTG(5, 0x260, "gpj1", 0x44), +}; + +/* pin banks of exynos4x12 pin-controller 1 */ +static struct samsung_pin_bank exynos4x12_pin_banks1[] = { + EXYNOS_PIN_BANK_EINTG(7, 0x040, "gpk0", 0x08), + EXYNOS_PIN_BANK_EINTG(7, 0x060, "gpk1", 0x0c), + EXYNOS_PIN_BANK_EINTG(7, 0x080, "gpk2", 0x10), + EXYNOS_PIN_BANK_EINTG(7, 0x0A0, "gpk3", 0x14), + EXYNOS_PIN_BANK_EINTG(7, 0x0C0, "gpl0", 0x18), + EXYNOS_PIN_BANK_EINTG(2, 0x0E0, "gpl1", 0x1c), + EXYNOS_PIN_BANK_EINTG(8, 0x100, "gpl2", 0x20), + EXYNOS_PIN_BANK_EINTG(8, 0x260, "gpm0", 0x24), + EXYNOS_PIN_BANK_EINTG(7, 0x280, "gpm1", 0x28), + EXYNOS_PIN_BANK_EINTG(5, 0x2A0, "gpm2", 0x2c), + EXYNOS_PIN_BANK_EINTG(8, 0x2C0, "gpm3", 0x30), + EXYNOS_PIN_BANK_EINTG(8, 0x2E0, "gpm4", 0x34), + EXYNOS_PIN_BANK_EINTN(6, 0x120, "gpy0"), + EXYNOS_PIN_BANK_EINTN(4, 0x140, "gpy1"), + EXYNOS_PIN_BANK_EINTN(6, 0x160, "gpy2"), + EXYNOS_PIN_BANK_EINTN(8, 0x180, "gpy3"), + EXYNOS_PIN_BANK_EINTN(8, 0x1A0, "gpy4"), + EXYNOS_PIN_BANK_EINTN(8, 0x1C0, "gpy5"), + EXYNOS_PIN_BANK_EINTN(8, 0x1E0, "gpy6"), + EXYNOS_PIN_BANK_EINTW(8, 0xC00, "gpx0", 0x00), + EXYNOS_PIN_BANK_EINTW(8, 0xC20, "gpx1", 0x04), + EXYNOS_PIN_BANK_EINTW(8, 0xC40, "gpx2", 0x08), + EXYNOS_PIN_BANK_EINTW(8, 0xC60, "gpx3", 0x0c), +}; + +/* pin banks of exynos4x12 pin-controller 2 */ +static struct samsung_pin_bank exynos4x12_pin_banks2[] = { + EXYNOS_PIN_BANK_EINTG(7, 0x000, "gpz", 0x00), +}; + +/* pin banks of exynos4x12 pin-controller 3 */ +static struct samsung_pin_bank exynos4x12_pin_banks3[] = { + EXYNOS_PIN_BANK_EINTG(8, 0x000, "gpv0", 0x00), + EXYNOS_PIN_BANK_EINTG(8, 0x020, "gpv1", 0x04), + EXYNOS_PIN_BANK_EINTG(8, 0x040, "gpv2", 0x08), + EXYNOS_PIN_BANK_EINTG(8, 0x060, "gpv3", 0x0c), + EXYNOS_PIN_BANK_EINTG(2, 0x080, "gpv4", 0x10), +}; + +/* + * Samsung pinctrl driver data for Exynos4x12 SoC. Exynos4x12 SoC includes + * four gpio/pin-mux/pinconfig controllers. + */ +struct samsung_pin_ctrl exynos4x12_pin_ctrl[] = { + { + /* pin-controller instance 0 data */ + .pin_banks = exynos4x12_pin_banks0, + .nr_banks = ARRAY_SIZE(exynos4x12_pin_banks0), + .geint_con = EXYNOS_GPIO_ECON_OFFSET, + .geint_mask = EXYNOS_GPIO_EMASK_OFFSET, + .geint_pend = EXYNOS_GPIO_EPEND_OFFSET, + .svc = EXYNOS_SVC_OFFSET, + .eint_gpio_init = exynos_eint_gpio_init, + .label = "exynos4x12-gpio-ctrl0", + }, { + /* pin-controller instance 1 data */ + .pin_banks = exynos4x12_pin_banks1, + .nr_banks = ARRAY_SIZE(exynos4x12_pin_banks1), + .geint_con = EXYNOS_GPIO_ECON_OFFSET, + .geint_mask = EXYNOS_GPIO_EMASK_OFFSET, + .geint_pend = EXYNOS_GPIO_EPEND_OFFSET, + .weint_con = EXYNOS_WKUP_ECON_OFFSET, + .weint_mask = EXYNOS_WKUP_EMASK_OFFSET, + .weint_pend = EXYNOS_WKUP_EPEND_OFFSET, + .svc = EXYNOS_SVC_OFFSET, + .eint_gpio_init = exynos_eint_gpio_init, + .eint_wkup_init = exynos_eint_wkup_init, + .label = "exynos4x12-gpio-ctrl1", + }, { + /* pin-controller instance 2 data */ + .pin_banks = exynos4x12_pin_banks2, + .nr_banks = ARRAY_SIZE(exynos4x12_pin_banks2), + .geint_con = EXYNOS_GPIO_ECON_OFFSET, + .geint_mask = EXYNOS_GPIO_EMASK_OFFSET, + .geint_pend = EXYNOS_GPIO_EPEND_OFFSET, + .svc = EXYNOS_SVC_OFFSET, + .eint_gpio_init = exynos_eint_gpio_init, + .label = "exynos4x12-gpio-ctrl2", + }, { + /* pin-controller instance 3 data */ + .pin_banks = exynos4x12_pin_banks3, + .nr_banks = ARRAY_SIZE(exynos4x12_pin_banks3), + .geint_con = EXYNOS_GPIO_ECON_OFFSET, + .geint_mask = EXYNOS_GPIO_EMASK_OFFSET, + .geint_pend = EXYNOS_GPIO_EPEND_OFFSET, + .svc = EXYNOS_SVC_OFFSET, + .eint_gpio_init = exynos_eint_gpio_init, + .label = "exynos4x12-gpio-ctrl3", + }, +}; diff --git a/drivers/pinctrl/pinctrl-samsung.c b/drivers/pinctrl/pinctrl-samsung.c index fc34cac..81c9896 100644 --- a/drivers/pinctrl/pinctrl-samsung.c +++ b/drivers/pinctrl/pinctrl-samsung.c @@ -947,6 +947,8 @@ static int __devinit samsung_pinctrl_probe(struct platform_device *pdev) static const struct of_device_id samsung_pinctrl_dt_match[] = { { .compatible = "samsung,pinctrl-exynos4210", .data = (void *)exynos4210_pin_ctrl }, + { .compatible = "samsung,pinctrl-exynos4x12", + .data = (void *)exynos4x12_pin_ctrl }, {}, }; MODULE_DEVICE_TABLE(of, samsung_pinctrl_dt_match); diff --git a/drivers/pinctrl/pinctrl-samsung.h b/drivers/pinctrl/pinctrl-samsung.h index 0670d9e..5addfd1 100644 --- a/drivers/pinctrl/pinctrl-samsung.h +++ b/drivers/pinctrl/pinctrl-samsung.h @@ -236,5 +236,6 @@ struct samsung_pmx_func { /* list of all exported SoC specific data */ extern struct samsung_pin_ctrl exynos4210_pin_ctrl[]; +extern struct samsung_pin_ctrl exynos4x12_pin_ctrl[]; #endif /* __PINCTRL_SAMSUNG_H */ -- 1.7.12 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [PATCH 3/4] pinctrl: samsung: Add support for Exynos4x12 @ 2012-10-24 14:37 ` Tomasz Figa 0 siblings, 0 replies; 36+ messages in thread From: Tomasz Figa @ 2012-10-24 14:37 UTC (permalink / raw) To: linux-arm-kernel This patch extends the driver with any necessary SoC-specific definitions to support Exynos4x12 SoCs. Signed-off-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> --- .../bindings/pinctrl/samsung-pinctrl.txt | 1 + drivers/pinctrl/pinctrl-exynos.c | 110 +++++++++++++++++++++ drivers/pinctrl/pinctrl-samsung.c | 2 + drivers/pinctrl/pinctrl-samsung.h | 1 + 4 files changed, 114 insertions(+) diff --git a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt index 63806e2..e97a278 100644 --- a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt @@ -8,6 +8,7 @@ on-chip controllers onto these pads. Required Properties: - compatible: should be one of the following. - "samsung,pinctrl-exynos4210": for Exynos4210 compatible pin-controller. + - "samsung,pinctrl-exynos4x12": for Exynos4x12 compatible pin-controller. - "samsung,pinctrl-exynos5250": for Exynos5250 compatible pin-controller. - reg: Base address of the pin controller hardware module and length of diff --git a/drivers/pinctrl/pinctrl-exynos.c b/drivers/pinctrl/pinctrl-exynos.c index 73a0aa2..19fab68 100644 --- a/drivers/pinctrl/pinctrl-exynos.c +++ b/drivers/pinctrl/pinctrl-exynos.c @@ -566,3 +566,113 @@ struct samsung_pin_ctrl exynos4210_pin_ctrl[] = { .label = "exynos4210-gpio-ctrl2", }, }; + +/* pin banks of exynos4x12 pin-controller 0 */ +static struct samsung_pin_bank exynos4x12_pin_banks0[] = { + EXYNOS_PIN_BANK_EINTG(8, 0x000, "gpa0", 0x00), + EXYNOS_PIN_BANK_EINTG(6, 0x020, "gpa1", 0x04), + EXYNOS_PIN_BANK_EINTG(8, 0x040, "gpb", 0x08), + EXYNOS_PIN_BANK_EINTG(5, 0x060, "gpc0", 0x0c), + EXYNOS_PIN_BANK_EINTG(5, 0x080, "gpc1", 0x10), + EXYNOS_PIN_BANK_EINTG(4, 0x0A0, "gpd0", 0x14), + EXYNOS_PIN_BANK_EINTG(4, 0x0C0, "gpd1", 0x18), + EXYNOS_PIN_BANK_EINTG(8, 0x180, "gpf0", 0x30), + EXYNOS_PIN_BANK_EINTG(8, 0x1A0, "gpf1", 0x34), + EXYNOS_PIN_BANK_EINTG(8, 0x1C0, "gpf2", 0x38), + EXYNOS_PIN_BANK_EINTG(6, 0x1E0, "gpf3", 0x3c), + EXYNOS_PIN_BANK_EINTG(8, 0x240, "gpj0", 0x40), + EXYNOS_PIN_BANK_EINTG(5, 0x260, "gpj1", 0x44), +}; + +/* pin banks of exynos4x12 pin-controller 1 */ +static struct samsung_pin_bank exynos4x12_pin_banks1[] = { + EXYNOS_PIN_BANK_EINTG(7, 0x040, "gpk0", 0x08), + EXYNOS_PIN_BANK_EINTG(7, 0x060, "gpk1", 0x0c), + EXYNOS_PIN_BANK_EINTG(7, 0x080, "gpk2", 0x10), + EXYNOS_PIN_BANK_EINTG(7, 0x0A0, "gpk3", 0x14), + EXYNOS_PIN_BANK_EINTG(7, 0x0C0, "gpl0", 0x18), + EXYNOS_PIN_BANK_EINTG(2, 0x0E0, "gpl1", 0x1c), + EXYNOS_PIN_BANK_EINTG(8, 0x100, "gpl2", 0x20), + EXYNOS_PIN_BANK_EINTG(8, 0x260, "gpm0", 0x24), + EXYNOS_PIN_BANK_EINTG(7, 0x280, "gpm1", 0x28), + EXYNOS_PIN_BANK_EINTG(5, 0x2A0, "gpm2", 0x2c), + EXYNOS_PIN_BANK_EINTG(8, 0x2C0, "gpm3", 0x30), + EXYNOS_PIN_BANK_EINTG(8, 0x2E0, "gpm4", 0x34), + EXYNOS_PIN_BANK_EINTN(6, 0x120, "gpy0"), + EXYNOS_PIN_BANK_EINTN(4, 0x140, "gpy1"), + EXYNOS_PIN_BANK_EINTN(6, 0x160, "gpy2"), + EXYNOS_PIN_BANK_EINTN(8, 0x180, "gpy3"), + EXYNOS_PIN_BANK_EINTN(8, 0x1A0, "gpy4"), + EXYNOS_PIN_BANK_EINTN(8, 0x1C0, "gpy5"), + EXYNOS_PIN_BANK_EINTN(8, 0x1E0, "gpy6"), + EXYNOS_PIN_BANK_EINTW(8, 0xC00, "gpx0", 0x00), + EXYNOS_PIN_BANK_EINTW(8, 0xC20, "gpx1", 0x04), + EXYNOS_PIN_BANK_EINTW(8, 0xC40, "gpx2", 0x08), + EXYNOS_PIN_BANK_EINTW(8, 0xC60, "gpx3", 0x0c), +}; + +/* pin banks of exynos4x12 pin-controller 2 */ +static struct samsung_pin_bank exynos4x12_pin_banks2[] = { + EXYNOS_PIN_BANK_EINTG(7, 0x000, "gpz", 0x00), +}; + +/* pin banks of exynos4x12 pin-controller 3 */ +static struct samsung_pin_bank exynos4x12_pin_banks3[] = { + EXYNOS_PIN_BANK_EINTG(8, 0x000, "gpv0", 0x00), + EXYNOS_PIN_BANK_EINTG(8, 0x020, "gpv1", 0x04), + EXYNOS_PIN_BANK_EINTG(8, 0x040, "gpv2", 0x08), + EXYNOS_PIN_BANK_EINTG(8, 0x060, "gpv3", 0x0c), + EXYNOS_PIN_BANK_EINTG(2, 0x080, "gpv4", 0x10), +}; + +/* + * Samsung pinctrl driver data for Exynos4x12 SoC. Exynos4x12 SoC includes + * four gpio/pin-mux/pinconfig controllers. + */ +struct samsung_pin_ctrl exynos4x12_pin_ctrl[] = { + { + /* pin-controller instance 0 data */ + .pin_banks = exynos4x12_pin_banks0, + .nr_banks = ARRAY_SIZE(exynos4x12_pin_banks0), + .geint_con = EXYNOS_GPIO_ECON_OFFSET, + .geint_mask = EXYNOS_GPIO_EMASK_OFFSET, + .geint_pend = EXYNOS_GPIO_EPEND_OFFSET, + .svc = EXYNOS_SVC_OFFSET, + .eint_gpio_init = exynos_eint_gpio_init, + .label = "exynos4x12-gpio-ctrl0", + }, { + /* pin-controller instance 1 data */ + .pin_banks = exynos4x12_pin_banks1, + .nr_banks = ARRAY_SIZE(exynos4x12_pin_banks1), + .geint_con = EXYNOS_GPIO_ECON_OFFSET, + .geint_mask = EXYNOS_GPIO_EMASK_OFFSET, + .geint_pend = EXYNOS_GPIO_EPEND_OFFSET, + .weint_con = EXYNOS_WKUP_ECON_OFFSET, + .weint_mask = EXYNOS_WKUP_EMASK_OFFSET, + .weint_pend = EXYNOS_WKUP_EPEND_OFFSET, + .svc = EXYNOS_SVC_OFFSET, + .eint_gpio_init = exynos_eint_gpio_init, + .eint_wkup_init = exynos_eint_wkup_init, + .label = "exynos4x12-gpio-ctrl1", + }, { + /* pin-controller instance 2 data */ + .pin_banks = exynos4x12_pin_banks2, + .nr_banks = ARRAY_SIZE(exynos4x12_pin_banks2), + .geint_con = EXYNOS_GPIO_ECON_OFFSET, + .geint_mask = EXYNOS_GPIO_EMASK_OFFSET, + .geint_pend = EXYNOS_GPIO_EPEND_OFFSET, + .svc = EXYNOS_SVC_OFFSET, + .eint_gpio_init = exynos_eint_gpio_init, + .label = "exynos4x12-gpio-ctrl2", + }, { + /* pin-controller instance 3 data */ + .pin_banks = exynos4x12_pin_banks3, + .nr_banks = ARRAY_SIZE(exynos4x12_pin_banks3), + .geint_con = EXYNOS_GPIO_ECON_OFFSET, + .geint_mask = EXYNOS_GPIO_EMASK_OFFSET, + .geint_pend = EXYNOS_GPIO_EPEND_OFFSET, + .svc = EXYNOS_SVC_OFFSET, + .eint_gpio_init = exynos_eint_gpio_init, + .label = "exynos4x12-gpio-ctrl3", + }, +}; diff --git a/drivers/pinctrl/pinctrl-samsung.c b/drivers/pinctrl/pinctrl-samsung.c index fc34cac..81c9896 100644 --- a/drivers/pinctrl/pinctrl-samsung.c +++ b/drivers/pinctrl/pinctrl-samsung.c @@ -947,6 +947,8 @@ static int __devinit samsung_pinctrl_probe(struct platform_device *pdev) static const struct of_device_id samsung_pinctrl_dt_match[] = { { .compatible = "samsung,pinctrl-exynos4210", .data = (void *)exynos4210_pin_ctrl }, + { .compatible = "samsung,pinctrl-exynos4x12", + .data = (void *)exynos4x12_pin_ctrl }, {}, }; MODULE_DEVICE_TABLE(of, samsung_pinctrl_dt_match); diff --git a/drivers/pinctrl/pinctrl-samsung.h b/drivers/pinctrl/pinctrl-samsung.h index 0670d9e..5addfd1 100644 --- a/drivers/pinctrl/pinctrl-samsung.h +++ b/drivers/pinctrl/pinctrl-samsung.h @@ -236,5 +236,6 @@ struct samsung_pmx_func { /* list of all exported SoC specific data */ extern struct samsung_pin_ctrl exynos4210_pin_ctrl[]; +extern struct samsung_pin_ctrl exynos4x12_pin_ctrl[]; #endif /* __PINCTRL_SAMSUNG_H */ -- 1.7.12 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* Re: [PATCH 3/4] pinctrl: samsung: Add support for Exynos4x12 2012-10-24 14:37 ` Tomasz Figa @ 2012-10-28 19:12 ` Linus Walleij -1 siblings, 0 replies; 36+ messages in thread From: Linus Walleij @ 2012-10-28 19:12 UTC (permalink / raw) To: Tomasz Figa Cc: linux-arm-kernel, linux-samsung-soc, devicetree-discuss, kgene.kim, kyungmin.park, m.szyprowski, tomasz.figa, thomas.abraham, swarren On Wed, Oct 24, 2012 at 4:37 PM, Tomasz Figa <t.figa@samsung.com> wrote: > This patch extends the driver with any necessary SoC-specific > definitions to support Exynos4x12 SoCs. > > Signed-off-by: Tomasz Figa <t.figa@samsung.com> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> I guess you need all of this to go into my Samsung branch? I need and ACK from the Samsung maintainer and preferably Thomas A as well. Yours, Linus Walleij ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH 3/4] pinctrl: samsung: Add support for Exynos4x12 @ 2012-10-28 19:12 ` Linus Walleij 0 siblings, 0 replies; 36+ messages in thread From: Linus Walleij @ 2012-10-28 19:12 UTC (permalink / raw) To: linux-arm-kernel On Wed, Oct 24, 2012 at 4:37 PM, Tomasz Figa <t.figa@samsung.com> wrote: > This patch extends the driver with any necessary SoC-specific > definitions to support Exynos4x12 SoCs. > > Signed-off-by: Tomasz Figa <t.figa@samsung.com> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> I guess you need all of this to go into my Samsung branch? I need and ACK from the Samsung maintainer and preferably Thomas A as well. Yours, Linus Walleij ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [PATCH 3/4] pinctrl: samsung: Add support for Exynos4x12 2012-10-28 19:12 ` Linus Walleij @ 2012-10-29 0:30 ` Kyungmin Park -1 siblings, 0 replies; 36+ messages in thread From: Kyungmin Park @ 2012-10-29 0:30 UTC (permalink / raw) To: Linus Walleij Cc: Tomasz Figa, kgene.kim, swarren, devicetree-discuss, tomasz.figa, linux-samsung-soc, thomas.abraham, linux-arm-kernel, m.szyprowski On 10/29/12, Linus Walleij <linus.walleij@linaro.org> wrote: > On Wed, Oct 24, 2012 at 4:37 PM, Tomasz Figa <t.figa@samsung.com> wrote: > >> This patch extends the driver with any necessary SoC-specific >> definitions to support Exynos4x12 SoCs. >> >> Signed-off-by: Tomasz Figa <t.figa@samsung.com> >> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> > > Acked-by: Linus Walleij <linus.walleij@linaro.org> > > I guess you need all of this to go into my Samsung branch? > I need and ACK from the Samsung maintainer and preferably > Thomas A as well. Hi, Now we're trying to send the standalone patches to avoid the conflict. and hope to merge patches via proper subsystem. In this case, pinctl. Thank you, Kyungmin Park > > Yours, > Linus Walleij > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH 3/4] pinctrl: samsung: Add support for Exynos4x12 @ 2012-10-29 0:30 ` Kyungmin Park 0 siblings, 0 replies; 36+ messages in thread From: Kyungmin Park @ 2012-10-29 0:30 UTC (permalink / raw) To: linux-arm-kernel On 10/29/12, Linus Walleij <linus.walleij@linaro.org> wrote: > On Wed, Oct 24, 2012 at 4:37 PM, Tomasz Figa <t.figa@samsung.com> wrote: > >> This patch extends the driver with any necessary SoC-specific >> definitions to support Exynos4x12 SoCs. >> >> Signed-off-by: Tomasz Figa <t.figa@samsung.com> >> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> > > Acked-by: Linus Walleij <linus.walleij@linaro.org> > > I guess you need all of this to go into my Samsung branch? > I need and ACK from the Samsung maintainer and preferably > Thomas A as well. Hi, Now we're trying to send the standalone patches to avoid the conflict. and hope to merge patches via proper subsystem. In this case, pinctl. Thank you, Kyungmin Park > > Yours, > Linus Walleij > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel at lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [PATCH 3/4] pinctrl: samsung: Add support for Exynos4x12 2012-10-29 0:30 ` Kyungmin Park @ 2012-10-29 10:28 ` Tomasz Figa -1 siblings, 0 replies; 36+ messages in thread From: Tomasz Figa @ 2012-10-29 10:28 UTC (permalink / raw) To: Kyungmin Park Cc: Linus Walleij, kgene.kim, swarren, devicetree-discuss, tomasz.figa, linux-samsung-soc, thomas.abraham, linux-arm-kernel, m.szyprowski Hi Linus, Kyungmin, On Monday 29 of October 2012 09:30:26 Kyungmin Park wrote: > On 10/29/12, Linus Walleij <linus.walleij@linaro.org> wrote: > > On Wed, Oct 24, 2012 at 4:37 PM, Tomasz Figa <t.figa@samsung.com> wrote: > >> This patch extends the driver with any necessary SoC-specific > >> definitions to support Exynos4x12 SoCs. > >> > >> Signed-off-by: Tomasz Figa <t.figa@samsung.com> > >> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> > > > > Acked-by: Linus Walleij <linus.walleij@linaro.org> > > > > I guess you need all of this to go into my Samsung branch? > > I need and ACK from the Samsung maintainer and preferably > > Thomas A as well. > > Hi, > > Now we're trying to send the standalone patches to avoid the conflict. > and hope to merge patches via proper subsystem. In this case, pinctl. Since this depends on the patch adding Exynos4x12 dts files ([PATCH] ARM: dts: exynos4: Add support for Exynos4x12 SoCs), which will be going through Kgene's tree and this patch series contains mostly SoC-specific code, maybe this should rather go through Kgene's tree? Or this is not a problem? Best regards, -- Tomasz Figa Samsung Poland R&D Center SW Solution Development, Linux Platform ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH 3/4] pinctrl: samsung: Add support for Exynos4x12 @ 2012-10-29 10:28 ` Tomasz Figa 0 siblings, 0 replies; 36+ messages in thread From: Tomasz Figa @ 2012-10-29 10:28 UTC (permalink / raw) To: linux-arm-kernel Hi Linus, Kyungmin, On Monday 29 of October 2012 09:30:26 Kyungmin Park wrote: > On 10/29/12, Linus Walleij <linus.walleij@linaro.org> wrote: > > On Wed, Oct 24, 2012 at 4:37 PM, Tomasz Figa <t.figa@samsung.com> wrote: > >> This patch extends the driver with any necessary SoC-specific > >> definitions to support Exynos4x12 SoCs. > >> > >> Signed-off-by: Tomasz Figa <t.figa@samsung.com> > >> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> > > > > Acked-by: Linus Walleij <linus.walleij@linaro.org> > > > > I guess you need all of this to go into my Samsung branch? > > I need and ACK from the Samsung maintainer and preferably > > Thomas A as well. > > Hi, > > Now we're trying to send the standalone patches to avoid the conflict. > and hope to merge patches via proper subsystem. In this case, pinctl. Since this depends on the patch adding Exynos4x12 dts files ([PATCH] ARM: dts: exynos4: Add support for Exynos4x12 SoCs), which will be going through Kgene's tree and this patch series contains mostly SoC-specific code, maybe this should rather go through Kgene's tree? Or this is not a problem? Best regards, -- Tomasz Figa Samsung Poland R&D Center SW Solution Development, Linux Platform ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [PATCH 3/4] pinctrl: samsung: Add support for Exynos4x12 2012-10-29 10:28 ` Tomasz Figa @ 2012-10-29 11:27 ` Kukjin Kim -1 siblings, 0 replies; 36+ messages in thread From: Kukjin Kim @ 2012-10-29 11:27 UTC (permalink / raw) To: Tomasz Figa Cc: Kyungmin Park, Linus Walleij, kgene.kim, swarren, devicetree-discuss, tomasz.figa, linux-samsung-soc, thomas.abraham, linux-arm-kernel, m.szyprowski On 10/29/12 19:28, Tomasz Figa wrote: > Hi Linus, Kyungmin, > > On Monday 29 of October 2012 09:30:26 Kyungmin Park wrote: >> On 10/29/12, Linus Walleij<linus.walleij@linaro.org> wrote: >>> On Wed, Oct 24, 2012 at 4:37 PM, Tomasz Figa<t.figa@samsung.com> > wrote: >>>> This patch extends the driver with any necessary SoC-specific >>>> definitions to support Exynos4x12 SoCs. >>>> >>>> Signed-off-by: Tomasz Figa<t.figa@samsung.com> >>>> Signed-off-by: Kyungmin Park<kyungmin.park@samsung.com> >>> >>> Acked-by: Linus Walleij<linus.walleij@linaro.org> >>> >>> I guess you need all of this to go into my Samsung branch? >>> I need and ACK from the Samsung maintainer and preferably >>> Thomas A as well. >> >> Hi, >> >> Now we're trying to send the standalone patches to avoid the conflict. >> and hope to merge patches via proper subsystem. In this case, pinctl. > > Since this depends on the patch adding Exynos4x12 dts files > ([PATCH] ARM: dts: exynos4: Add support for Exynos4x12 SoCs), > which will be going through Kgene's tree and this patch series contains > mostly SoC-specific code, maybe this should rather go through Kgene's > tree? Or this is not a problem? > Yeah, I agree with Tomasz's opinion and let me pick this into Samsung tree with Linus's ack. Thanks. Best regards, Kgene. -- Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd. ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH 3/4] pinctrl: samsung: Add support for Exynos4x12 @ 2012-10-29 11:27 ` Kukjin Kim 0 siblings, 0 replies; 36+ messages in thread From: Kukjin Kim @ 2012-10-29 11:27 UTC (permalink / raw) To: linux-arm-kernel On 10/29/12 19:28, Tomasz Figa wrote: > Hi Linus, Kyungmin, > > On Monday 29 of October 2012 09:30:26 Kyungmin Park wrote: >> On 10/29/12, Linus Walleij<linus.walleij@linaro.org> wrote: >>> On Wed, Oct 24, 2012 at 4:37 PM, Tomasz Figa<t.figa@samsung.com> > wrote: >>>> This patch extends the driver with any necessary SoC-specific >>>> definitions to support Exynos4x12 SoCs. >>>> >>>> Signed-off-by: Tomasz Figa<t.figa@samsung.com> >>>> Signed-off-by: Kyungmin Park<kyungmin.park@samsung.com> >>> >>> Acked-by: Linus Walleij<linus.walleij@linaro.org> >>> >>> I guess you need all of this to go into my Samsung branch? >>> I need and ACK from the Samsung maintainer and preferably >>> Thomas A as well. >> >> Hi, >> >> Now we're trying to send the standalone patches to avoid the conflict. >> and hope to merge patches via proper subsystem. In this case, pinctl. > > Since this depends on the patch adding Exynos4x12 dts files > ([PATCH] ARM: dts: exynos4: Add support for Exynos4x12 SoCs), > which will be going through Kgene's tree and this patch series contains > mostly SoC-specific code, maybe this should rather go through Kgene's > tree? Or this is not a problem? > Yeah, I agree with Tomasz's opinion and let me pick this into Samsung tree with Linus's ack. Thanks. Best regards, Kgene. -- Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd. ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [PATCH 3/4] pinctrl: samsung: Add support for Exynos4x12 2012-10-29 11:27 ` Kukjin Kim @ 2012-10-30 9:29 ` Linus Walleij -1 siblings, 0 replies; 36+ messages in thread From: Linus Walleij @ 2012-10-30 9:29 UTC (permalink / raw) To: Kukjin Kim Cc: Tomasz Figa, Kyungmin Park, swarren, devicetree-discuss, tomasz.figa, linux-samsung-soc, thomas.abraham, linux-arm-kernel, m.szyprowski On Mon, Oct 29, 2012 at 12:27 PM, Kukjin Kim <kgene.kim@samsung.com> wrote: > On 10/29/12 19:28, Tomasz Figa wrote: >> On Monday 29 of October 2012 09:30:26 Kyungmin Park wrote: >> Since this depends on the patch adding Exynos4x12 dts files >> ([PATCH] ARM: dts: exynos4: Add support for Exynos4x12 SoCs), >> which will be going through Kgene's tree and this patch series contains >> mostly SoC-specific code, maybe this should rather go through Kgene's >> tree? Or this is not a problem? >> > Yeah, I agree with Tomasz's opinion and let me pick this into Samsung tree > with Linus's ack. Seems to have worked out well, just one minor conflict in -next so let's go for this... Yours, Linus Walleij ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH 3/4] pinctrl: samsung: Add support for Exynos4x12 @ 2012-10-30 9:29 ` Linus Walleij 0 siblings, 0 replies; 36+ messages in thread From: Linus Walleij @ 2012-10-30 9:29 UTC (permalink / raw) To: linux-arm-kernel On Mon, Oct 29, 2012 at 12:27 PM, Kukjin Kim <kgene.kim@samsung.com> wrote: > On 10/29/12 19:28, Tomasz Figa wrote: >> On Monday 29 of October 2012 09:30:26 Kyungmin Park wrote: >> Since this depends on the patch adding Exynos4x12 dts files >> ([PATCH] ARM: dts: exynos4: Add support for Exynos4x12 SoCs), >> which will be going through Kgene's tree and this patch series contains >> mostly SoC-specific code, maybe this should rather go through Kgene's >> tree? Or this is not a problem? >> > Yeah, I agree with Tomasz's opinion and let me pick this into Samsung tree > with Linus's ack. Seems to have worked out well, just one minor conflict in -next so let's go for this... Yours, Linus Walleij ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH 4/4] ARM: dts: exynos4x12: Add nodes for pin controllers 2012-10-24 14:37 ` Tomasz Figa @ 2012-10-24 14:37 ` Tomasz Figa -1 siblings, 0 replies; 36+ messages in thread From: Tomasz Figa @ 2012-10-24 14:37 UTC (permalink / raw) To: linux-arm-kernel Cc: linux-samsung-soc, devicetree-discuss, kgene.kim, kyungmin.park, m.szyprowski, t.figa, tomasz.figa, thomas.abraham, linus.walleij, swarren This patch adds nodes for pin controllers available on Exynos4x12 SoCs supported by pinctrl-samsung driver. Signed-off-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> --- arch/arm/boot/dts/exynos4x12-pinctrl.dtsi | 965 ++++++++++++++++++++++++++++++ arch/arm/boot/dts/exynos4x12.dtsi | 38 ++ 2 files changed, 1003 insertions(+) create mode 100644 arch/arm/boot/dts/exynos4x12-pinctrl.dtsi diff --git a/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi b/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi new file mode 100644 index 0000000..56f4669 --- /dev/null +++ b/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi @@ -0,0 +1,965 @@ +/* + * Samsung's Exynos4x12 SoCs pin-mux and pin-config device tree source + * + * Copyright (c) 2012 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * Samsung's Exynos4x12 SoCs pin-mux and pin-config optiosn are listed as device + * tree nodes are listed in this file. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + pinctrl@11400000 { + gpa0: gpa0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpa1: gpa1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpb: gpb { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpc0: gpc0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpc1: gpc1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpd0: gpd0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpd1: gpd1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpf0: gpf0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpf1: gpf1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpf2: gpf2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpf3: gpf3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpj0: gpj0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpj1: gpj1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + uart0_data: uart0-data { + samsung,pins = "gpa0-0", "gpa0-1"; + samsung,pin-function = <0x2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + uart0_fctl: uart0-fctl { + samsung,pins = "gpa0-2", "gpa0-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + uart1_data: uart1-data { + samsung,pins = "gpa0-4", "gpa0-5"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + uart1_fctl: uart1-fctl { + samsung,pins = "gpa0-6", "gpa0-7"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + i2c2_bus: i2c2-bus { + samsung,pins = "gpa0-6", "gpa0-7"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + uart2_data: uart2-data { + samsung,pins = "gpa1-0", "gpa1-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + uart2_fctl: uart2-fctl { + samsung,pins = "gpa1-2", "gpa1-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + uart_audio_a: uart-audio-a { + samsung,pins = "gpa1-0", "gpa1-1"; + samsung,pin-function = <4>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + i2c3_bus: i2c3-bus { + samsung,pins = "gpa1-2", "gpa1-3"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + uart3_data: uart3-data { + samsung,pins = "gpa1-4", "gpa1-5"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + uart_audio_b: uart-audio-b { + samsung,pins = "gpa1-4", "gpa1-5"; + samsung,pin-function = <4>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + spi0_bus: spi0-bus { + samsung,pins = "gpb-0", "gpb-2", "gpb-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + i2c4_bus: i2c4-bus { + samsung,pins = "gpb-0", "gpb-1"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + spi1_bus: spi1-bus { + samsung,pins = "gpb-4", "gpb-6", "gpb-7"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + i2c5_bus: i2c5-bus { + samsung,pins = "gpb-2", "gpb-3"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + i2s1_bus: i2s1-bus { + samsung,pins = "gpc0-0", "gpc0-1", "gpc0-2", "gpc0-3", + "gpc0-4"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + pcm1_bus: pcm1-bus { + samsung,pins = "gpc0-0", "gpc0-1", "gpc0-2", "gpc0-3", + "gpc0-4"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + ac97_bus: ac97-bus { + samsung,pins = "gpc0-0", "gpc0-1", "gpc0-2", "gpc0-3", + "gpc0-4"; + samsung,pin-function = <4>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + i2s2_bus: i2s2-bus { + samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3", + "gpc1-4"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + pcm2_bus: pcm2-bus { + samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3", + "gpc1-4"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + spdif_bus: spdif-bus { + samsung,pins = "gpc1-0", "gpc1-1"; + samsung,pin-function = <4>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + i2c6_bus: i2c6-bus { + samsung,pins = "gpc1-3", "gpc1-4"; + samsung,pin-function = <4>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + spi2_bus: spi2-bus { + samsung,pins = "gpc1-1", "gpc1-3", "gpc1-4"; + samsung,pin-function = <5>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + pwm0_out: pwm0-out { + samsung,pins = "gpd0-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + pwm1_out: pwm1-out { + samsung,pins = "gpd0-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + lcd_ctrl: lcd-ctrl { + samsung,pins = "gpd0-0", "gpd0-1"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + i2c7_bus: i2c7-bus { + samsung,pins = "gpd0-2", "gpd0-3"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + pwm2_out: pwm2-out { + samsung,pins = "gpd0-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + pwm3_out: pwm3-out { + samsung,pins = "gpd0-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + i2c0_bus: i2c0-bus { + samsung,pins = "gpd1-0", "gpd1-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + mipi0_clk: mipi0-clk { + samsung,pins = "gpd1-0", "gpd1-1"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + i2c1_bus: i2c1-bus { + samsung,pins = "gpd1-2", "gpd1-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + mipi1_clk: mipi1-clk { + samsung,pins = "gpd1-2", "gpd1-3"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + lcd_clk: lcd-clk { + samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + lcd_data16: lcd-data-width16 { + samsung,pins = "gpf0-7", "gpf1-0", "gpf1-1", "gpf1-2", + "gpf1-3", "gpf1-6", "gpf1-7", "gpf2-0", + "gpf2-1", "gpf2-2", "gpf2-3", "gpf2-7", + "gpf3-0", "gpf3-1", "gpf3-2", "gpf3-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + lcd_data18: lcd-data-width18 { + samsung,pins = "gpf0-6", "gpf0-7", "gpf1-0", "gpf1-1", + "gpf1-2", "gpf1-3", "gpf1-6", "gpf1-7", + "gpf2-0", "gpf2-1", "gpf2-2", "gpf2-3", + "gpf2-6", "gpf2-7", "gpf3-0", "gpf3-1", + "gpf3-2", "gpf3-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + lcd_data24: lcd-data-width24 { + samsung,pins = "gpf0-4", "gpf0-5", "gpf0-6", "gpf0-7", + "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3", + "gpf1-4", "gpf1-5", "gpf1-6", "gpf1-7", + "gpf2-0", "gpf2-1", "gpf2-2", "gpf2-3", + "gpf2-4", "gpf2-5", "gpf2-6", "gpf2-7", + "gpf3-0", "gpf3-1", "gpf3-2", "gpf3-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + lcd_ldi: lcd-ldi { + samsung,pins = "gpf3-4"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + cam_port_a: cam-port-a { + samsung,pins = "gpj0-0", "gpj0-1", "gpj0-2", "gpj0-3", + "gpj0-4", "gpj0-5", "gpj0-6", "gpj0-7", + "gpj1-0", "gpj1-1", "gpj1-2", "gpj1-3", + "gpj1-4"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@11000000 { + gpk0: gpk0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpk1: gpk1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpk2: gpk2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpk3: gpk3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpl0: gpl0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpl1: gpl1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpl2: gpl2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpm0: gpm0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpm1: gpm1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpm2: gpm2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpm3: gpm3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpm4: gpm4 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpy0: gpy0 { + gpio-controller; + #gpio-cells = <2>; + }; + + gpy1: gpy1 { + gpio-controller; + #gpio-cells = <2>; + }; + + gpy2: gpy2 { + gpio-controller; + #gpio-cells = <2>; + }; + + gpy3: gpy3 { + gpio-controller; + #gpio-cells = <2>; + }; + + gpy4: gpy4 { + gpio-controller; + #gpio-cells = <2>; + }; + + gpy5: gpy5 { + gpio-controller; + #gpio-cells = <2>; + }; + + gpy6: gpy6 { + gpio-controller; + #gpio-cells = <2>; + }; + + gpx0: gpx0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + interrupt-parent = <&gic>; + interrupts = <0 16 0>, <0 17 0>, <0 18 0>, <0 19 0>, + <0 20 0>, <0 21 0>, <0 22 0>, <0 23 0>; + #interrupt-cells = <2>; + }; + + gpx1: gpx1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + interrupt-parent = <&gic>; + interrupts = <0 24 0>, <0 25 0>, <0 26 0>, <0 27 0>, + <0 28 0>, <0 29 0>, <0 30 0>, <0 31 0>; + #interrupt-cells = <2>; + }; + + gpx2: gpx2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpx3: gpx3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + sd0_clk: sd0-clk { + samsung,pins = "gpk0-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + sd0_cmd: sd0-cmd { + samsung,pins = "gpk0-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + sd0_cd: sd0-cd { + samsung,pins = "gpk0-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd0_bus1: sd0-bus-width1 { + samsung,pins = "gpk0-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd0_bus4: sd0-bus-width4 { + samsung,pins = "gpk0-3", "gpk0-4", "gpk0-5", "gpk0-6"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd0_bus8: sd0-bus-width8 { + samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd4_clk: sd4-clk { + samsung,pins = "gpk0-0"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + sd4_cmd: sd4-cmd { + samsung,pins = "gpk0-1"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + sd4_cd: sd4-cd { + samsung,pins = "gpk0-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd4_bus1: sd4-bus-width1 { + samsung,pins = "gpk0-3"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd4_bus4: sd4-bus-width4 { + samsung,pins = "gpk0-3", "gpk0-4", "gpk0-5", "gpk0-6"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd4_bus8: sd4-bus-width8 { + samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; + samsung,pin-function = <3>; + samsung,pin-pud = <4>; + samsung,pin-drv = <0>; + }; + + sd1_clk: sd1-clk { + samsung,pins = "gpk1-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + sd1_cmd: sd1-cmd { + samsung,pins = "gpk1-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + sd1_cd: sd1-cd { + samsung,pins = "gpk1-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd1_bus1: sd1-bus-width1 { + samsung,pins = "gpk1-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd1_bus4: sd1-bus-width4 { + samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd2_clk: sd2-clk { + samsung,pins = "gpk2-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + sd2_cmd: sd2-cmd { + samsung,pins = "gpk2-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + sd2_cd: sd2-cd { + samsung,pins = "gpk2-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd2_bus1: sd2-bus-width1 { + samsung,pins = "gpk2-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd2_bus4: sd2-bus-width4 { + samsung,pins = "gpk2-3", "gpk2-4", "gpk2-5", "gpk2-6"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd2_bus8: sd2-bus-width8 { + samsung,pins = "gpk3-3", "gpk3-4", "gpk3-5", "gpk3-6"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd3_clk: sd3-clk { + samsung,pins = "gpk3-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + sd3_cmd: sd3-cmd { + samsung,pins = "gpk3-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + sd3_cd: sd3-cd { + samsung,pins = "gpk3-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd3_bus1: sd3-bus-width1 { + samsung,pins = "gpk3-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd3_bus4: sd3-bus-width4 { + samsung,pins = "gpk3-3", "gpk3-4", "gpk3-5", "gpk3-6"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + keypad_col0: keypad-col0 { + samsung,pins = "gpl2-0"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + keypad_col1: keypad-col1 { + samsung,pins = "gpl2-1"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + keypad_col2: keypad-col2 { + samsung,pins = "gpl2-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + keypad_col3: keypad-col3 { + samsung,pins = "gpl2-3"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + keypad_col4: keypad-col4 { + samsung,pins = "gpl2-4"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + keypad_col5: keypad-col5 { + samsung,pins = "gpl2-5"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + keypad_col6: keypad-col6 { + samsung,pins = "gpl2-6"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + keypad_col7: keypad-col7 { + samsung,pins = "gpl2-7"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + cam_port_b: cam-port-b { + samsung,pins = "gpm0-0", "gpm0-1", "gpm0-2", "gpm0-3", + "gpm0-4", "gpm0-5", "gpm0-6", "gpm0-7", + "gpm1-0", "gpm1-1", "gpm2-0", "gpm2-1", + "gpm2-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + eint0: ext-int0 { + samsung,pins = "gpx0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + eint8: ext-int8 { + samsung,pins = "gpx1-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + eint15: ext-int15 { + samsung,pins = "gpx1-7"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + eint16: ext-int16 { + samsung,pins = "gpx2-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + eint31: ext-int31 { + samsung,pins = "gpx3-7"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@03860000 { + gpz: gpz { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + i2s0_bus: i2s0-bus { + samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3", + "gpz-4", "gpz-5", "gpz-6"; + samsung,pin-function = <0x2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + pcm0_bus: pcm0-bus { + samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3", + "gpz-4"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@106E0000 { + gpv0: gpv0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpv1: gpv1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpv2: gpv2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpv3: gpv3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpv4: gpv4 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + c2c_bus: c2c-bus { + samsung,pins = "gpv0-0", "gpv0-1", "gpv0-2", "gpv0-3", + "gpv0-4", "gpv0-5", "gpv0-6", "gpv0-7", + "gpv1-0", "gpv1-1", "gpv1-2", "gpv1-3", + "gpv1-4", "gpv1-5", "gpv1-6", "gpv1-7", + "gpv2-0", "gpv2-1", "gpv2-2", "gpv2-3", + "gpv2-4", "gpv2-5", "gpv2-6", "gpv2-7", + "gpv3-0", "gpv3-1", "gpv3-2", "gpv3-3", + "gpv3-4", "gpv3-5", "gpv3-6", "gpv3-7", + "gpv4-0", "gpv4-1"; + samsung,pin-function = <0x2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; +}; diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi index b6a66f4..179a62e 100644 --- a/arch/arm/boot/dts/exynos4x12.dtsi +++ b/arch/arm/boot/dts/exynos4x12.dtsi @@ -21,6 +21,13 @@ /include/ "exynos4x12-pinctrl.dtsi" / { + aliases { + pinctrl0 = &pinctrl_0; + pinctrl1 = &pinctrl_1; + pinctrl2 = &pinctrl_2; + pinctrl3 = &pinctrl_3; + }; + combiner:interrupt-controller@10440000 { interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>, <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>, @@ -28,4 +35,35 @@ <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>, <0 16 0>, <0 17 0>, <0 18 0>, <0 19 0>; }; + + pinctrl_0: pinctrl@11400000 { + compatible = "samsung,pinctrl-exynos4x12"; + reg = <0x11400000 0x1000>; + interrupts = <0 47 0>; + }; + + pinctrl_1: pinctrl@11000000 { + compatible = "samsung,pinctrl-exynos4x12"; + reg = <0x11000000 0x1000>; + interrupts = <0 46 0>; + + wakup_eint: wakeup-interrupt-controller { + compatible = "samsung,exynos4210-wakeup-eint"; + interrupt-parent = <&gic>; + interrupts = <0 32 0>; + }; + }; + + pinctrl_2: pinctrl@03860000 { + compatible = "samsung,pinctrl-exynos4x12"; + reg = <0x03860000 0x1000>; + interrupt-parent = <&combiner>; + interrupts = <10 0>; + }; + + pinctrl_3: pinctrl@106E0000 { + compatible = "samsung,pinctrl-exynos4x12"; + reg = <0x106E0000 0x1000>; + interrupts = <0 72 0>; + }; }; -- 1.7.12 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [PATCH 4/4] ARM: dts: exynos4x12: Add nodes for pin controllers @ 2012-10-24 14:37 ` Tomasz Figa 0 siblings, 0 replies; 36+ messages in thread From: Tomasz Figa @ 2012-10-24 14:37 UTC (permalink / raw) To: linux-arm-kernel This patch adds nodes for pin controllers available on Exynos4x12 SoCs supported by pinctrl-samsung driver. Signed-off-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> --- arch/arm/boot/dts/exynos4x12-pinctrl.dtsi | 965 ++++++++++++++++++++++++++++++ arch/arm/boot/dts/exynos4x12.dtsi | 38 ++ 2 files changed, 1003 insertions(+) create mode 100644 arch/arm/boot/dts/exynos4x12-pinctrl.dtsi diff --git a/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi b/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi new file mode 100644 index 0000000..56f4669 --- /dev/null +++ b/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi @@ -0,0 +1,965 @@ +/* + * Samsung's Exynos4x12 SoCs pin-mux and pin-config device tree source + * + * Copyright (c) 2012 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * Samsung's Exynos4x12 SoCs pin-mux and pin-config optiosn are listed as device + * tree nodes are listed in this file. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + pinctrl at 11400000 { + gpa0: gpa0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpa1: gpa1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpb: gpb { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpc0: gpc0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpc1: gpc1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpd0: gpd0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpd1: gpd1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpf0: gpf0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpf1: gpf1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpf2: gpf2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpf3: gpf3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpj0: gpj0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpj1: gpj1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + uart0_data: uart0-data { + samsung,pins = "gpa0-0", "gpa0-1"; + samsung,pin-function = <0x2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + uart0_fctl: uart0-fctl { + samsung,pins = "gpa0-2", "gpa0-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + uart1_data: uart1-data { + samsung,pins = "gpa0-4", "gpa0-5"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + uart1_fctl: uart1-fctl { + samsung,pins = "gpa0-6", "gpa0-7"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + i2c2_bus: i2c2-bus { + samsung,pins = "gpa0-6", "gpa0-7"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + uart2_data: uart2-data { + samsung,pins = "gpa1-0", "gpa1-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + uart2_fctl: uart2-fctl { + samsung,pins = "gpa1-2", "gpa1-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + uart_audio_a: uart-audio-a { + samsung,pins = "gpa1-0", "gpa1-1"; + samsung,pin-function = <4>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + i2c3_bus: i2c3-bus { + samsung,pins = "gpa1-2", "gpa1-3"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + uart3_data: uart3-data { + samsung,pins = "gpa1-4", "gpa1-5"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + uart_audio_b: uart-audio-b { + samsung,pins = "gpa1-4", "gpa1-5"; + samsung,pin-function = <4>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + spi0_bus: spi0-bus { + samsung,pins = "gpb-0", "gpb-2", "gpb-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + i2c4_bus: i2c4-bus { + samsung,pins = "gpb-0", "gpb-1"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + spi1_bus: spi1-bus { + samsung,pins = "gpb-4", "gpb-6", "gpb-7"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + i2c5_bus: i2c5-bus { + samsung,pins = "gpb-2", "gpb-3"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + i2s1_bus: i2s1-bus { + samsung,pins = "gpc0-0", "gpc0-1", "gpc0-2", "gpc0-3", + "gpc0-4"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + pcm1_bus: pcm1-bus { + samsung,pins = "gpc0-0", "gpc0-1", "gpc0-2", "gpc0-3", + "gpc0-4"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + ac97_bus: ac97-bus { + samsung,pins = "gpc0-0", "gpc0-1", "gpc0-2", "gpc0-3", + "gpc0-4"; + samsung,pin-function = <4>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + i2s2_bus: i2s2-bus { + samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3", + "gpc1-4"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + pcm2_bus: pcm2-bus { + samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3", + "gpc1-4"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + spdif_bus: spdif-bus { + samsung,pins = "gpc1-0", "gpc1-1"; + samsung,pin-function = <4>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + i2c6_bus: i2c6-bus { + samsung,pins = "gpc1-3", "gpc1-4"; + samsung,pin-function = <4>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + spi2_bus: spi2-bus { + samsung,pins = "gpc1-1", "gpc1-3", "gpc1-4"; + samsung,pin-function = <5>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + pwm0_out: pwm0-out { + samsung,pins = "gpd0-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + pwm1_out: pwm1-out { + samsung,pins = "gpd0-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + lcd_ctrl: lcd-ctrl { + samsung,pins = "gpd0-0", "gpd0-1"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + i2c7_bus: i2c7-bus { + samsung,pins = "gpd0-2", "gpd0-3"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + pwm2_out: pwm2-out { + samsung,pins = "gpd0-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + pwm3_out: pwm3-out { + samsung,pins = "gpd0-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + i2c0_bus: i2c0-bus { + samsung,pins = "gpd1-0", "gpd1-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + mipi0_clk: mipi0-clk { + samsung,pins = "gpd1-0", "gpd1-1"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + i2c1_bus: i2c1-bus { + samsung,pins = "gpd1-2", "gpd1-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + mipi1_clk: mipi1-clk { + samsung,pins = "gpd1-2", "gpd1-3"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + lcd_clk: lcd-clk { + samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + lcd_data16: lcd-data-width16 { + samsung,pins = "gpf0-7", "gpf1-0", "gpf1-1", "gpf1-2", + "gpf1-3", "gpf1-6", "gpf1-7", "gpf2-0", + "gpf2-1", "gpf2-2", "gpf2-3", "gpf2-7", + "gpf3-0", "gpf3-1", "gpf3-2", "gpf3-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + lcd_data18: lcd-data-width18 { + samsung,pins = "gpf0-6", "gpf0-7", "gpf1-0", "gpf1-1", + "gpf1-2", "gpf1-3", "gpf1-6", "gpf1-7", + "gpf2-0", "gpf2-1", "gpf2-2", "gpf2-3", + "gpf2-6", "gpf2-7", "gpf3-0", "gpf3-1", + "gpf3-2", "gpf3-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + lcd_data24: lcd-data-width24 { + samsung,pins = "gpf0-4", "gpf0-5", "gpf0-6", "gpf0-7", + "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3", + "gpf1-4", "gpf1-5", "gpf1-6", "gpf1-7", + "gpf2-0", "gpf2-1", "gpf2-2", "gpf2-3", + "gpf2-4", "gpf2-5", "gpf2-6", "gpf2-7", + "gpf3-0", "gpf3-1", "gpf3-2", "gpf3-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + lcd_ldi: lcd-ldi { + samsung,pins = "gpf3-4"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + cam_port_a: cam-port-a { + samsung,pins = "gpj0-0", "gpj0-1", "gpj0-2", "gpj0-3", + "gpj0-4", "gpj0-5", "gpj0-6", "gpj0-7", + "gpj1-0", "gpj1-1", "gpj1-2", "gpj1-3", + "gpj1-4"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl at 11000000 { + gpk0: gpk0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpk1: gpk1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpk2: gpk2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpk3: gpk3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpl0: gpl0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpl1: gpl1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpl2: gpl2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpm0: gpm0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpm1: gpm1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpm2: gpm2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpm3: gpm3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpm4: gpm4 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpy0: gpy0 { + gpio-controller; + #gpio-cells = <2>; + }; + + gpy1: gpy1 { + gpio-controller; + #gpio-cells = <2>; + }; + + gpy2: gpy2 { + gpio-controller; + #gpio-cells = <2>; + }; + + gpy3: gpy3 { + gpio-controller; + #gpio-cells = <2>; + }; + + gpy4: gpy4 { + gpio-controller; + #gpio-cells = <2>; + }; + + gpy5: gpy5 { + gpio-controller; + #gpio-cells = <2>; + }; + + gpy6: gpy6 { + gpio-controller; + #gpio-cells = <2>; + }; + + gpx0: gpx0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + interrupt-parent = <&gic>; + interrupts = <0 16 0>, <0 17 0>, <0 18 0>, <0 19 0>, + <0 20 0>, <0 21 0>, <0 22 0>, <0 23 0>; + #interrupt-cells = <2>; + }; + + gpx1: gpx1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + interrupt-parent = <&gic>; + interrupts = <0 24 0>, <0 25 0>, <0 26 0>, <0 27 0>, + <0 28 0>, <0 29 0>, <0 30 0>, <0 31 0>; + #interrupt-cells = <2>; + }; + + gpx2: gpx2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpx3: gpx3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + sd0_clk: sd0-clk { + samsung,pins = "gpk0-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + sd0_cmd: sd0-cmd { + samsung,pins = "gpk0-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + sd0_cd: sd0-cd { + samsung,pins = "gpk0-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd0_bus1: sd0-bus-width1 { + samsung,pins = "gpk0-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd0_bus4: sd0-bus-width4 { + samsung,pins = "gpk0-3", "gpk0-4", "gpk0-5", "gpk0-6"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd0_bus8: sd0-bus-width8 { + samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd4_clk: sd4-clk { + samsung,pins = "gpk0-0"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + sd4_cmd: sd4-cmd { + samsung,pins = "gpk0-1"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + sd4_cd: sd4-cd { + samsung,pins = "gpk0-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd4_bus1: sd4-bus-width1 { + samsung,pins = "gpk0-3"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd4_bus4: sd4-bus-width4 { + samsung,pins = "gpk0-3", "gpk0-4", "gpk0-5", "gpk0-6"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd4_bus8: sd4-bus-width8 { + samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; + samsung,pin-function = <3>; + samsung,pin-pud = <4>; + samsung,pin-drv = <0>; + }; + + sd1_clk: sd1-clk { + samsung,pins = "gpk1-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + sd1_cmd: sd1-cmd { + samsung,pins = "gpk1-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + sd1_cd: sd1-cd { + samsung,pins = "gpk1-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd1_bus1: sd1-bus-width1 { + samsung,pins = "gpk1-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd1_bus4: sd1-bus-width4 { + samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd2_clk: sd2-clk { + samsung,pins = "gpk2-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + sd2_cmd: sd2-cmd { + samsung,pins = "gpk2-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + sd2_cd: sd2-cd { + samsung,pins = "gpk2-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd2_bus1: sd2-bus-width1 { + samsung,pins = "gpk2-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd2_bus4: sd2-bus-width4 { + samsung,pins = "gpk2-3", "gpk2-4", "gpk2-5", "gpk2-6"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd2_bus8: sd2-bus-width8 { + samsung,pins = "gpk3-3", "gpk3-4", "gpk3-5", "gpk3-6"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd3_clk: sd3-clk { + samsung,pins = "gpk3-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + sd3_cmd: sd3-cmd { + samsung,pins = "gpk3-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + sd3_cd: sd3-cd { + samsung,pins = "gpk3-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd3_bus1: sd3-bus-width1 { + samsung,pins = "gpk3-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + sd3_bus4: sd3-bus-width4 { + samsung,pins = "gpk3-3", "gpk3-4", "gpk3-5", "gpk3-6"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + keypad_col0: keypad-col0 { + samsung,pins = "gpl2-0"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + keypad_col1: keypad-col1 { + samsung,pins = "gpl2-1"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + keypad_col2: keypad-col2 { + samsung,pins = "gpl2-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + keypad_col3: keypad-col3 { + samsung,pins = "gpl2-3"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + keypad_col4: keypad-col4 { + samsung,pins = "gpl2-4"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + keypad_col5: keypad-col5 { + samsung,pins = "gpl2-5"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + keypad_col6: keypad-col6 { + samsung,pins = "gpl2-6"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + keypad_col7: keypad-col7 { + samsung,pins = "gpl2-7"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + cam_port_b: cam-port-b { + samsung,pins = "gpm0-0", "gpm0-1", "gpm0-2", "gpm0-3", + "gpm0-4", "gpm0-5", "gpm0-6", "gpm0-7", + "gpm1-0", "gpm1-1", "gpm2-0", "gpm2-1", + "gpm2-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + eint0: ext-int0 { + samsung,pins = "gpx0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + eint8: ext-int8 { + samsung,pins = "gpx1-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + eint15: ext-int15 { + samsung,pins = "gpx1-7"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + eint16: ext-int16 { + samsung,pins = "gpx2-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + eint31: ext-int31 { + samsung,pins = "gpx3-7"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl at 03860000 { + gpz: gpz { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + i2s0_bus: i2s0-bus { + samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3", + "gpz-4", "gpz-5", "gpz-6"; + samsung,pin-function = <0x2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + pcm0_bus: pcm0-bus { + samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3", + "gpz-4"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl at 106E0000 { + gpv0: gpv0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpv1: gpv1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpv2: gpv2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpv3: gpv3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpv4: gpv4 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + c2c_bus: c2c-bus { + samsung,pins = "gpv0-0", "gpv0-1", "gpv0-2", "gpv0-3", + "gpv0-4", "gpv0-5", "gpv0-6", "gpv0-7", + "gpv1-0", "gpv1-1", "gpv1-2", "gpv1-3", + "gpv1-4", "gpv1-5", "gpv1-6", "gpv1-7", + "gpv2-0", "gpv2-1", "gpv2-2", "gpv2-3", + "gpv2-4", "gpv2-5", "gpv2-6", "gpv2-7", + "gpv3-0", "gpv3-1", "gpv3-2", "gpv3-3", + "gpv3-4", "gpv3-5", "gpv3-6", "gpv3-7", + "gpv4-0", "gpv4-1"; + samsung,pin-function = <0x2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; +}; diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi index b6a66f4..179a62e 100644 --- a/arch/arm/boot/dts/exynos4x12.dtsi +++ b/arch/arm/boot/dts/exynos4x12.dtsi @@ -21,6 +21,13 @@ /include/ "exynos4x12-pinctrl.dtsi" / { + aliases { + pinctrl0 = &pinctrl_0; + pinctrl1 = &pinctrl_1; + pinctrl2 = &pinctrl_2; + pinctrl3 = &pinctrl_3; + }; + combiner:interrupt-controller at 10440000 { interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>, <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>, @@ -28,4 +35,35 @@ <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>, <0 16 0>, <0 17 0>, <0 18 0>, <0 19 0>; }; + + pinctrl_0: pinctrl at 11400000 { + compatible = "samsung,pinctrl-exynos4x12"; + reg = <0x11400000 0x1000>; + interrupts = <0 47 0>; + }; + + pinctrl_1: pinctrl at 11000000 { + compatible = "samsung,pinctrl-exynos4x12"; + reg = <0x11000000 0x1000>; + interrupts = <0 46 0>; + + wakup_eint: wakeup-interrupt-controller { + compatible = "samsung,exynos4210-wakeup-eint"; + interrupt-parent = <&gic>; + interrupts = <0 32 0>; + }; + }; + + pinctrl_2: pinctrl at 03860000 { + compatible = "samsung,pinctrl-exynos4x12"; + reg = <0x03860000 0x1000>; + interrupt-parent = <&combiner>; + interrupts = <10 0>; + }; + + pinctrl_3: pinctrl at 106E0000 { + compatible = "samsung,pinctrl-exynos4x12"; + reg = <0x106E0000 0x1000>; + interrupts = <0 72 0>; + }; }; -- 1.7.12 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* Re: [PATCH 4/4] ARM: dts: exynos4x12: Add nodes for pin controllers 2012-10-24 14:37 ` Tomasz Figa @ 2012-10-28 19:13 ` Linus Walleij -1 siblings, 0 replies; 36+ messages in thread From: Linus Walleij @ 2012-10-28 19:13 UTC (permalink / raw) To: Tomasz Figa Cc: linux-arm-kernel, linux-samsung-soc, devicetree-discuss, kgene.kim, kyungmin.park, m.szyprowski, tomasz.figa, thomas.abraham, swarren On Wed, Oct 24, 2012 at 4:37 PM, Tomasz Figa <t.figa@samsung.com> wrote: > This patch adds nodes for pin controllers available on Exynos4x12 SoCs > supported by pinctrl-samsung driver. > > Signed-off-by: Tomasz Figa <t.figa@samsung.com> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Yours, Linus Walleij ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH 4/4] ARM: dts: exynos4x12: Add nodes for pin controllers @ 2012-10-28 19:13 ` Linus Walleij 0 siblings, 0 replies; 36+ messages in thread From: Linus Walleij @ 2012-10-28 19:13 UTC (permalink / raw) To: linux-arm-kernel On Wed, Oct 24, 2012 at 4:37 PM, Tomasz Figa <t.figa@samsung.com> wrote: > This patch adds nodes for pin controllers available on Exynos4x12 SoCs > supported by pinctrl-samsung driver. > > Signed-off-by: Tomasz Figa <t.figa@samsung.com> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Yours, Linus Walleij ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [PATCH 0/4] pinctrl: samsung: Add support for Exynos4x12 SoCs 2012-10-24 14:37 ` Tomasz Figa @ 2012-10-30 2:58 ` Thomas Abraham -1 siblings, 0 replies; 36+ messages in thread From: Thomas Abraham @ 2012-10-30 2:58 UTC (permalink / raw) To: Tomasz Figa Cc: linux-arm-kernel, linux-samsung-soc, devicetree-discuss, kgene.kim, kyungmin.park, m.szyprowski, tomasz.figa, linus.walleij, swarren On 24 October 2012 20:07, Tomasz Figa <t.figa@samsung.com> wrote: > This patch series adds pinctrl support for SoCs from Exynos4x12 family. > > First two patches make necessary preperations to skip legacy GPIO and > GPIO interrupt registration in case of Exynos4x12 SoCs which are not > supported by legacy (non-DT) code. > > Third patch adds Exynos4x12-specific definitions to pinctrl-samsung driver. > > Fourth patch adds device nodes for pin controllers available on Exynos4x12 > SoCs to Exynos4x12 device tree sources. > > This series depends on: > - [PATCH] ARM: dts: exynos4: Add support for Exynos4x12 SoCs > > Tomasz Figa (4): > ARM: EXYNOS: Skip wakeup-int setup if pinctrl driver is used on > Exynos4x12 > gpio: samsung: Skip registration if pinctrl driver is present on > Exynos4x12 > pinctrl: samsung: Add support for Exynos4x12 > ARM: dts: exynos4x12: Add nodes for pin controllers > > .../bindings/pinctrl/samsung-pinctrl.txt | 1 + > arch/arm/boot/dts/exynos4x12-pinctrl.dtsi | 965 +++++++++++++++++++++ > arch/arm/boot/dts/exynos4x12.dtsi | 38 + > arch/arm/mach-exynos/common.c | 7 +- > drivers/gpio/gpio-samsung.c | 43 +- > drivers/pinctrl/pinctrl-exynos.c | 110 +++ > drivers/pinctrl/pinctrl-samsung.c | 2 + > drivers/pinctrl/pinctrl-samsung.h | 1 + > 8 files changed, 1144 insertions(+), 23 deletions(-) > create mode 100644 arch/arm/boot/dts/exynos4x12-pinctrl.dtsi > > -- > 1.7.12 > For this series: Acked-by: Thomas Abraham <thomas.abraham@linaro.org> ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH 0/4] pinctrl: samsung: Add support for Exynos4x12 SoCs @ 2012-10-30 2:58 ` Thomas Abraham 0 siblings, 0 replies; 36+ messages in thread From: Thomas Abraham @ 2012-10-30 2:58 UTC (permalink / raw) To: linux-arm-kernel On 24 October 2012 20:07, Tomasz Figa <t.figa@samsung.com> wrote: > This patch series adds pinctrl support for SoCs from Exynos4x12 family. > > First two patches make necessary preperations to skip legacy GPIO and > GPIO interrupt registration in case of Exynos4x12 SoCs which are not > supported by legacy (non-DT) code. > > Third patch adds Exynos4x12-specific definitions to pinctrl-samsung driver. > > Fourth patch adds device nodes for pin controllers available on Exynos4x12 > SoCs to Exynos4x12 device tree sources. > > This series depends on: > - [PATCH] ARM: dts: exynos4: Add support for Exynos4x12 SoCs > > Tomasz Figa (4): > ARM: EXYNOS: Skip wakeup-int setup if pinctrl driver is used on > Exynos4x12 > gpio: samsung: Skip registration if pinctrl driver is present on > Exynos4x12 > pinctrl: samsung: Add support for Exynos4x12 > ARM: dts: exynos4x12: Add nodes for pin controllers > > .../bindings/pinctrl/samsung-pinctrl.txt | 1 + > arch/arm/boot/dts/exynos4x12-pinctrl.dtsi | 965 +++++++++++++++++++++ > arch/arm/boot/dts/exynos4x12.dtsi | 38 + > arch/arm/mach-exynos/common.c | 7 +- > drivers/gpio/gpio-samsung.c | 43 +- > drivers/pinctrl/pinctrl-exynos.c | 110 +++ > drivers/pinctrl/pinctrl-samsung.c | 2 + > drivers/pinctrl/pinctrl-samsung.h | 1 + > 8 files changed, 1144 insertions(+), 23 deletions(-) > create mode 100644 arch/arm/boot/dts/exynos4x12-pinctrl.dtsi > > -- > 1.7.12 > For this series: Acked-by: Thomas Abraham <thomas.abraham@linaro.org> ^ permalink raw reply [flat|nested] 36+ messages in thread
end of thread, other threads:[~2012-11-12 5:03 UTC | newest] Thread overview: 36+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-10-24 14:37 [PATCH 0/4] pinctrl: samsung: Add support for Exynos4x12 SoCs Tomasz Figa 2012-10-24 14:37 ` Tomasz Figa 2012-10-24 14:37 ` [PATCH 1/4] ARM: EXYNOS: Skip wakeup-int setup if pinctrl driver is used on Exynos4x12 Tomasz Figa 2012-10-24 14:37 ` Tomasz Figa 2012-10-24 14:37 ` [PATCH 2/4] gpio: samsung: Skip registration if pinctrl driver is present " Tomasz Figa 2012-10-24 14:37 ` Tomasz Figa 2012-10-28 19:11 ` Linus Walleij 2012-10-28 19:11 ` Linus Walleij 2012-11-07 4:41 ` Kukjin Kim 2012-11-07 4:41 ` Kukjin Kim 2012-11-08 21:12 ` Linus Walleij 2012-11-08 21:12 ` Linus Walleij 2012-11-09 10:09 ` Kukjin Kim 2012-11-09 10:09 ` Kukjin Kim 2012-11-11 18:35 ` Linus Walleij 2012-11-11 18:35 ` Linus Walleij 2012-11-12 5:03 ` Kukjin Kim 2012-11-12 5:03 ` Kukjin Kim 2012-10-24 14:37 ` [PATCH 3/4] pinctrl: samsung: Add support for Exynos4x12 Tomasz Figa 2012-10-24 14:37 ` Tomasz Figa 2012-10-28 19:12 ` Linus Walleij 2012-10-28 19:12 ` Linus Walleij 2012-10-29 0:30 ` Kyungmin Park 2012-10-29 0:30 ` Kyungmin Park 2012-10-29 10:28 ` Tomasz Figa 2012-10-29 10:28 ` Tomasz Figa 2012-10-29 11:27 ` Kukjin Kim 2012-10-29 11:27 ` Kukjin Kim 2012-10-30 9:29 ` Linus Walleij 2012-10-30 9:29 ` Linus Walleij 2012-10-24 14:37 ` [PATCH 4/4] ARM: dts: exynos4x12: Add nodes for pin controllers Tomasz Figa 2012-10-24 14:37 ` Tomasz Figa 2012-10-28 19:13 ` Linus Walleij 2012-10-28 19:13 ` Linus Walleij 2012-10-30 2:58 ` [PATCH 0/4] pinctrl: samsung: Add support for Exynos4x12 SoCs Thomas Abraham 2012-10-30 2:58 ` Thomas Abraham
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.