* [RFC 0/5] ARM: EXYNOS: ODROID-XU DT and LEDs @ 2014-07-28 12:18 Andreas Färber 2014-07-28 12:18 ` [PATCH 1/5] ARM: dts: exynos5410: Clean up SMDK5410 indentation Andreas Färber ` (5 more replies) 0 siblings, 6 replies; 11+ messages in thread From: Andreas Färber @ 2014-07-28 12:18 UTC (permalink / raw) To: linux-samsung-soc, Hakjoo Kim Cc: Tarek Dakhran, Kevin Hilman, linux-arm-kernel, linux-kernel, Andreas Färber Hello, This series adds a dedicated ODROID-XU device tree and enhances it with LED configuration, to match the downstream 3.14 based behavior. It had turned out less trivial than I initially thought as the whole pinctrl stuff is still missing. I thus cherry-pick two downstream commits. Hakjoo, can you please reply with a Signed-off-by to your patches so that we can get them into upstream? Thanks in advance! Regards, Andreas Cc: Hakjoo Kim <ruppi.kim@hardkernel.com> Andreas Färber (3): ARM: dts: exynos5410: Clean up SMDK5410 indentation ARM: dts: exynos5410: Prepare ODROID-XU device tree ARM: dts: exynos5410: Add ODROID-XU LEDs Hakjoo Kim (2): pinctrl: exynos: add exynos5410 SoC specific data ARM: dts: add pinctrl support to Exynos5410 .../bindings/pinctrl/samsung-pinctrl.txt | 1 + arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/exynos5410-odroidxu.dts | 111 ++++++ arch/arm/boot/dts/exynos5410-pinctrl.dtsi | 408 +++++++++++++++++++++ arch/arm/boot/dts/exynos5410-smdk5410.dts | 6 +- arch/arm/boot/dts/exynos5410.dtsi | 32 ++ drivers/pinctrl/pinctrl-exynos.c | 126 +++++++ drivers/pinctrl/pinctrl-samsung.c | 2 + drivers/pinctrl/pinctrl-samsung.h | 1 + 9 files changed, 685 insertions(+), 3 deletions(-) create mode 100644 arch/arm/boot/dts/exynos5410-odroidxu.dts create mode 100644 arch/arm/boot/dts/exynos5410-pinctrl.dtsi -- 1.9.3 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/5] ARM: dts: exynos5410: Clean up SMDK5410 indentation 2014-07-28 12:18 [RFC 0/5] ARM: EXYNOS: ODROID-XU DT and LEDs Andreas Färber @ 2014-07-28 12:18 ` Andreas Färber 2014-07-28 12:18 ` [PATCH 2/5] ARM: dts: exynos5410: Prepare ODROID-XU device tree Andreas Färber ` (4 subsequent siblings) 5 siblings, 0 replies; 11+ messages in thread From: Andreas Färber @ 2014-07-28 12:18 UTC (permalink / raw) To: linux-samsung-soc, Hakjoo Kim Cc: Tarek Dakhran, Kevin Hilman, linux-arm-kernel, linux-kernel, Andreas Färber, Ben Dooks, Kukjin Kim, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Russell King, open list:OPEN FIRMWARE AND... The UART status properties are indented one level too deep, and we want to derive a device tree for the ODROID-XU. Fix this before it propagates. Signed-off-by: Andreas Färber <afaerber@suse.de> --- arch/arm/boot/dts/exynos5410-smdk5410.dts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/exynos5410-smdk5410.dts b/arch/arm/boot/dts/exynos5410-smdk5410.dts index 7275bbd6fc4b..4c495de1bf68 100644 --- a/arch/arm/boot/dts/exynos5410-smdk5410.dts +++ b/arch/arm/boot/dts/exynos5410-smdk5410.dts @@ -70,13 +70,13 @@ }; &uart0 { - status = "okay"; + status = "okay"; }; &uart1 { - status = "okay"; + status = "okay"; }; &uart2 { - status = "okay"; + status = "okay"; }; -- 1.9.3 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/5] ARM: dts: exynos5410: Prepare ODROID-XU device tree 2014-07-28 12:18 [RFC 0/5] ARM: EXYNOS: ODROID-XU DT and LEDs Andreas Färber 2014-07-28 12:18 ` [PATCH 1/5] ARM: dts: exynos5410: Clean up SMDK5410 indentation Andreas Färber @ 2014-07-28 12:18 ` Andreas Färber 2014-07-28 12:18 ` [RFC 3/5] pinctrl: exynos: add exynos5410 SoC specific data Andreas Färber ` (3 subsequent siblings) 5 siblings, 0 replies; 11+ messages in thread From: Andreas Färber @ 2014-07-28 12:18 UTC (permalink / raw) To: linux-samsung-soc, Hakjoo Kim Cc: Tarek Dakhran, Kevin Hilman, linux-arm-kernel, linux-kernel, Andreas Färber, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Russell King, Ben Dooks, Kukjin Kim, open list:OPEN FIRMWARE AND... Derived from exynos5410-smdk5410.dts. Signed-off-by: Andreas Färber <afaerber@suse.de> --- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/exynos5410-odroidxu.dts | 86 +++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 arch/arm/boot/dts/exynos5410-odroidxu.dts diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 80a781f76e88..13fb64eeee10 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -77,6 +77,7 @@ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \ exynos5250-smdk5250.dtb \ exynos5250-snow.dtb \ exynos5260-xyref5260.dtb \ + exynos5410-odroidxu.dtb \ exynos5410-smdk5410.dtb \ exynos5420-arndale-octa.dtb \ exynos5420-peach-pit.dtb \ diff --git a/arch/arm/boot/dts/exynos5410-odroidxu.dts b/arch/arm/boot/dts/exynos5410-odroidxu.dts new file mode 100644 index 000000000000..b67112bf062a --- /dev/null +++ b/arch/arm/boot/dts/exynos5410-odroidxu.dts @@ -0,0 +1,86 @@ +/* + * Hardkernel ODROID-XU device tree source + * + * Copyright (c) 2014 SUSE LINUX Products GmbH + * + * Based on exynos5410-smdk5410.dts: + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * 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. +*/ + +/dts-v1/; +#include "exynos5410.dtsi" +/ { + model = "ODROID-XU based on EXYNOS5410"; + compatible = "hardkernel,odroid-xu", "samsung,exynos5410", "samsung,exynos5"; + + memory { + reg = <0x40000000 0x80000000>; + }; + + chosen { + bootargs = "console=ttySAC2,115200"; + }; + + fin_pll: xxti { + compatible = "fixed-clock"; + clock-frequency = <24000000>; + clock-output-names = "fin_pll"; + #clock-cells = <0>; + }; + + firmware@02037000 { + compatible = "samsung,secure-firmware"; + reg = <0x02037000 0x1000>; + }; + +}; + +&mmc_0 { + status = "okay"; + num-slots = <1>; + supports-highspeed; + broken-cd; + card-detect-delay = <200>; + samsung,dw-mshc-ciu-div = <3>; + samsung,dw-mshc-sdr-timing = <2 3>; + samsung,dw-mshc-ddr-timing = <1 2>; + + slot@0 { + reg = <0>; + bus-width = <8>; + }; +}; + +&mmc_2 { + status = "okay"; + num-slots = <1>; + supports-highspeed; + card-detect-delay = <200>; + samsung,dw-mshc-ciu-div = <3>; + samsung,dw-mshc-sdr-timing = <2 3>; + samsung,dw-mshc-ddr-timing = <1 2>; + + slot@0 { + reg = <0>; + bus-width = <4>; + disable-wp; + }; +}; + +&uart0 { + status = "okay"; +}; + +&uart1 { + status = "okay"; +}; + +&uart2 { + status = "okay"; +}; -- 1.9.3 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [RFC 3/5] pinctrl: exynos: add exynos5410 SoC specific data 2014-07-28 12:18 [RFC 0/5] ARM: EXYNOS: ODROID-XU DT and LEDs Andreas Färber 2014-07-28 12:18 ` [PATCH 1/5] ARM: dts: exynos5410: Clean up SMDK5410 indentation Andreas Färber 2014-07-28 12:18 ` [PATCH 2/5] ARM: dts: exynos5410: Prepare ODROID-XU device tree Andreas Färber @ 2014-07-28 12:18 ` Andreas Färber 2014-08-08 12:55 ` Linus Walleij 2014-07-28 12:18 ` [RFC 4/5] ARM: dts: add pinctrl support to Exynos5410 Andreas Färber ` (2 subsequent siblings) 5 siblings, 1 reply; 11+ messages in thread From: Andreas Färber @ 2014-07-28 12:18 UTC (permalink / raw) To: linux-samsung-soc, Hakjoo Kim Cc: Tarek Dakhran, Kevin Hilman, linux-arm-kernel, linux-kernel, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Tomasz Figa, Thomas Abraham, Linus Walleij, Kukjin Kim, open list:OPEN FIRMWARE AND... From: Hakjoo Kim <ruppi.kim@hardkernel.com> Add Samsung EXYNOS5410 SoC specific data to enable pinctrl support for all platforms based on EXYNOS5410. Cc: Hakjoo Kim <ruppi.kim@hardkernel.com> [AF: Rebased onto Exynos5260] --- .../bindings/pinctrl/samsung-pinctrl.txt | 1 + drivers/pinctrl/pinctrl-exynos.c | 126 +++++++++++++++++++++ drivers/pinctrl/pinctrl-samsung.c | 2 + drivers/pinctrl/pinctrl-samsung.h | 1 + 4 files changed, 130 insertions(+) diff --git a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt index 2b32783ba821..1b2ec5a1f1a8 100644 --- a/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt @@ -17,6 +17,7 @@ Required Properties: - "samsung,exynos4x12-pinctrl": for Exynos4x12 compatible pin-controller. - "samsung,exynos5250-pinctrl": for Exynos5250 compatible pin-controller. - "samsung,exynos5260-pinctrl": for Exynos5260 compatible pin-controller. + - "samsung,exynos5410-pinctrl": for Exynos5410 compatible pin-controller. - "samsung,exynos5420-pinctrl": for Exynos5420 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 9609c23834ce..1ea15d98cea2 100644 --- a/drivers/pinctrl/pinctrl-exynos.c +++ b/drivers/pinctrl/pinctrl-exynos.c @@ -1191,6 +1191,132 @@ struct samsung_pin_ctrl exynos5260_pin_ctrl[] = { }, }; +/* pin banks of exynos5410 pin-controller 0 */ +static struct samsung_pin_bank exynos5410_pin_banks0[] = { + EXYNOS_PIN_BANK_EINTG(8, 0x000, "gpa0", 0x00), + EXYNOS_PIN_BANK_EINTG(6, 0x020, "gpa1", 0x04), + EXYNOS_PIN_BANK_EINTG(8, 0x040, "gpa2", 0x08), + EXYNOS_PIN_BANK_EINTG(5, 0x060, "gpb0", 0x0c), + EXYNOS_PIN_BANK_EINTG(5, 0x080, "gpb1", 0x10), + EXYNOS_PIN_BANK_EINTG(4, 0x0A0, "gpb2", 0x14), + EXYNOS_PIN_BANK_EINTG(4, 0x0C0, "gpb3", 0x18), + EXYNOS_PIN_BANK_EINTG(7, 0x0E0, "gpc0", 0x1c), + EXYNOS_PIN_BANK_EINTG(4, 0x100, "gpc3", 0x20), + EXYNOS_PIN_BANK_EINTG(7, 0x120, "gpc1", 0x24), + EXYNOS_PIN_BANK_EINTG(7, 0x140, "gpc2", 0x28), + EXYNOS_PIN_BANK_EINTN(2, 0x160, "gpm5"), + EXYNOS_PIN_BANK_EINTG(8, 0x180, "gpd1", 0x2c), + EXYNOS_PIN_BANK_EINTG(8, 0x1A0, "gpe0", 0x30), + EXYNOS_PIN_BANK_EINTG(2, 0x1C0, "gpe1", 0x34), + EXYNOS_PIN_BANK_EINTG(6, 0x1E0, "gpf0", 0x38), + EXYNOS_PIN_BANK_EINTG(8, 0x200, "gpf1", 0x3c), + EXYNOS_PIN_BANK_EINTG(8, 0x220, "gpg0", 0x40), + EXYNOS_PIN_BANK_EINTG(8, 0x240, "gpg1", 0x44), + EXYNOS_PIN_BANK_EINTG(2, 0x260, "gpg2", 0x48), + EXYNOS_PIN_BANK_EINTG(4, 0x280, "gph0", 0x4c), + EXYNOS_PIN_BANK_EINTG(8, 0x2A0, "gph1", 0x50), + EXYNOS_PIN_BANK_EINTN(8, 0x2C0, "gpm7"), + EXYNOS_PIN_BANK_EINTN(6, 0x2E0, "gpy0"), + EXYNOS_PIN_BANK_EINTN(4, 0x300, "gpy1"), + EXYNOS_PIN_BANK_EINTN(6, 0x320, "gpy2"), + EXYNOS_PIN_BANK_EINTN(8, 0x340, "gpy3"), + EXYNOS_PIN_BANK_EINTN(8, 0x360, "gpy4"), + EXYNOS_PIN_BANK_EINTN(8, 0x380, "gpy5"), + EXYNOS_PIN_BANK_EINTN(8, 0x3A0, "gpy6"), + EXYNOS_PIN_BANK_EINTN(8, 0x3C0, "gpy7"), + 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 exynos5410 pin-controller 1 */ +static struct samsung_pin_bank exynos5410_pin_banks1[] = { + EXYNOS_PIN_BANK_EINTG(5, 0x000, "gpj0", 0x00), + EXYNOS_PIN_BANK_EINTG(8, 0x020, "gpj1", 0x04), + EXYNOS_PIN_BANK_EINTG(8, 0x040, "gpj2", 0x08), + EXYNOS_PIN_BANK_EINTG(8, 0x060, "gpj3", 0x0c), + EXYNOS_PIN_BANK_EINTG(2, 0x080, "gpj4", 0x10), + EXYNOS_PIN_BANK_EINTG(8, 0x0A0, "gpk0", 0x14), + EXYNOS_PIN_BANK_EINTG(8, 0x0C0, "gpk1", 0x18), + EXYNOS_PIN_BANK_EINTG(8, 0x0E0, "gpk2", 0x1c), + EXYNOS_PIN_BANK_EINTG(7, 0x100, "gpk3", 0x20), +}; + +/* pin banks of exynos5410 pin-controller 2 */ +static struct samsung_pin_bank exynos5410_pin_banks2[] = { + EXYNOS_PIN_BANK_EINTG(8, 0x000, "gpv0", 0x00), + EXYNOS_PIN_BANK_EINTG(8, 0x020, "gpv1", 0x04), + EXYNOS_PIN_BANK_EINTG(8, 0x060, "gpv2", 0x08), + EXYNOS_PIN_BANK_EINTG(8, 0x080, "gpv3", 0x0c), + EXYNOS_PIN_BANK_EINTG(2, 0x0C0, "gpv4", 0x10), +}; + +/* pin banks of exynos5410 pin-controller 3 */ +static struct samsung_pin_bank exynos5410_pin_banks3[] = { + EXYNOS_PIN_BANK_EINTG(7, 0x000, "gpz", 0x00), +}; + +/* + * Samsung pinctrl driver data for Exynos5410 SoC. Exynos5410 SoC includes + * four gpio/pin-mux/pinconfig controllers. + */ +struct samsung_pin_ctrl exynos5410_pin_ctrl[] = { + { + /* pin-controller instance 0 data */ + .pin_banks = exynos5410_pin_banks0, + .nr_banks = ARRAY_SIZE(exynos5410_pin_banks0), + .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, + .suspend = exynos_pinctrl_suspend, + .resume = exynos_pinctrl_resume, + .label = "exynos5410-gpio-ctrl0", + }, { + /* pin-controller instance 1 data */ + .pin_banks = exynos5410_pin_banks1, + .nr_banks = ARRAY_SIZE(exynos5410_pin_banks1), + .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, + .suspend = exynos_pinctrl_suspend, + .resume = exynos_pinctrl_resume, + .label = "exynos5410-gpio-ctrl1", + }, { + /* pin-controller instance 2 data */ + .pin_banks = exynos5410_pin_banks2, + .nr_banks = ARRAY_SIZE(exynos5410_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, + .suspend = exynos_pinctrl_suspend, + .resume = exynos_pinctrl_resume, + .label = "exynos5410-gpio-ctrl2", + }, { + /* pin-controller instance 3 data */ + .pin_banks = exynos5410_pin_banks3, + .nr_banks = ARRAY_SIZE(exynos5410_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, + .suspend = exynos_pinctrl_suspend, + .resume = exynos_pinctrl_resume, + .label = "exynos5410-gpio-ctrl3", + }, +}; + /* pin banks of exynos5420 pin-controller 0 */ static struct samsung_pin_bank exynos5420_pin_banks0[] = { EXYNOS_PIN_BANK_EINTG(8, 0x000, "gpy7", 0x00), diff --git a/drivers/pinctrl/pinctrl-samsung.c b/drivers/pinctrl/pinctrl-samsung.c index 3e61d0f8f146..b4beabc19813 100644 --- a/drivers/pinctrl/pinctrl-samsung.c +++ b/drivers/pinctrl/pinctrl-samsung.c @@ -1124,6 +1124,8 @@ static const struct of_device_id samsung_pinctrl_dt_match[] = { .data = (void *)exynos5250_pin_ctrl }, { .compatible = "samsung,exynos5260-pinctrl", .data = (void *)exynos5260_pin_ctrl }, + { .compatible = "samsung,exynos5410-pinctrl", + .data = (void *)exynos5410_pin_ctrl }, { .compatible = "samsung,exynos5420-pinctrl", .data = (void *)exynos5420_pin_ctrl }, { .compatible = "samsung,s5pv210-pinctrl", diff --git a/drivers/pinctrl/pinctrl-samsung.h b/drivers/pinctrl/pinctrl-samsung.h index b3e41fa5798b..1eb9a2d5e558 100644 --- a/drivers/pinctrl/pinctrl-samsung.h +++ b/drivers/pinctrl/pinctrl-samsung.h @@ -256,6 +256,7 @@ extern struct samsung_pin_ctrl exynos4210_pin_ctrl[]; extern struct samsung_pin_ctrl exynos4x12_pin_ctrl[]; extern struct samsung_pin_ctrl exynos5250_pin_ctrl[]; extern struct samsung_pin_ctrl exynos5260_pin_ctrl[]; +extern struct samsung_pin_ctrl exynos5410_pin_ctrl[]; extern struct samsung_pin_ctrl exynos5420_pin_ctrl[]; extern struct samsung_pin_ctrl s3c64xx_pin_ctrl[]; extern struct samsung_pin_ctrl s3c2412_pin_ctrl[]; -- 1.9.3 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [RFC 3/5] pinctrl: exynos: add exynos5410 SoC specific data 2014-07-28 12:18 ` [RFC 3/5] pinctrl: exynos: add exynos5410 SoC specific data Andreas Färber @ 2014-08-08 12:55 ` Linus Walleij 2014-08-08 13:20 ` Tomasz Figa 0 siblings, 1 reply; 11+ messages in thread From: Linus Walleij @ 2014-08-08 12:55 UTC (permalink / raw) To: Andreas Färber Cc: linux-samsung-soc, Hakjoo Kim, Tarek Dakhran, Kevin Hilman, linux-arm-kernel, linux-kernel, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Tomasz Figa, Thomas Abraham, Kukjin Kim, open list:OPEN FIRMWARE AND... On Mon, Jul 28, 2014 at 2:18 PM, Andreas Färber <afaerber@suse.de> wrote: > From: Hakjoo Kim <ruppi.kim@hardkernel.com> > > Add Samsung EXYNOS5410 SoC specific data to enable pinctrl > support for all platforms based on EXYNOS5410. > > Cc: Hakjoo Kim <ruppi.kim@hardkernel.com> > [AF: Rebased onto Exynos5260] I'm waiting for Tomasz to review this before applying. Yours, Linus Walleij ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC 3/5] pinctrl: exynos: add exynos5410 SoC specific data 2014-08-08 12:55 ` Linus Walleij @ 2014-08-08 13:20 ` Tomasz Figa 0 siblings, 0 replies; 11+ messages in thread From: Tomasz Figa @ 2014-08-08 13:20 UTC (permalink / raw) To: Linus Walleij, Andreas Färber Cc: Mark Rutland, Tarek Dakhran, linux-samsung-soc, Pawel Moll, Ian Campbell, Tomasz Figa, linux-kernel, Rob Herring, open list:OPEN FIRMWARE AND..., Kevin Hilman, Thomas Abraham, Kumar Gala, Hakjoo Kim, Kukjin Kim, linux-arm-kernel Linus, Andreas, On 08.08.2014 14:55, Linus Walleij wrote: > On Mon, Jul 28, 2014 at 2:18 PM, Andreas Färber <afaerber@suse.de> wrote: > >> From: Hakjoo Kim <ruppi.kim@hardkernel.com> >> >> Add Samsung EXYNOS5410 SoC specific data to enable pinctrl >> support for all platforms based on EXYNOS5410. >> >> Cc: Hakjoo Kim <ruppi.kim@hardkernel.com> >> [AF: Rebased onto Exynos5260] > > I'm waiting for Tomasz to review this before applying. Thanks for the reminder. I'm currently on holidays and I'm not following the lists too closely, so sorry if I happen to miss some patches. In general the changes look good, although I can't verify whether the data being added really match the hardware, as I don't have access to detailed information about Exynos5410. Also I believe this patch needs to be rebased onto current pinctrl tree as several (conflicting) improvements to the pinctrl-samsung driver hit it before this patch was posted. Best regards, Tomasz ^ permalink raw reply [flat|nested] 11+ messages in thread
* [RFC 4/5] ARM: dts: add pinctrl support to Exynos5410 2014-07-28 12:18 [RFC 0/5] ARM: EXYNOS: ODROID-XU DT and LEDs Andreas Färber ` (2 preceding siblings ...) 2014-07-28 12:18 ` [RFC 3/5] pinctrl: exynos: add exynos5410 SoC specific data Andreas Färber @ 2014-07-28 12:18 ` Andreas Färber 2014-08-08 13:29 ` Tomasz Figa 2014-07-28 12:18 ` [RFC 5/5] ARM: dts: exynos5410: Add ODROID-XU LEDs Andreas Färber 2014-07-31 4:46 ` [RFC 0/5] ARM: EXYNOS: ODROID-XU DT and LEDs Andreas Färber 5 siblings, 1 reply; 11+ messages in thread From: Andreas Färber @ 2014-07-28 12:18 UTC (permalink / raw) To: linux-samsung-soc, Hakjoo Kim Cc: Tarek Dakhran, Kevin Hilman, linux-arm-kernel, linux-kernel, Ben Dooks, Kukjin Kim, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Russell King, open list:OPEN FIRMWARE AND... From: Hakjoo Kim <ruppi.kim@hardkernel.com> Add the required pin configuration support to Exynos5410 using pinctrl interface. Cc: Hakjoo Kim <ruppi.kim@hardkernel.com> [AF: Rebased] --- arch/arm/boot/dts/exynos5410-pinctrl.dtsi | 408 ++++++++++++++++++++++++++++++ arch/arm/boot/dts/exynos5410.dtsi | 32 +++ 2 files changed, 440 insertions(+) create mode 100644 arch/arm/boot/dts/exynos5410-pinctrl.dtsi diff --git a/arch/arm/boot/dts/exynos5410-pinctrl.dtsi b/arch/arm/boot/dts/exynos5410-pinctrl.dtsi new file mode 100644 index 000000000000..8b5288367a00 --- /dev/null +++ b/arch/arm/boot/dts/exynos5410-pinctrl.dtsi @@ -0,0 +1,408 @@ +/* + * Exynos5410 SoC pin-mux and pin-config device tree source + * + * Copyright (c) 2013 Hardkernel Co., Ltd. + * http://www.hardkernel.com + * + * 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@13400000 { + gpa0: gpa0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpa1: gpa1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpa2: gpa2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpb0: gpb0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpb1: gpb1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpb2: gpb2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpb3: gpb3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpc0: gpc0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpc3: gpc3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpc1: gpc1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpc2: gpc2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpm5: gpm5 { + gpio-controller; + #gpio-cells = <2>; + }; + + gpd1: gpd1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpe0: gpe0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpe1: gpe1 { + 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>; + }; + + gpg0: gpg0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpg1: gpg1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpg2: gpg2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gph0: gph0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gph1: gph1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpm7: gpm7 { + gpio-controller; + #gpio-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>; + }; + + gpy7: gpy7 { + gpio-controller; + #gpio-cells = <2>; + }; + + gpx0: gpx0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + interrupt-parent = <&combiner>; + #interrupt-cells = <2>; + interrupts = <23 0>, + <24 0>, + <25 0>, + <25 1>, + <26 0>, + <26 1>, + <27 0>, + <27 1>; + }; + + gpx1: gpx1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + interrupt-parent = <&combiner>; + #interrupt-cells = <2>; + interrupts = <28 0>, + <28 1>, + <29 0>, + <29 1>, + <30 0>, + <30 1>, + <31 0>, + <31 1>; + }; + + gpx2: gpx2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpx3: gpx3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + }; + + pinctrl@14000000 { + gpj0: gpj0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpj1: gpj1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpj2: gpj2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpj3: gpj3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpj4: gpj4 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + 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>; + }; + }; + + pinctrl@10d10000 { + 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>; + }; + }; + + pinctrl@03860000 { + gpz: gpz { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + }; +}; diff --git a/arch/arm/boot/dts/exynos5410.dtsi b/arch/arm/boot/dts/exynos5410.dtsi index 790d4886d7b5..6e3ec9399362 100644 --- a/arch/arm/boot/dts/exynos5410.dtsi +++ b/arch/arm/boot/dts/exynos5410.dtsi @@ -14,12 +14,20 @@ */ #include "skeleton.dtsi" +#include "exynos5410-pinctrl.dtsi" #include <dt-bindings/clock/exynos5410.h> / { compatible = "samsung,exynos5410", "samsung,exynos5"; interrupt-parent = <&gic>; + aliases { + pinctrl0 = &pinctrl_0; + pinctrl1 = &pinctrl_1; + pinctrl2 = &pinctrl_2; + pinctrl3 = &pinctrl_3; + }; + cpus { #address-cells = <1>; #size-cells = <0>; @@ -212,4 +220,28 @@ status = "disabled"; }; }; + + pinctrl_0: pinctrl@13400000 { + compatible = "samsung,exynos5410-pinctrl"; + reg = <0x13400000 0x1000>; + interrupts = <0 45 0>; + }; + + pinctrl_1: pinctrl@14000000 { + compatible = "samsung,exynos5410-pinctrl"; + reg = <0x14000000 0x1000>; + interrupts = <0 46 0>; + }; + + pinctrl_2: pinctrl@10d10000 { + compatible = "samsung,exynos5410-pinctrl"; + reg = <0x10d10000 0x1000>; + interrupts = <0 50 0>; + }; + + pinctrl_3: pinctrl@03860000 { + compatible = "samsung,exynos5410-pinctrl"; + reg = <0x03860000 0x1000>; + interrupts = <0 47 0>; + }; }; -- 1.9.3 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [RFC 4/5] ARM: dts: add pinctrl support to Exynos5410 2014-07-28 12:18 ` [RFC 4/5] ARM: dts: add pinctrl support to Exynos5410 Andreas Färber @ 2014-08-08 13:29 ` Tomasz Figa 0 siblings, 0 replies; 11+ messages in thread From: Tomasz Figa @ 2014-08-08 13:29 UTC (permalink / raw) To: Andreas Färber, linux-samsung-soc, Hakjoo Kim Cc: Tarek Dakhran, Kevin Hilman, linux-arm-kernel, linux-kernel, Ben Dooks, Kukjin Kim, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Russell King, open list:OPEN FIRMWARE AND... Hi, Please see my comment inline. On 28.07.2014 14:18, Andreas Färber wrote: > From: Hakjoo Kim <ruppi.kim@hardkernel.com> > > Add the required pin configuration support to Exynos5410 using pinctrl > interface. [snip] > + pinctrl_0: pinctrl@13400000 { > + compatible = "samsung,exynos5410-pinctrl"; > + reg = <0x13400000 0x1000>; > + interrupts = <0 45 0>; I believe you are missing the wake-up IRQ controller node here, which is needed to handle the interrupts of EINTW (gpxN) banks. Best regards, Tomasz ^ permalink raw reply [flat|nested] 11+ messages in thread
* [RFC 5/5] ARM: dts: exynos5410: Add ODROID-XU LEDs 2014-07-28 12:18 [RFC 0/5] ARM: EXYNOS: ODROID-XU DT and LEDs Andreas Färber ` (3 preceding siblings ...) 2014-07-28 12:18 ` [RFC 4/5] ARM: dts: add pinctrl support to Exynos5410 Andreas Färber @ 2014-07-28 12:18 ` Andreas Färber 2014-07-31 4:46 ` [RFC 0/5] ARM: EXYNOS: ODROID-XU DT and LEDs Andreas Färber 5 siblings, 0 replies; 11+ messages in thread From: Andreas Färber @ 2014-07-28 12:18 UTC (permalink / raw) To: linux-samsung-soc, Hakjoo Kim Cc: Tarek Dakhran, Kevin Hilman, linux-arm-kernel, linux-kernel, Andreas Färber, Ben Dooks, Kukjin Kim, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Russell King, open list:OPEN FIRMWARE AND... Signed-off-by: Andreas Färber <afaerber@suse.de> --- arch/arm/boot/dts/exynos5410-odroidxu.dts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/arch/arm/boot/dts/exynos5410-odroidxu.dts b/arch/arm/boot/dts/exynos5410-odroidxu.dts index b67112bf062a..f6e7555feeff 100644 --- a/arch/arm/boot/dts/exynos5410-odroidxu.dts +++ b/arch/arm/boot/dts/exynos5410-odroidxu.dts @@ -15,6 +15,7 @@ /dts-v1/; #include "exynos5410.dtsi" +#include <dt-bindings/gpio/gpio.h> / { model = "ODROID-XU based on EXYNOS5410"; compatible = "hardkernel,odroid-xu", "samsung,exynos5410", "samsung,exynos5"; @@ -39,6 +40,30 @@ reg = <0x02037000 0x1000>; }; + leds { + compatible = "gpio-leds"; + + blue { + label = "blue:heartbeat"; + gpios = <&gpb2 2 GPIO_ACTIVE_HIGH>; + default-state = "off"; + linux,default-trigger = "heartbeat"; + }; + + green { + label = "green:activity"; + gpios = <&gpb2 1 GPIO_ACTIVE_HIGH>; + default-state = "off"; + linux,default-trigger = "mmc0"; + }; + + red { + label = "red:activity"; + gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>; + default-state = "off"; + linux,default-trigger = "mmc1"; + }; + }; }; &mmc_0 { -- 1.9.3 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [RFC 0/5] ARM: EXYNOS: ODROID-XU DT and LEDs 2014-07-28 12:18 [RFC 0/5] ARM: EXYNOS: ODROID-XU DT and LEDs Andreas Färber ` (4 preceding siblings ...) 2014-07-28 12:18 ` [RFC 5/5] ARM: dts: exynos5410: Add ODROID-XU LEDs Andreas Färber @ 2014-07-31 4:46 ` Andreas Färber 2015-03-14 19:13 ` Ben Gamari 5 siblings, 1 reply; 11+ messages in thread From: Andreas Färber @ 2014-07-31 4:46 UTC (permalink / raw) To: linux-samsung-soc, Kukjin Kim Cc: Hakjoo Kim, Tarek Dakhran, Kevin Hilman, linux-arm-kernel, linux-kernel, Humberto Naves Kukjin, Am 28.07.2014 14:18, schrieb Andreas Färber: > Hello, > > This series adds a dedicated ODROID-XU device tree and enhances it with > LED configuration, to match the downstream 3.14 based behavior. > > It had turned out less trivial than I initially thought as the whole > pinctrl stuff is still missing. I thus cherry-pick two downstream commits. > > Hakjoo, can you please reply with a Signed-off-by to your patches > so that we can get them into upstream? Thanks in advance! FTR, Hakjoo Kim did reply with signed off patches (thanks again!) and updated their branch accordingly: https://github.com/hardkernel/linux/commits/odroid-3.14.y-linaro https://github.com/hardkernel/linux/commit/53edc3da0d1da287517681b47daf36679637b6ba https://github.com/hardkernel/linux/commit/afdc310e47e4d1799719566bfb5a47c55141a7cb > Andreas Färber (3): > ARM: dts: exynos5410: Clean up SMDK5410 indentation > ARM: dts: exynos5410: Prepare ODROID-XU device tree The functional changes below haven't been reviewed yet, but could you consider applying trivial patches 1-2? Regards, Andreas > ARM: dts: exynos5410: Add ODROID-XU LEDs > > Hakjoo Kim (2): > pinctrl: exynos: add exynos5410 SoC specific data > ARM: dts: add pinctrl support to Exynos5410 > > .../bindings/pinctrl/samsung-pinctrl.txt | 1 + > arch/arm/boot/dts/Makefile | 1 + > arch/arm/boot/dts/exynos5410-odroidxu.dts | 111 ++++++ > arch/arm/boot/dts/exynos5410-pinctrl.dtsi | 408 +++++++++++++++++++++ > arch/arm/boot/dts/exynos5410-smdk5410.dts | 6 +- > arch/arm/boot/dts/exynos5410.dtsi | 32 ++ > drivers/pinctrl/pinctrl-exynos.c | 126 +++++++ > drivers/pinctrl/pinctrl-samsung.c | 2 + > drivers/pinctrl/pinctrl-samsung.h | 1 + > 9 files changed, 685 insertions(+), 3 deletions(-) > create mode 100644 arch/arm/boot/dts/exynos5410-odroidxu.dts > create mode 100644 arch/arm/boot/dts/exynos5410-pinctrl.dtsi > -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC 0/5] ARM: EXYNOS: ODROID-XU DT and LEDs 2014-07-31 4:46 ` [RFC 0/5] ARM: EXYNOS: ODROID-XU DT and LEDs Andreas Färber @ 2015-03-14 19:13 ` Ben Gamari 0 siblings, 0 replies; 11+ messages in thread From: Ben Gamari @ 2015-03-14 19:13 UTC (permalink / raw) To: Andreas Färber, linux-samsung-soc, Kukjin Kim Cc: Humberto Naves, Tarek Dakhran, Kevin Hilman, linux-kernel, Hakjoo Kim, linux-arm-kernel [-- Attachment #1: Type: text/plain, Size: 1539 bytes --] Andreas Färber <afaerber@suse.de> writes: > Kukjin, > > Am 28.07.2014 14:18, schrieb Andreas Färber: >> Hello, >> >> This series adds a dedicated ODROID-XU device tree and enhances it with >> LED configuration, to match the downstream 3.14 based behavior. >> >> It had turned out less trivial than I initially thought as the whole >> pinctrl stuff is still missing. I thus cherry-pick two downstream commits. >> >> Hakjoo, can you please reply with a Signed-off-by to your patches >> so that we can get them into upstream? Thanks in advance! > > FTR, Hakjoo Kim did reply with signed off patches (thanks again!) and > updated their branch accordingly: > > https://github.com/hardkernel/linux/commits/odroid-3.14.y-linaro > https://github.com/hardkernel/linux/commit/53edc3da0d1da287517681b47daf36679637b6ba > https://github.com/hardkernel/linux/commit/afdc310e47e4d1799719566bfb5a47c55141a7cb > >> Andreas Färber (3): >> ARM: dts: exynos5410: Clean up SMDK5410 indentation >> ARM: dts: exynos5410: Prepare ODROID-XU device tree > > The functional changes below haven't been reviewed yet, but could you > consider applying trivial patches 1-2? > > Regards, > Andreas > >> ARM: dts: exynos5410: Add ODROID-XU LEDs >> >> Hakjoo Kim (2): >> pinctrl: exynos: add exynos5410 SoC specific data >> ARM: dts: add pinctrl support to Exynos5410 >> What happened with this set? It appears that 1-2 were never merged nor was there any review of the remaining patches. Cheers, - Ben [-- Attachment #2: Type: application/pgp-signature, Size: 472 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2015-03-14 19:13 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2014-07-28 12:18 [RFC 0/5] ARM: EXYNOS: ODROID-XU DT and LEDs Andreas Färber 2014-07-28 12:18 ` [PATCH 1/5] ARM: dts: exynos5410: Clean up SMDK5410 indentation Andreas Färber 2014-07-28 12:18 ` [PATCH 2/5] ARM: dts: exynos5410: Prepare ODROID-XU device tree Andreas Färber 2014-07-28 12:18 ` [RFC 3/5] pinctrl: exynos: add exynos5410 SoC specific data Andreas Färber 2014-08-08 12:55 ` Linus Walleij 2014-08-08 13:20 ` Tomasz Figa 2014-07-28 12:18 ` [RFC 4/5] ARM: dts: add pinctrl support to Exynos5410 Andreas Färber 2014-08-08 13:29 ` Tomasz Figa 2014-07-28 12:18 ` [RFC 5/5] ARM: dts: exynos5410: Add ODROID-XU LEDs Andreas Färber 2014-07-31 4:46 ` [RFC 0/5] ARM: EXYNOS: ODROID-XU DT and LEDs Andreas Färber 2015-03-14 19:13 ` Ben Gamari
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).