1. 19 4月, 2012 2 次提交
    • S
      ARM: tegra: Switch to new pinctrl driver · f30d12b3
      Stephen Warren 提交于
      * Rename old pinmux and new pinctrl platform driver and DT match table
        entries, so the new driver gets instantiated.
      * Re-write board-pinmux.c, so that it uses pinctrl APIs to configura the
        pinmux.
      * Re-write board-*-pinmux.c so that the pinmux configuration tables are
        in pinctrl format.
      
      Ventana's pin mux table needed some edits on top of the basic format
      conversion, since some mux options that were previously marked as
      reserved are now valid in the new pinctrl driver. Attempting to use the
      old reserved names will result in a failure. Specifically, groups lpw0,
      lpw2, lsc1, lsck, and lsda were changed from function rsvd4 to displaya,
      and group pta was changed from function rsvd2 to hdmi.
      
      All boards' pin mux tables needed some edits on top of the based format
      conversion, since function i2c was split into i2c1 (first general I2C
      controller) and i2cp (power I2C controller) to better align function
      definitions with HW blocks.
      
      Due to the split of mux tables into pure mux and pull/tristate tables,
      many entries in the separate Seaboard/Ventana tables could be merged
      into the common table, since the entries differed only in the portion
      in one of the tables, not both.
      
      Most pin groups allow configuration of mux, tri-state, and pull. However,
      some don't allow pull configuration, which is instead configured by new
      groups that only allow pull configuration. This is a reflection of the
      true HW capabilities, which weren't fully represented by the old pinmux
      driver. This required adding new pull table entries for those new groups,
      and setting many other entries' pull configuration to
      TEGRA_PINCONFIG_DONT_SET.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Acked-by: NLinus Walleij <linus.walleij@linaro.org>
      Acked-by: NOlof Johansson <olof@lixom.net>
      f30d12b3
    • S
      gpio: tegra: Hide tegra_gpio_enable/disable() · 3e215d0a
      Stephen Warren 提交于
      Recent pinctrl discussions concluded that gpiolib APIs should in fact do
      whatever is required to mux a GPIO onto pins, by calling pinctrl APIs if
      required. This change implements this for the Tegra GPIO driver, and removes
      calls to the Tegra-specific APIs from drivers and board files.
      
      Cc: Chris Ball <cjb@laptop.org>
      Cc: linux-mmc@vger.kernel.org
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Acked-by: Chris Ball <cjb@laptop.org> # for sdhci-tegra.c
      Acked-by: NLinus Walleij <linus.walleij@linaro.org>
      Acked-by: NOlof Johansson <olof@lixom.net>
      3e215d0a
  2. 21 12月, 2011 1 次提交
  3. 20 12月, 2011 2 次提交
  4. 18 12月, 2011 1 次提交
  5. 10 11月, 2011 1 次提交
    • S
      arm/tegra: Don't create duplicate gpio and pinmux devices · 4b91b6fb
      Stephen Warren 提交于
      *_pinmux_init() register the GPIO and pinmux devices so that they're ready
      before any other device needs them.
      
      *_pinmux_init() are also called by board-dt.c in order to set up the GPIO
      and pinmux configurations. In this case, if we register the devices, they
      end up being probed once due to this registration, and a second time due
      to a device-tree node (or vice-versa). The second probe fails since the
      memory regions are already requested. Besides, we don't actually want the
      duplicated devices.
      
      To avoid this duplicate registration, modify *_pinmux_init() to check
      whether it's running on a DT machine. If not, register the pinmux devices.
      If so, don't register them.
      
      Finally, modify board-dt.c to call the *_pinmux_init() after all devices have
      been instantiated from device-tree. This allows the GPIO and pinmux devices
      to be instantiated and initialized before calling functions to configure the
      hardware.
      
      This has one disadvantage: The pinmux and GPIO initialization now happens
      after /all/ devices are instantiated, rather than after just gpio and
      pinmux but before anything else. So the correct HW configuration is not
      in place when e.g. the SD/MMC device is probed. Long-term, this should be
      solved by doing both:
      
      a) Initializing the HW state from DT nodes during GPIO and pinmux device
         probe.
      b) Using the deferred driver probe mechanism, so that drivers can defer
         their probe until after the gpio and pinmux drivers have probed.
      
      v2: s/int is_dt/bool is_dt/
      v3: Use of_machine_is_compatible inside *_pinmux_init() rather than passing
      an explicit parameter into the function from outside.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      4b91b6fb
  6. 12 10月, 2011 1 次提交
    • S
      arm/tegra: Prep boards for gpio/pinmux conversion to pdevs · 940dd96f
      Stephen Warren 提交于
      The Tegra GPIO driver will be converted from static registration via
      postcore_initcall() to be a platform device later in this patch series.
      A new Tegra pinmux platform device will also be added.
      
      Prepare for this by modifying all boards to register the appropriate
      platform devices before-hand, so that when the drivers are converted,
      those devices will be probed, and git bisectability will be maintained.
      
      v2: Add resource definitions for GPIO and pinmux
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      940dd96f
  7. 08 8月, 2011 1 次提交
  8. 19 7月, 2011 1 次提交
  9. 13 7月, 2011 2 次提交
  10. 08 3月, 2011 1 次提交
  11. 11 2月, 2011 1 次提交
  12. 06 8月, 2010 1 次提交