Re: [PATCH v2 00/15] pinctrl: samsung: Usability and extensibiltiy improvements
On Thu, Oct 11, 2012 at 10:11 AM, Tomasz Figa wrote: > This patch series is a work on improving usability and extensibiltiy of > the pinctrl-samsung driver. It consists of three main parts: > - improving flexibility of SoC-specific data specification > - converting the driver to one GPIO chip and IRQ domain per pin bank > - improving wake-up IRQ setup and handling OK I managed to apply this series (I have a separate "samsung" branch in the pinctrl tree now) and merged into for-next for some testing in linux-next. Applied Kyungmin's reviewed-by and Thomas' acked-by on all. Thanks! Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 00/15] pinctrl: samsung: Usability and extensibiltiy improvements
On Thu, Oct 11, 2012 at 10:11 AM, Tomasz Figa wrote: > This patch series is a work on improving usability and extensibiltiy of > the pinctrl-samsung driver. It consists of three main parts: > - improving flexibility of SoC-specific data specification > - converting the driver to one GPIO chip and IRQ domain per pin bank > - improving wake-up IRQ setup and handling Oh I see Thomas and Kyungmin has ACKed this on patch 0, sorry for being so confused :-/ Looking into applying this using a separate samsung branch now... Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 00/15] pinctrl: samsung: Usability and extensibiltiy improvements
On 11 October 2012 16:11, Tomasz Figa wrote: > This patch series is a work on improving usability and extensibiltiy of > the pinctrl-samsung driver. It consists of three main parts: > - improving flexibility of SoC-specific data specification > - converting the driver to one GPIO chip and IRQ domain per pin bank > - improving wake-up IRQ setup and handling > > 1) What the first part does, in addition to various related fixes, is > removing any unnecessary static data from pinctrl-exynos driver. > > This is achieved mostly thanks to assigning pin numbers dynamically, > with help of only pin counts of particular banks. It also simplifies > adding next SoC variants, since much less static data needs to be > specified. > > 2) The second part attempts to simplify usage of the driver and fix several > problems of current implementation, in particular: > > - Simplifies GPIO pin specification in device tree by using pin > namespace local to pin bank instead of local to pin controller, e.g. > > gpios = <&gpj0 3 0>; > > instead of > > gpios = <&pinctrl0 115 0>; > > - Simplifies GPIO interrupt specification in device tree by using > namespace local to pin bank (and equal to GPIO namespace), e.g. > > interrupt-parent = <&gpj0>; > interrupts = <3 0>; > > instead of > > interrupt-parent = <&pinctrl0>; > interrupts = <115 0>; > > - Simplifies internal GPIO pin to bank translation thanks to > correspondence of particular GPIO chips to pin banks. This allows > to remove the (costly in case of GPIO bit-banging drivers) lookup > over all banks to find the one that the pin is from. > > 3) Third part is focused on removing the hard-coded description of wake-up > interrupt layout. > > It moves wake-up interrupt description to bank struct and device tree, > which allows to specify which pin banks support wake-up interrupts and > how they are handled (direct or multiplexed/chained). > > See particular patches for more detailed descriptions and the last patch for > updated device tree bindings. > > Changes since v1: > - dropped moving SoC-specific data to device tree >(might be added in further patches) > - dropped per-bank specification of configuration register offsets >(thus limiting scope of the driver to Exynos SoCs; will be added in > further patches) > > Tomasz Figa (15): > pinctrl: samsung: Detect and handle unsupported configuration types > pinctrl: samsung: Do not pass gpio_chip to pin_to_reg_bank > pinctrl: samsung: Assing pin numbers dynamically > pinctrl: samsung: Remove static pin enumerations > pinctrl: samsung: Distinguish between pin group and bank nodes > ARM: dts: exynos4210-pinctrl: Add nodes for pin banks > pinctrl: samsung: Match pin banks with their device nodes > pinctrl: samsung: Hold pointer to driver data in bank struct > pinctrl: samsung: Include bank-specific eint offset in bank struct > pinctrl: exynos: Use one IRQ domain per pin bank > pinctrl: samsung: Use one GPIO chip per pin bank > pinctrl: samsung: Use per-bank IRQ domain for wake-up interrupts > pinctrl: exynos: Set pin function to EINT in irq_set_type of wake-up > EINT > pinctrl: samsung: Add GPIO to IRQ translation > Documentation: Update samsung-pinctrl device tree bindings > documentation > > .../bindings/pinctrl/samsung-pinctrl.txt | 118 +-- > arch/arm/boot/dts/exynos4210-pinctrl.dtsi | 278 > arch/arm/boot/dts/exynos4210.dtsi | 241 +- > drivers/pinctrl/pinctrl-exynos.c | 367 > ++--- > drivers/pinctrl/pinctrl-exynos.h | 170 ++ > drivers/pinctrl/pinctrl-samsung.c | 203 > drivers/pinctrl/pinctrl-samsung.h | 29 +- > 7 files changed, 741 insertions(+), 665 deletions(-) Hi Tomasz, Thanks for this excellent series. This is a nice improvement for the samsung pinctrl driver. For this series: Acked-by: Thomas Abraham Regards, Thomas. > > -- > 1.7.12 > -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 00/15] pinctrl: samsung: Usability and extensibiltiy improvements
Hi, On Thu, Oct 11, 2012 at 5:11 PM, Tomasz Figa wrote: > This patch series is a work on improving usability and extensibiltiy of > the pinctrl-samsung driver. It consists of three main parts: > - improving flexibility of SoC-specific data specification > - converting the driver to one GPIO chip and IRQ domain per pin bank > - improving wake-up IRQ setup and handling Really good job! and it solved mess GPIOs H/W configurations of Samsung SoC. Basically Samsung SoC GPIOs don't have generic rules. Even worse, pin name is mixed but offset is still increased. With DT support. we can solve this issue and use generic pinctrl drivers. For all series. Reviewed-by: Kyungmin Park > > 1) What the first part does, in addition to various related fixes, is > removing any unnecessary static data from pinctrl-exynos driver. > > This is achieved mostly thanks to assigning pin numbers dynamically, > with help of only pin counts of particular banks. It also simplifies > adding next SoC variants, since much less static data needs to be > specified. > > 2) The second part attempts to simplify usage of the driver and fix several > problems of current implementation, in particular: > > - Simplifies GPIO pin specification in device tree by using pin > namespace local to pin bank instead of local to pin controller, e.g. > > gpios = <&gpj0 3 0>; > > instead of > > gpios = <&pinctrl0 115 0>; > > - Simplifies GPIO interrupt specification in device tree by using > namespace local to pin bank (and equal to GPIO namespace), e.g. > > interrupt-parent = <&gpj0>; > interrupts = <3 0>; > > instead of > > interrupt-parent = <&pinctrl0>; > interrupts = <115 0>; > > - Simplifies internal GPIO pin to bank translation thanks to > correspondence of particular GPIO chips to pin banks. This allows > to remove the (costly in case of GPIO bit-banging drivers) lookup > over all banks to find the one that the pin is from. > > 3) Third part is focused on removing the hard-coded description of wake-up > interrupt layout. > > It moves wake-up interrupt description to bank struct and device tree, > which allows to specify which pin banks support wake-up interrupts and > how they are handled (direct or multiplexed/chained). > > See particular patches for more detailed descriptions and the last patch for > updated device tree bindings. > > Changes since v1: > - dropped moving SoC-specific data to device tree >(might be added in further patches) > - dropped per-bank specification of configuration register offsets >(thus limiting scope of the driver to Exynos SoCs; will be added in > further patches) > > Tomasz Figa (15): > pinctrl: samsung: Detect and handle unsupported configuration types > pinctrl: samsung: Do not pass gpio_chip to pin_to_reg_bank > pinctrl: samsung: Assing pin numbers dynamically > pinctrl: samsung: Remove static pin enumerations > pinctrl: samsung: Distinguish between pin group and bank nodes > ARM: dts: exynos4210-pinctrl: Add nodes for pin banks > pinctrl: samsung: Match pin banks with their device nodes > pinctrl: samsung: Hold pointer to driver data in bank struct > pinctrl: samsung: Include bank-specific eint offset in bank struct > pinctrl: exynos: Use one IRQ domain per pin bank > pinctrl: samsung: Use one GPIO chip per pin bank > pinctrl: samsung: Use per-bank IRQ domain for wake-up interrupts > pinctrl: exynos: Set pin function to EINT in irq_set_type of wake-up > EINT > pinctrl: samsung: Add GPIO to IRQ translation > Documentation: Update samsung-pinctrl device tree bindings > documentation > > .../bindings/pinctrl/samsung-pinctrl.txt | 118 +-- > arch/arm/boot/dts/exynos4210-pinctrl.dtsi | 278 > arch/arm/boot/dts/exynos4210.dtsi | 241 +- > drivers/pinctrl/pinctrl-exynos.c | 367 > ++--- > drivers/pinctrl/pinctrl-exynos.h | 170 ++ > drivers/pinctrl/pinctrl-samsung.c | 203 > drivers/pinctrl/pinctrl-samsung.h | 29 +- > 7 files changed, 741 insertions(+), 665 deletions(-) > > -- > 1.7.12 > > > ___ > linux-arm-kernel mailing list > linux-arm-ker...@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2 00/15] pinctrl: samsung: Usability and extensibiltiy improvements
This patch series is a work on improving usability and extensibiltiy of the pinctrl-samsung driver. It consists of three main parts: - improving flexibility of SoC-specific data specification - converting the driver to one GPIO chip and IRQ domain per pin bank - improving wake-up IRQ setup and handling 1) What the first part does, in addition to various related fixes, is removing any unnecessary static data from pinctrl-exynos driver. This is achieved mostly thanks to assigning pin numbers dynamically, with help of only pin counts of particular banks. It also simplifies adding next SoC variants, since much less static data needs to be specified. 2) The second part attempts to simplify usage of the driver and fix several problems of current implementation, in particular: - Simplifies GPIO pin specification in device tree by using pin namespace local to pin bank instead of local to pin controller, e.g. gpios = <&gpj0 3 0>; instead of gpios = <&pinctrl0 115 0>; - Simplifies GPIO interrupt specification in device tree by using namespace local to pin bank (and equal to GPIO namespace), e.g. interrupt-parent = <&gpj0>; interrupts = <3 0>; instead of interrupt-parent = <&pinctrl0>; interrupts = <115 0>; - Simplifies internal GPIO pin to bank translation thanks to correspondence of particular GPIO chips to pin banks. This allows to remove the (costly in case of GPIO bit-banging drivers) lookup over all banks to find the one that the pin is from. 3) Third part is focused on removing the hard-coded description of wake-up interrupt layout. It moves wake-up interrupt description to bank struct and device tree, which allows to specify which pin banks support wake-up interrupts and how they are handled (direct or multiplexed/chained). See particular patches for more detailed descriptions and the last patch for updated device tree bindings. Changes since v1: - dropped moving SoC-specific data to device tree (might be added in further patches) - dropped per-bank specification of configuration register offsets (thus limiting scope of the driver to Exynos SoCs; will be added in further patches) Tomasz Figa (15): pinctrl: samsung: Detect and handle unsupported configuration types pinctrl: samsung: Do not pass gpio_chip to pin_to_reg_bank pinctrl: samsung: Assing pin numbers dynamically pinctrl: samsung: Remove static pin enumerations pinctrl: samsung: Distinguish between pin group and bank nodes ARM: dts: exynos4210-pinctrl: Add nodes for pin banks pinctrl: samsung: Match pin banks with their device nodes pinctrl: samsung: Hold pointer to driver data in bank struct pinctrl: samsung: Include bank-specific eint offset in bank struct pinctrl: exynos: Use one IRQ domain per pin bank pinctrl: samsung: Use one GPIO chip per pin bank pinctrl: samsung: Use per-bank IRQ domain for wake-up interrupts pinctrl: exynos: Set pin function to EINT in irq_set_type of wake-up EINT pinctrl: samsung: Add GPIO to IRQ translation Documentation: Update samsung-pinctrl device tree bindings documentation .../bindings/pinctrl/samsung-pinctrl.txt | 118 +-- arch/arm/boot/dts/exynos4210-pinctrl.dtsi | 278 arch/arm/boot/dts/exynos4210.dtsi | 241 +- drivers/pinctrl/pinctrl-exynos.c | 367 ++--- drivers/pinctrl/pinctrl-exynos.h | 170 ++ drivers/pinctrl/pinctrl-samsung.c | 203 drivers/pinctrl/pinctrl-samsung.h | 29 +- 7 files changed, 741 insertions(+), 665 deletions(-) -- 1.7.12 -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html