1. 11 May, 2012 9 commits
    • Linus Walleij's avatar
      pinctrl: add sleep state definition · 65697e6b
      Linus Walleij authored
      There is an IDLE definition in the pinctrl framework, but for
      ux500 SLEEP is more apropriate.
      
      I've added some comments on the semantics of the common states
      so as to avoid misunderstandings.
      
      ChangeLog v1->v2:
      - Fixed terminology "on"->"into".
      Acked-by: default avatarStephen Warren <swarren@wwwdotorg.org>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      65697e6b
    • Linus Walleij's avatar
      pinctrl/nomadik: implement pin configuration · d41af627
      Linus Walleij authored
      This implements the pin configuration interface for the
      Nomadik pin controller.
      
      As part of the exercise we add a bit in the pin_cfg_t for
      the Nomadik pinctrl driver that indicates if the pin should
      be forced into GPIO mode. This is not done to go behind the
      back of the GPIO subsystem, but to ensure that default modes
      can be set by hogs on boot and system suspend/resume states.
      It was used implicitly by the old code defining all config
      settings and modes in a single config word but we now have
      a split between pinmux and pinconf leading to the need to
      have this.
      
      We also add a bit for explicitly setting sleepmode of the
      pin. This was previously handled by custom calls with the
      _sleep() suffix, but we now have one single interface into
      the configuration so we replace this with a bit indicating
      that the pin shall be configured into sleep mode.
      
      Some of the configuration can be refactored later to use
      less custom fields on the pin_cfg_t but we are currently
      leaving the old function calls in place so we stay
      compatible.
      
      ChangeLog v1->v2:
      - Drop a hunk changing pinmuxing for GPIO and move it
        over to the preceding pinmux patch.
      Acked-by: default avatarStephen Warren <swarren@wwwdotorg.org>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      d41af627
    • Linus Walleij's avatar
      pinctrl/nomadik: implement pin multiplexing · dbfe8ca2
      Linus Walleij authored
      Implements basic pinmux for the Nomadik pin controller.
      
      The plan is to split the existing singular pin config interface
      nmk_config_pin(), nmk_config_pins(), that will configure muxing
      and other settings at the same time, into two interfaces
      by splitting the code in pinmux and pinctrl and eventually
      deleting the old interface and its helper functions when all
      users are gone.
      
      nmk_gpio_set_mode() and nmk_gpio_get_mode() are two older
      interfaces for just configuring muxing/altfunctions that
      will also be replaced in the end.
      
      We take some extra care to handle the glitch-avoidance here,
      but it is simpler now since there is only one altsetting per
      pingroup so we know immediately if we need to avoid altfunc
      C glitches for a certain group.
      
      As part of the makeover implement the .request() and .free()
      calls on the GPIO chips and have them call back into the
      pinctrl layer to reserve GPIOs.
      
      ChangeLog v1->v2:
      - Rebased on pinctrl-mergebase-20120418 so we get the latest
        driver infrastructure where function count is done by a fixed
        value and we can drop a few range checks since this is now
        handled by the core.
      - Include a GPIO muxing hunk erroneously part of the pin config
        patch.
      Acked-by: default avatarStephen Warren <swarren@wwwdotorg.org>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      dbfe8ca2
    • Linus Walleij's avatar
      pinctrl/nomadik: reuse GPIO debug function for pins · 24cbdd75
      Linus Walleij authored
      Since all pins we can control are GPIOs, match a GPIO range to
      each pin in the debug function and call into the GPIO debug
      print function to have the per-pin information.
      Acked-by: default avatarStephen Warren <swarren@wwwdotorg.org>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      24cbdd75
    • Linus Walleij's avatar
      pinctrl/nomadik: break out single GPIO debug function · 6f4350a6
      Linus Walleij authored
      Break out the code displaying the status of a single pin so we
      can use the same code in the pinctrl debug function.
      Acked-by: default avatarStephen Warren <swarren@wwwdotorg.org>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      6f4350a6
    • Linus Walleij's avatar
      pinctrl/nomadik: basic Nomadik pinctrl interface · e98ea774
      Linus Walleij authored
      This adds a scratch pin control interface to the Nomadik pinctrl
      driver, and defines the pins and groups in the DB8500 ASIC. We
      define GPIO ranges to cover the pins exposed. The DB8500 has
      more pins than this but we restrict the driver to the pins that
      can be controlled from the combined GPIO and pin control hardware
      to begin with.
      
      ChangeLog v1->v2:
      - Base on the latest pinctrl development from
        pinctrl-mergebase-20120418 so we can get rid of legacy
        group count mechanism. Also drop the range checks for group
        index, this is handled by the core now.
      Acked-by: default avatarStephen Warren <swarren@wwwdotorg.org>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      e98ea774
    • Arnd Bergmann's avatar
      pinctrl/nomadik: !CONFIG_OF build error · 072e82a1
      Arnd Bergmann authored
      a60b57ed "drivers/gpio: gpio-nomadik: Add support for irqdomains" broke
      building with CONFIG_OF_GPIO disabled.
      
      Without this patch, building nhk8815_defconfig results in:
      
      /home/arnd/linux-arm/drivers/gpio/gpio-nomadik.c: In function 'nmk_gpio_probe':
      /home/arnd/linux-arm/drivers/gpio/gpio-nomadik.c:1238:6: error: 'struct gpio_chip' has no member named 'of_node'
      make[3]: *** [drivers/gpio/gpio-nomadik.o] Error 1
      make[2]: *** [drivers/gpio] Error 2
      make[2]: *** Waiting for unfinished jobs....
      make[1]: *** [drivers] Error 2
      make[1]: *** Waiting for unfinished jobs....
      make: *** [sub-make] Error 2
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      072e82a1
    • Linus Walleij's avatar
      gpio: move the Nomadik GPIO driver to pinctrl · 1ae4e592
      Linus Walleij authored
      I'm moving this driver over to the pinctrl subsystem to convert
      the custom pin mux/config scheme over to use pinctrl.
      Acked-by: default avatarStephen Warren <swarren@wwwdotorg.org>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      1ae4e592
    • Linus Walleij's avatar
      Merge tag 'pinctrl-mergebase-20120418' into HEAD · b9e3b72d
      Linus Walleij authored
      Conflicts:
      	drivers/pinctrl/core.c
      b9e3b72d
  2. 24 Apr, 2012 8 commits
  3. 23 Apr, 2012 4 commits
  4. 21 Apr, 2012 19 commits