1. 09 May, 2014 8 commits
  2. 05 May, 2014 2 commits
  3. 04 May, 2014 12 commits
  4. 02 May, 2014 1 commit
  5. 24 Apr, 2014 1 commit
  6. 23 Apr, 2014 9 commits
  7. 22 Apr, 2014 7 commits
    • Alexander Stein's avatar
      pinctrl/at91: Fix mask creation in at91_gpio_dbg_show · 47f22716
      Alexander Stein authored
      pin_to_mask expects a bank pin number. So do not add the chip base.
      
      Without that patch cat /sys/kernel/debug/gpio looks like that:
      GPIOs 0-31, platform/fffff200.gpio, fffff200.gpio:
      [spi32766.0] GPIOfffff200.gpio5: [gpio] set
      [ads7846_pendown] GPIOfffff200.gpio15: [gpio] set
      [ohci_vbus] GPIOfffff200.gpio21: [gpio] set
      [ohci_vbus] GPIOfffff200.gpio24: [gpio] set
      [button1] GPIOfffff200.gpio28: [gpio] clear
      [button2] GPIOfffff200.gpio29: [gpio] clear
      
      GPIOs 32-63, platform/fffff400.gpio, fffff400.gpio:
      [sda] GPIOfffff400.gpio4: [periph A]
      [scl] GPIOfffff400.gpio5: [periph A]
      [spi32766.3] GPIOfffff400.gpio11: [periph A]
      [error] GPIOfffff400.gpio22: [periph A]
      [run] GPIOfffff400.gpio23: [periph A]
      
      GPIOs 64-95, platform/fffff600.gpio, fffff600.gpio:
      [reset_pin] GPIOfffff600.gpio29: [periph A]
      
      GPIOs 96-127, platform/fffff800.gpio, fffff800.gpio:
      [led1] GPIOfffff800.gpio5: [periph A]
      [led2] GPIOfffff800.gpio6: [periph A]
      [led3] GPIOfffff800.gpio7: [periph A]
      [led4] GPIOfffff800.gpio8: [periph A]
      
      GPIOs 128-159, platform/fffffa00.gpio, fffffa00.gpio:
      [button3] GPIOfffffa00.gpio10: [periph A]
      [button4] GPIOfffffa00.gpio12: [periph A]
      
      Note that every bank despite bank 0 only shows "periph A" which are
      obviously used as GPIOs.
      Signed-off-by: default avatarAlexander Stein <alexanders83@web.de>
      Acked-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      Acked-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      47f22716
    • Alexander Stein's avatar
      pinctrl/at91: convert driver to use gpiolib irqchip · 80cc3732
      Alexander Stein authored
      This converts the AT91 pin control driver to register its
      chained irq handler and irqchip using the helpers in the
      gpiolib core.
      Signed-off-by: default avatarAlexander Stein <alexanders83@web.de>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      80cc3732
    • Stephen Warren's avatar
      pinctrl: tegra: add missing kerneldoc · 443ac953
      Stephen Warren authored
      The kerneldoc for struct tegra_pingroup didn't describe all of the fields
      in the struct. Add some extra kerneldoc to fix that.
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      443ac953
    • Stephen Warren's avatar
      pinctrl: tegra: print better error messages · 36e80dca
      Stephen Warren authored
      When an attempt is made to configure an unsupported option on a pin,
      print the DT property name of that option, so it's easier to debug
      what the problem is.
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      Acked-by: default avatarLaxman Dewangan <ldewangan@nvidia.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      36e80dca
    • Stephen Warren's avatar
      pinctrl: tegra: reduce size of data table fields · 0298fc3e
      Stephen Warren authored
      The range of npins and function ID values is small enough to fit into a
      u8. Use this type rather than unsigned to shrink the pinmux data tables.
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      Acked-by: default avatarLaxman Dewangan <ldewangan@nvidia.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      0298fc3e
    • Stephen Warren's avatar
      pinctrl: tegra: remove fsafe from data tables · 6240d691
      Stephen Warren authored
      The fsafe value in the pingroup data tables is only used to implement
      tegra_pinctrl_disable(). The only reason this function is called is when
      dynamically switching between pinmux states, i.e. when disabling the old
      state before programming the new state. It's simpler to have the new
      target state define the expected value of each pin (and all current DTs
      do that). This also gives more flexibility, since it allows individual
      boards explicit control over the "inactive" mux function for each pin,
      rather than requiring it to be an SoC-specific value. Assuming this, we
      can get rid of the fsafe value from the driver completely, thus saving
      some more space in the driver tables.
      
      While re-writing the content of tegra124_pingroups[], fix the indentation
      to use a TAB instead of spaces.
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      Acked-by: default avatarLaxman Dewangan <ldewangan@nvidia.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      6240d691
    • Stephen Warren's avatar
      pinctrl: tegra: remove redundant data table fields · e53b7974
      Stephen Warren authored
      Any SoC which supports the einput, odrain, lock, ioreset, or rcv_sel
      options has the relevant HW register fields in the same register as the
      mux function selection. Similarly, the drvtype option is always in the
      drive register, if it is supported at all. Hence, we don't need to have
      struct *_reg fields in the pin group table to define which register and
      bank to use for those options. Delete this to save space in the driver's
      data tables.
      
      However, many of those options are not supported on all SoCs, or not
      supported on some pingroups. We need a way to detect when they are
      supported. Previously, this was indicated by setting the struct *_reg
      field to -1. With the struct *_reg fields removed, we use the struct
      *_bit fields for this purpose instead. The struct *_bit fields need to
      be expanded from 5 to 6 bits in order to store a value outside the valid
      HW bit range of 0..31.
      
      Even without removing the struct *_reg fields, we still need to add code
      to validate the struct *_bit fields, since some struct *_bit fields were
      already being set to -1, without an option-specific struct *_reg field to
      "guard" them. In other words, before this change, the pinmux driver might
      allow some unsupported options to be written to HW.
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      e53b7974