1. 03 12月, 2013 1 次提交
  2. 16 10月, 2013 1 次提交
  3. 28 8月, 2013 1 次提交
  4. 23 8月, 2013 1 次提交
  5. 16 8月, 2013 1 次提交
    • L
      pinctrl: add includes and ifdefs for non-DT builds · 0d74d4a1
      Linus Walleij 提交于
      Commit e81c8f18
      "pinctrl: pinconf-generic: add generic APIs for mapping pinctrl node"
      Added function prototypes with implicit dependencies
      on other header files causing build warnings like this:
      
      In file included from
      arch/arm/mach-ux500/board-mop500-pins.c:12:0:
      include/linux/pinctrl/pinconf-generic.h:142:3:
      warning: 'struct device_node' declared inside parameter list [enabled
      by default]
         unsigned *reserved_maps, unsigned *num_maps);
         ^
      include/linux/pinctrl/pinconf-generic.h:142:3:
      warning: its scope is only this definition or declaration, which is
      probably not what you want [enabled by default]
      include/linux/pinctrl/pinconf-generic.h:142:3:
      warning: 'struct pinctrl_dev' declared inside parameter list [enabled
      by default]
      include/linux/pinctrl/pinconf-generic.h:145:3:
      warning: 'struct device_node' declared inside parameter list [enabled
      by default]
         unsigned *num_maps);
         ^
      Let's just add ifdefs for non-DT systems (the actual code is
      already ifdefed) and #include <linux/device.h> to get the
      most important structs and forward-declare the pinctrl
      core structs.
      Reported-by: NOlof Johansson <olof@lixom.net>
      Cc: Laxman Dewangan <ldewangan@nvidia.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      0d74d4a1
  6. 15 8月, 2013 1 次提交
  7. 25 6月, 2013 3 次提交
  8. 18 6月, 2013 5 次提交
  9. 16 6月, 2013 3 次提交
  10. 14 5月, 2013 1 次提交
  11. 19 4月, 2013 1 次提交
    • L
      pinctrl/pinconfig: add debug interface · f07512e6
      Laurent Meunier 提交于
      This update adds a debugfs interface to modify a pin configuration
      for a given state in the pinctrl map. This allows to modify the
      configuration for a non-active state, typically sleep state.
      This configuration is not applied right away, but only when the state
      will be entered.
      
      This solution is mandated for us by HW validation: in order
      to test and verify several pin configurations during sleep without
      recompiling the software.
      
      Change log in this patch set;
      Take into account latest feedback from Stephen Warren:
      - stale comments update
      - improved code efficiency and readibility
      - limit size of global variable pinconf_dbg_conf
      - remove req_type as it can easily be added later when
      add/delete requests support is implemented
      Signed-off-by: NLaurent Meunier <laurent.meunier@st.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      f07512e6
  12. 07 3月, 2013 1 次提交
  13. 15 2月, 2013 1 次提交
  14. 23 1月, 2013 1 次提交
    • L
      drivers/pinctrl: grab default handles from device core · ab78029e
      Linus Walleij 提交于
      This makes the device core auto-grab the pinctrl handle and set
      the "default" (PINCTRL_STATE_DEFAULT) state for every device
      that is present in the device model right before probe. This will
      account for the lion's share of embedded silicon devcies.
      
      A modification of the semantics for pinctrl_get() is also done:
      previously if the pinctrl handle for a certain device was already
      taken, the pinctrl core would return an error. Now, since the
      core may have already default-grabbed the handle and set its
      state to "default", if the handle was already taken, this will
      be disregarded and the located, previously instanitated handle
      will be returned to the caller.
      
      This way all code in drivers explicitly requesting their pinctrl
      handlers will still be functional, and drivers that want to
      explicitly retrieve and switch their handles can still do that.
      But if the desired functionality is just boilerplate of this
      type in the probe() function:
      
      struct pinctrl  *p;
      
      p = devm_pinctrl_get_select_default(&dev);
      if (IS_ERR(p)) {
         if (PTR_ERR(p) == -EPROBE_DEFER)
              return -EPROBE_DEFER;
              dev_warn(&dev, "no pinctrl handle\n");
      }
      
      The discussion began with the addition of such boilerplate
      to the omap4 keypad driver:
      http://marc.info/?l=linux-input&m=135091157719300&w=2
      
      A previous approach using notifiers was discussed:
      http://marc.info/?l=linux-kernel&m=135263661110528&w=2
      This failed because it could not handle deferred probes.
      
      This patch alone does not solve the entire dilemma faced:
      whether code should be distributed into the drivers or
      if it should be centralized to e.g. a PM domain. But it
      solves the immediate issue of the addition of boilerplate
      to a lot of drivers that just want to grab the default
      state. As mentioned, they can later explicitly retrieve
      the handle and set different states, and this could as
      well be done by e.g. PM domains as it is only related
      to a certain struct device * pointer.
      
      ChangeLog v4->v5 (Stephen):
      - Simplified the devicecore grab code.
      - Deleted a piece of documentation recommending that pins
        be mapped to a device rather than hogged.
      ChangeLog v3->v4 (Linus):
      - Drop overzealous NULL checks.
      - Move kref initialization to pinctrl_create().
      - Seeking Tested-by from Stephen Warren so we do not disturb
        the Tegra platform.
      - Seeking ACK on this from Greg (and others who like it) so I
        can merge it through the pinctrl subsystem.
      ChangeLog v2->v3 (Linus):
      - Abstain from using IS_ERR_OR_NULL() in the driver core,
        Russell recently sent a patch to remove it. Handle the
        NULL case explicitly even though it's a bogus case.
      - Make sure we handle probe deferral correctly in the device
        core file. devm_kfree() the container on error so we don't
        waste memory for devices without pinctrl handles.
      - Introduce reference counting into the pinctrl core using
        <linux/kref.h> so that we don't release pinctrl handles
        that have been obtained for two or more places.
      ChangeLog v1->v2 (Linus):
      - Only store a pointer in the device struct, and only allocate
        this if it's really used by the device.
      
      Cc: Felipe Balbi <balbi@ti.com>
      Cc: Benoit Cousson <b-cousson@ti.com>
      Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
      Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Cc: Mitch Bradley <wmb@firmworks.com>
      Cc: Ulf Hansson <ulf.hansson@linaro.org>
      Cc: Rafael J. Wysocki <rjw@sisk.pl>
      Cc: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
      Cc: Rickard Andersson <rickard.andersson@stericsson.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Reviewed-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      [swarren: fixed and simplified error-handling in pinctrl_bind_pins(), to
      correctly handle deferred probe. Removed admonition from docs not to use
      pinctrl hogs for devices]
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      ab78029e
  15. 21 1月, 2013 2 次提交
  16. 18 1月, 2013 1 次提交
  17. 12 1月, 2013 1 次提交
  18. 21 11月, 2012 3 次提交
  19. 12 11月, 2012 3 次提交
    • L
      gpiolib: separation of pin concerns · 1e63d7b9
      Linus Walleij 提交于
      The fact that of_gpiochip_add_pin_range() and
      gpiochip_add_pin_range() share too much code is fragile and
      will invariably mean that bugs need to be fixed in two places
      instead of one.
      
      So separate the concerns of gpiolib.c and gpiolib-of.c and
      have the latter call the former as back-end. This is necessary
      also when going forward with other device descriptions such
      as ACPI.
      
      This is done by:
      
      - Adding a return code to gpiochip_add_pin_range() so we can
        reliably check whether this succeeds.
      
      - Get rid of the custom of_pinctrl_add_gpio_range() from
        pinctrl. Instead create of_pinctrl_get() to just retrive the
        pin controller per se from an OF node. This composite
        function was just begging to be deleted, it was way to
        purpose-specific.
      
      - Use pinctrl_dev_get_name() to get the name of the retrieved
        pin controller and use that to call back into the generic
        gpiochip_add_pin_range().
      
      Now the pin range is only allocated and tied to a pin
      controller from the core implementation in gpiolib.c.
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      1e63d7b9
    • S
      gpiolib: provide provision to register pin ranges · f23f1516
      Shiraz Hashim 提交于
      pinctrl subsystem needs gpio chip base to prepare set of gpio
      pin ranges, which a given pinctrl driver can handle. This is
      important to handle pinctrl gpio request calls in order to
      program a given pin properly for gpio operation.
      
      As gpio base is allocated dynamically during gpiochip
      registration, presently there exists no clean way to pass this
      information to the pinctrl subsystem.
      
      After few discussions from [1], it was concluded that may be
      gpio controller reporting the pin range it supports, is a
      better way than pinctrl subsystem directly registering it.
      
      [1] http://comments.gmane.org/gmane.linux.ports.arm.kernel/184816
      
      Cc: Grant Likely <grant.likely@secretlab.ca>
      Signed-off-by: NViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: NShiraz Hashim <shiraz.hashim@st.com>
      [Edited documentation a bit]
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      f23f1516
    • V
      Revert "pinctrl: remove pinctrl_remove_gpio_range" · 7e10ee68
      Viresh Kumar 提交于
      This reverts earlier commit which removed
      pinctrl_remove_gpio_range(), because at that time there
      weren't any more users of that routine. It was removed as the
      removal of ranges was done in unregister of pinctrl.
      
      But as we are now registering stuff from gpiolib, we may
      remove and insert a gpio module multiple times. So, we
      need this routine again.
      Signed-off-by: NViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      7e10ee68
  20. 03 10月, 2012 1 次提交
  21. 01 10月, 2012 1 次提交
  22. 03 9月, 2012 1 次提交
  23. 17 8月, 2012 1 次提交
  24. 04 7月, 2012 2 次提交
  25. 11 5月, 2012 1 次提交
  26. 10 5月, 2012 1 次提交