1. 25 7月, 2018 1 次提交
    • K
      pinctrl: samsung: Document hidden requirement about one external wakeup · 615a673c
      Krzysztof Kozlowski 提交于
      ARMv7 hardware (S5Pv210 and Exynos SoCs) provides only 32 external
      interrupts which can wakeup device from deep sleep modes.  On S5Pv210
      these are gph0-gph3.  On all ARMv7 Exynos designs these are gpx0-gpx3.
      There is only one 32-bit register for controlling the external wakeup
      interrupt mask (masking and unmasking waking capability of these
      interrupts).
      
      This lead to implementation in pinctrl driver and machine code which was
      using static memory for storing the mask value and not caring about
      multiple devices of pin controller... because only one pin controller
      device will be handling this.
      
      Since each pin controller node in Device Tree maps onto one device, this
      corresponds to hidden assumption in parsing the Device Tree: external
      wakeup interrupts can be defined only once.  Make this assumption an
      explicit requirement.
      
      ARMv8 Exynos5433 and Exynos7 bring additional 32 external wakeup
      interrupts (up to 64 total, banks gpa0-gpa3 and gpf1-gpf5) and another
      32-bit wide register for controlling them.  Existing code does not
      support it but anyway these additional interrupts will be belonging to
      the same pin controller device/node.
      Signed-off-by: NKrzysztof Kozlowski <krzk@kernel.org>
      Cc: Tomasz Figa <tomasz.figa@gmail.com>
      Cc: Sylwester Nawrocki <snawrocki@kernel.org>
      Acked-by: NTomasz Figa <tomasz.figa@gmail.com>
      Tested-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      615a673c
  2. 26 1月, 2017 1 次提交
  3. 15 11月, 2016 1 次提交
  4. 16 9月, 2016 1 次提交
  5. 16 11月, 2015 1 次提交
  6. 19 1月, 2015 1 次提交
  7. 14 1月, 2015 2 次提交
  8. 09 11月, 2014 2 次提交
  9. 11 7月, 2014 2 次提交
    • T
      pinctrl: samsung: Allow pin value to be initialized using pinfunc · 2700bc01
      Tomasz Figa 提交于
      This patch extends the range of settings configurable via pinfunc API
      to cover pin value as well. This allows configuration of default values
      of pins, which is useful for pins that are not supposed to be used by
      any dedicated driver, but need certain board-specific setting.
      Signed-off-by: NTomasz Figa <t.figa@samsung.com>
      Acked-by: NKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      2700bc01
    • T
      pinctrl: samsung: Allow grouping multiple pinmux/pinconf nodes · 9a2c1c3b
      Tomasz Figa 提交于
      One of remaining limitations of current pinctrl-samsung driver was
      the inability to parse multiple pinmux/pinconf group nodes grouped
      inside a single device tree node. It made defining groups of pins for
      single purpose, but with different parameters very inconvenient.
      
      This patch implements Tegra-like support for grouping multiple pinctrl
      groups inside one device tree node, by completely changing the way
      pin groups and functions are parsed from device tree. The code creating
      pinctrl maps from DT nodes has been borrowed from pinctrl-tegra, while
      the initial creation of groups and functions has been completely
      rewritten with following assumptions:
       - each group consists of just one pin and does not depend on data
         from device tree,
       - each function is represented by a device tree child node of the
         pin controller, which in turn can contain multiple child nodes
         for pins that need to have different configuration values.
      
      Device Tree bindings are fully backwards compatible. New functionality
      can be used by defining a new pinctrl group consisting of several child
      nodes, as on following example:
      
      	sd4_bus8: sd4-bus-width8 {
      		part-1 {
      			samsung,pins = "gpk0-3", "gpk0-4",
      					"gpk0-5", "gpk0-6";
      			samsung,pin-function = <3>;
      			samsung,pin-pud = <3>;
      			samsung,pin-drv = <3>;
      		};
      		part-2 {
      			samsung,pins = "gpk1-3", "gpk1-4",
      					"gpk1-5", "gpk1-6";
      			samsung,pin-function = <4>;
      			samsung,pin-pud = <4>;
      			samsung,pin-drv = <3>;
      		};
      	};
      
      Tested on Exynos4210-Trats board and a custom Exynos4212-based one.
      Signed-off-by: NTomasz Figa <t.figa@samsung.com>
      Acked-by: NKyungmin Park <kyungmin.park@samsung.com>
      Reviewed-by: NStephen Warren <swarren@nvidia.com>
      Cc: devicetree@vger.kernel.org
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      9a2c1c3b
  10. 11 2月, 2014 1 次提交
  11. 28 8月, 2013 1 次提交
  12. 19 6月, 2013 1 次提交
  13. 18 6月, 2013 1 次提交
  14. 20 5月, 2013 1 次提交
    • H
      pinctrl: Add pinctrl-s3c24xx driver · af99a750
      Heiko Stuebner 提交于
      The s3c24xx pins follow a similar pattern as the other Samsung SoCs and
      can therefore reuse the already introduced infrastructure.
      
      The s3c24xx SoCs have one design oddity in that the first 4 external
      interrupts do not reside in the eint pending register but in the main
      interrupt controller instead. We solve this by forwarding the external
      interrupt from the main controller into the irq domain of the pin bank.
      The masking/acking of these interrupts is handled in the same way.
      
      Furthermore the S3C2412/2413 SoCs contain another oddity in that they
      keep the same 4 eints in the main interrupt controller and eintpend
      register and requiring ack operations to happen in both. This is solved
      by using different compatible properties for the wakeup eint node which
      set a property accordingly.
      Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
      Reviewed-by: NTomasz Figa <t.figa@samsung.com>
      Reviewed-by: NSylwester Nawrocki <s.nawrocki@samsung.com>
      Acked-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      af99a750
  15. 09 4月, 2013 1 次提交
  16. 29 1月, 2013 1 次提交
  17. 19 11月, 2012 1 次提交
  18. 15 10月, 2012 1 次提交
  19. 07 9月, 2012 1 次提交
    • T
      pinctrl: add samsung pinctrl and gpiolib driver · 30574f0d
      Thomas Abraham 提交于
      Add a new device tree enabled pinctrl and gpiolib driver for Samsung
      SoC's. This driver provides a common and extensible framework for all
      Samsung SoC's to interface with the pinctrl and gpiolib subsystems. This
      driver supports only device tree based instantiation and hence can be
      used only on those Samsung platforms that have device tree enabled.
      
      This driver is split into two parts: the pinctrl interface and the gpiolib
      interface. The pinctrl interface registers pinctrl devices with the pinctrl
      subsystem and gpiolib interface registers gpio chips with the gpiolib
      subsystem. The information about the pins, pin groups, pin functions and
      gpio chips, which are SoC specific, are parsed from device tree node.
      Signed-off-by: NThomas Abraham <thomas.abraham@linaro.org>
      Reviewed-by: NLinus Walleij <linus.walleij@linaro.org>
      Acked-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      30574f0d