- 09 11月, 2014 3 次提交
-
-
由 Tomasz Figa 提交于
In order to separate initialization constants from runtime data, this patch modifies the driver to store only constant data in samsung_pin_ctrl struct and copy data required at runtime to samsung_pinctrl_drv_data struct. This makes it possible to mark all existing instances of samsung_pin_ctrl struct as const and __initconst. Signed-off-by: NTomasz Figa <tomasz.figa@gmail.com>
-
由 Tomasz Figa 提交于
This structure is not intended to be modified at runtime and functions as constant data shared between multiple pin banks. This patch makes all instances of it constant across the driver. Signed-off-by: NTomasz Figa <tomasz.figa@gmail.com>
-
由 Tomasz Figa 提交于
There is no code using it and in fact there are pin controller variants that do not even have this field initialized in their init data. This patch removes it completely. Signed-off-by: NTomasz Figa <tomasz.figa@gmail.com>
-
- 21 8月, 2014 1 次提交
-
-
由 Tomasz Figa 提交于
Currently after configuring a GPIO pin as an interrupt related pinmux registers are changed, but there is no protection from calling gpio_direction_*() in a badly written driver, which would cause the same pinmux register to be reconfigured for regular input/output and this disabling interrupt capability of the pin. This patch addresses this issue by moving pinmux reconfiguration to .irq_{request,release}_resources() callback of irq_chip and calling gpio_lock_as_irq() helper to prevent reconfiguration of pin direction. Setting up a GPIO interrupt on Samsung SoCs is a two-step operation - in addition to trigger configuration in a dedicated register, the pinmux must be also reconfigured to GPIO interrupt, which is a different function than normal GPIO input, although I/O-wise they both behave in the same way and gpio_get_value() can be used on a pin configured as IRQ as well. Such design implies subtleties such as gpio_direction_input() not having to fail if a pin is already configured as an interrupt nor change the configuration to normal input. But the FLAG_USED_AS_IRQ set in gpiolib by gpio_lock_as_irq() is only used to check that gpio_direction_output() is not called, it's not used to prevent gpio_direction_input() to be called. So this is not a complete solution for Samsung SoCs but it's definitely a move in the right direction. Signed-off-by: NTomasz Figa <t.figa@samsung.com> [javier: use request resources instead of startup and expand commit message] Signed-off-by: NJavier Martinez Canillas <javier.martinez@collabora.co.uk> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
- 11 7月, 2014 2 次提交
-
-
由 Sachin Kamat 提交于
Group all pin control drivers of Samsung platform together in a sub-directory for easy maintenance. Signed-off-by: NSachin Kamat <sachin.kamat@samsung.com> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
由 Tomasz Figa 提交于
Handling of irq_chip operations for GPIO and WKUP external interrupts is mostly the same, with the difference being offset of registers. However currently the driver has all the code duplicated for both EINT types, which is undesirable, because changes in irq_chip operations have to be done to both instances of the same code. This patch fixes this by creating exynos_irq_chip struct that has normal irq_chip struct embedded and contain differences between particular EINT types, which are three register offsets. One instance of code is removed and the new structure is used instead to fetch necessary data instead of samsung_pin_ctrl struct used previously. While at it, the patch removes Exynos-specific fields from aforementioned structure to improve layering of the driver. Signed-off-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
- 23 4月, 2014 1 次提交
-
-
由 Tomasz Figa 提交于
This patch adds driver data (bank list and EINT layout) for Exynos3250 to pinctrl-exynos driver. Exynos3250 includes 158 multi-functional input/output ports. There are 23 general port groups. Changes from v1: - Add signed-off of sender - Post only separated patch for pinctrl from following patchset(v1) : https://lkml.org/lkml/2014/4/10/286 Cc: Thomas Abraham <thomas.abraham@linaro.org> Cc: Linus Walleij <linus.walleij@linaro.org> Cc: Kukjin Kim <kgene.kim@samsung.com> Signed-off-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NChanwoo Choi <cw00.choi@samsung.com> Acked-by: NKyungmin Park <kyungmin.park@samsung.com> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
- 11 2月, 2014 1 次提交
-
-
由 Young-Gun Jang 提交于
Adds pinctrl support for all platforms based on EXYNOS5260 SoC. Acked-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NPankaj Dubey <pankaj.dubey@samsung.com> Signed-off-by: NYoung-Gun Jang <yg1004.jang@samsung.com> Signed-off-by: NRahul Sharma <rahul.sharma@samsung.com> Signed-off-by: NArun Kumar K <arun.kk@samsung.com> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
- 27 9月, 2013 1 次提交
-
-
由 Mateusz Krawczuk 提交于
Values of pins in table s5pv210 bank are incorrect. This patch correct values. Signed-off-by: NMateusz Krawczuk <m.krawczuk@partner.samsung.com> Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com> Acked-by: NTomasz Figa <t.figa@samsung.com> Acked-by: NKukjin Kim <kgene.kim@samsung.com> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
- 28 8月, 2013 1 次提交
-
-
由 Mateusz Krawczuk 提交于
This patch implements pinctrl support and adds device tree bindings for s5pv210. Signed-off-by: NMateusz Krawczuk <m.krawczuk@partner.samsung.com> Acked-by: NSylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
- 19 6月, 2013 1 次提交
-
-
由 Leela Krishna Amudala 提交于
Add Samsung EXYNOS5420 SoC specific data to enable pinctrl support for all platforms based on EXYNOS5420. Signed-off-by: NLeela Krishna Amudala <l.krishna@samsung.com> Reviewed-by: NDoug Anderson <dianders@chromium.org> Acked-by: NTomasz Figa <t.figa@samsung.com> Acked-by: NLinus Walleij <linus.walleij@linaro.org> Tested-by : Sunil Joshi <joshi@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
- 18 6月, 2013 1 次提交
-
-
由 Doug Anderson 提交于
A level-triggered interrupt should be acked after the interrupt line becomes inactive and before it is unmasked, or else another interrupt will be immediately triggered. Acking before or after calling the handler is not enough. Signed-off-by: NLuigi Semenzato <semenzato@chromium.org> Signed-off-by: NDoug Anderson <dianders@chromium.org> Acked-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
- 16 6月, 2013 2 次提交
-
-
由 Doug Anderson 提交于
This patch does nothing but reorder the functions to improve the readability of a future patch. Signed-off-by: NDoug Anderson <dianders@chromium.org> Acked-by: NTomasz Figa <t.figa@samsung.com> Acked-by: NKukjin Kim <kgene.kim@samsung.com> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
由 Doug Anderson 提交于
The patch: 19846950 pinctrl: samsung: Protect bank registers with a spinlock ...added spinlocks to protect many accesses. However, the irq_mask and irq_unmask functions still do an unprotected read/modify/write. Add the spinlock there. Signed-off-by: NDoug Anderson <dianders@chromium.org> Acked-by: NTomasz Figa <t.figa@samsung.com> Acked-by: NKukjin Kim <kgene.kim@samsung.com> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
- 27 5月, 2013 2 次提交
-
-
由 Tomasz Figa 提交于
Some GPIO EINT control registers needs to be preserved across suspend/resume cycle. This patch extends the driver to take care of this. Signed-off-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
由 Tomasz Figa 提交于
This patch adds support of IRQ wake-up ability configuration for wake-up EINTs on Exynos SoCs. Signed-off-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com> Tested-by: NDoug Anderson <dianders@chromium.org> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
- 09 4月, 2013 3 次提交
-
-
由 Tomasz Figa 提交于
This patch replaces statically hardcoded register offsets of Exynos SoCs with an array of register offsets in samsung_pin_bank_type struct. Thanks to this change, support for SoCs with other set and order of registers can be added (e.g. S3C24xx and S3C64xx). Signed-off-by: NTomasz Figa <tomasz.figa@gmail.com> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
由 Tomasz Figa 提交于
This patch splits pin bank description into two structures, one describing bank type (currently only bitfield widths), which can be shared across multiple banks and second containing bank-specific parameters including a pointer to a bank type struct. It is a prerequisite for further patch removing the statically hardcoded register offsets, making it impossible to support SoCs with different set and order of pin control registers. Signed-off-by: NTomasz Figa <tomasz.figa@gmail.com> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
由 Tomasz Figa 提交于
Certain pin control registers can be accessed from different contexts, i.e. pinctrl, gpio and irq functions. This makes the locking provided by pin control core insufficient. This patch adds necessary locking using a per bank spinlock as it was done in the old Samsung GPIO driver. Signed-off-by: NTomasz Figa <tomasz.figa@gmail.com> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
- 27 3月, 2013 1 次提交
-
-
由 Catalin Marinas 提交于
These functions have been introduced by commit 10a8c383 (irq: introduce entry and exit functions for chained handlers) in asm/mach/irq.h. This patch moves them to linux/irqchip/chained_irq.h so that generic irqchip drivers do not rely on architecture specific header files. Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com> Tested-by: NMarc Zyngier <marc.zyngier@arm.com> Cc: Russell King <linux@arm.linux.org.uk> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Rob Herring <rob.herring@calxeda.com>
-
- 05 3月, 2013 1 次提交
-
-
由 Thomas Abraham 提交于
Add Samsung Exynos5250 SoC specific data to enable pinctrl support for all platforms based on Exynos5250. Signed-off-by: NThomas Abraham <thomas.abraham@linaro.org> Acked-by: NLinus Walleij <linus.walleij@linaro.org> Reviewed-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
- 19 11月, 2012 1 次提交
-
-
由 Tomasz Figa 提交于
This patch extends the driver with any necessary SoC-specific definitions to support EXYNOS4X12 SoCs. Signed-off-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com> Acked-by: NThomas Abraham <thomas.abraham@linaro.org> Acked-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
- 12 11月, 2012 1 次提交
-
-
由 Axel Lin 提交于
The of_device_id table is supposed to be zero-terminated. Signed-off-by: NAxel Lin <axel.lin@ingics.com> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
- 15 10月, 2012 5 次提交
-
-
由 Tomasz Figa 提交于
Pins used as wake-up interrupts need to be configured as EINTs. This patch adds the required configuration code to exynos_wkup_irq_set_type, to set the pin as EINT when its interrupt trigger type is configured. Signed-off-by: NTomasz Figa <t.figa@samsung.com> Reviewed-by: NKyungmin Park <kyungmin.park@samsung.com> Acked-by: NThomas Abraham <thomas.abraham@linaro.org> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
由 Tomasz Figa 提交于
This patch reworks wake-up interrupt handling in pinctrl-exynos driver, so each pin bank, which provides wake-up interrupts, has its own IRQ domain. Information about whether given pin bank provides wake-up interrupts, how many and whether they are separate or muxed are parsed from device tree. It gives following advantages: - interrupts can be specified in device tree in a more readable way, e.g. : device { /* ... */ interrupt-parent = <&gpx2>; interrupts = <4 0>; /* ... */ }; - the amount and layout of interrupts is not hardcoded in the code anymore, but defined in SoC-specific structure - bank and pin of each wake-up interrupt can be easily identified, to allow operations, such as setting the pin to EINT function, from irq_set_type() callback Signed-off-by: NTomasz Figa <t.figa@samsung.com> Reviewed-by: NKyungmin Park <kyungmin.park@samsung.com> Acked-by: NThomas Abraham <thomas.abraham@linaro.org> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
由 Tomasz Figa 提交于
Instead of registering one IRQ domain for all pin banks of a pin controller, this patch implements registration of per-bank domains. At a cost of a little memory overhead (~2.5KiB for all GPIO interrupts of Exynos4x12) it simplifies driver code and device tree sources, because GPIO interrupts can be now specified per banks. Example: device { /* ... */ interrupt-parent = <&gpa1>; interrupts = <3 0>; /* ... */ }; Signed-off-by: NTomasz Figa <t.figa@samsung.com> Reviewed-by: NKyungmin Park <kyungmin.park@samsung.com> Acked-by: NThomas Abraham <thomas.abraham@linaro.org> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
由 Tomasz Figa 提交于
Some SoCs, like Exynos4x12, have non-sequential layout of EINT control registers and so current way of calculating register addresses does not work correctly for them. This patch adds eint_offset field to samsung_pin_bank struct and modifies the driver to use it instead of calculating the offsets from bank index. Signed-off-by: NTomasz Figa <t.figa@samsung.com> Reviewed-by: NKyungmin Park <kyungmin.park@samsung.com> Acked-by: NThomas Abraham <thomas.abraham@linaro.org> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
由 Tomasz Figa 提交于
This patch modifies the pinctrl-samsung driver to assign numbers to pins dynamically instead of static enumerations. Thanks to this change the amount of code requried to support a SoC can be greatly reduced and the code made more readable. Signed-off-by: NTomasz Figa <t.figa@samsung.com> Reviewed-by: NKyungmin Park <kyungmin.park@samsung.com> Acked-by: NThomas Abraham <thomas.abraham@linaro.org> Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
-
- 21 9月, 2012 6 次提交
-
-
由 Tomasz Figa 提交于
Because of a typo, incorrect field of a structure was being checked. This patch fixes the check to use correct field. Signed-off-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Tomasz Figa 提交于
Current way of finding the wakeup-eint node scans the whole device tree not only children of the pinctrl node, so it might detect a wakeup-eint node of another pinctrl device. This patch limits the scope of looking for nodes only to subnodes of the pinctrl node. Signed-off-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com> Acked-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Tomasz Figa 提交于
The exynos_irq_demux_eint utility function is used in chained IRQ handler for EINT16-31 to handle multiplexed interrupts. Inlining it should improve the performance a bit. Signed-off-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com> Acked-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Tomasz Figa 提交于
A bit in EINTxx_PEND register is set regardless of interrupt mask, which causes spurious interrupts. To avoid them, the read value of pending register must be masked with current interrupt mask manually. Signed-off-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com> Acked-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Tomasz Figa 提交于
To mask GPIO/wakeup IRQ, the corresponding bit in mask register has to be set. Signed-off-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com> Acked-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
由 Tomasz Figa 提交于
Pins used as GPIO interrupts need to be configured as EINTs. This patch adds the required configuration code to exynos_gpio_irq_set_type, to set the pin as EINT when its interrupt trigger is configured. Signed-off-by: NTomasz Figa <t.figa@samsung.com> Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com> Acked-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-
- 07 9月, 2012 1 次提交
-
-
由 Thomas Abraham 提交于
Add information about the Exynos4210 pin banks and driver data which is used by the Samsung pinctrl driver. In addition to this, the support for external gpio and wakeup interrupt support is included and hooked up with the Samsung pinctrl driver. Signed-off-by: NThomas Abraham <thomas.abraham@linaro.org> Reviewed-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
-