On 11 October 2012 16:11, Tomasz Figa <t.figa@xxxxxxxxxxx> 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 <thomas.abraham@xxxxxxxxxx> Regards, Thomas. > > -- > 1.7.12 > -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html