1. 22 10月, 2010 1 次提交
    • C
      [ARM] tegra: pinmux: add safe values, move tegra2, add suspend · c5f04b8d
      Colin Cross 提交于
      - the reset values for some pin groups in the tegra pin mux can result in
      functional errors due to conflicting with actively-configured pin groups
      muxing from the same controller. this change adds a known safe, non-
      conflicting mux for every pin group, which can be used on platforms
      where the pin group is not routed to any peripheral
      
      - also add each pin group's I/O voltage rail, to enable platform code to
      map from the pin groups used by each interface to the regulators used
      for dynamic voltage control
      
      - add routines to individually configure the tristate, pin mux and pull-
      ups for a pingroup_config array, so that it is possible to program
      individual values at run-time without modifying other values.
      this allows driver power-management code to reprogram individual
      interfaces into lower power states during idle / suspend, or to
      reprogram the pin mux to support multiple physical busses per
      internal controller (e.g., sharing a single I2C or SPI controller
      across multiple pin groups)
      
      - move chip-specific data like pingroups and drive-pingroups
      out of the common code and into chip-specific code
      
      - fix debug output for group with no pullups
      
      - add a TEGRA_MUX_SAFE function.  Setting a pingroup to TEGRA_MUX_SAFE
      will automatically select a mux setting that is guaranteed not to
      conflict with any of the hardware blocks.
      Signed-off-by: NGary King <gking@nvidia.com>
      c5f04b8d
  2. 06 8月, 2010 1 次提交