1. 09 10月, 2013 1 次提交
  2. 15 8月, 2013 1 次提交
  3. 07 8月, 2013 1 次提交
  4. 24 7月, 2013 3 次提交
  5. 12 6月, 2013 1 次提交
    • S
      regmap: Add regmap_field APIs · 67252287
      Srinivas Kandagatla 提交于
      It is common to access regmap registers at bit level, using
      regmap_update_bits or regmap_read functions, however the end user has to
      take care of a mask or shifting. This becomes overhead when such use
      cases are high. Having a common function to do this is much convenient
      and less error prone.
      
      The idea of regmap_field is simple, regmap_field gives a logical
      structure to bits of the regmap register, and the driver can use this
      logical entity without the knowledge of the bit positions and masks all
      over the code. This way code looks much neat and it need not handle the
      masks, shifts every time it access the those entities.
      
      With this new regmap_field_read/write apis the end user can setup a
      regmap field using regmap_field_init and use the return regmap_field to
      read write the register field without worrying about the masks or
      shifts.
      
      Also this apis will be useful for drivers which are based on regmaps,
      like some clocks or pinctrls which can work on the regmap_fields
      directly without having to worry about bit positions.
      Signed-off-by: NSrinivas Kandagatla <srinivas.kandagatla@st.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      67252287
  6. 12 5月, 2013 2 次提交
  7. 27 3月, 2013 1 次提交
  8. 15 2月, 2013 1 次提交
  9. 29 1月, 2013 2 次提交
  10. 05 1月, 2013 1 次提交
  11. 02 1月, 2013 1 次提交
    • M
      regmap: flat: Add flat cache type · 2ac902ce
      Mark Brown 提交于
      While for I2C and SPI devices the overhead of using rbtree for devices with
      only one block of registers is negligible the same isn't always going to
      be true for MMIO devices where the I/O costs are very much lower. Cater
      for these devices by adding a simple flat array type for them where the
      lookups are simple array accesses, taking us right back to the original
      ASoC cache implementation.
      
      Thanks to Magnus Damm for the discussion which prompted this.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      2ac902ce
  12. 21 11月, 2012 1 次提交
  13. 17 10月, 2012 1 次提交
  14. 15 10月, 2012 3 次提交
  15. 31 8月, 2012 1 次提交
  16. 08 8月, 2012 1 次提交
  17. 18 6月, 2012 1 次提交
    • K
      regmap: Add support for register indirect addressing. · 6863ca62
      Krystian Garbaciak 提交于
      Devices with register paging or indirectly accessed registers can configure
      register mapping to map those on virtual address range. During access to
      virtually mapped register range, indirect addressing is processed
      automatically, in following steps:
        1. selector for page or indirect register is updated (when needed);
        2. register in data window is accessed.
      
      Configuration should provide minimum and maximum register for virtual range,
      details of selector field for page selection, minimum and maximum register of
      data window for indirect access.
      
      Virtual range registers are managed by cache as well as direct access
      registers. In order to make indirect access more efficient, selector register
      should be declared as non-volatile, if possible.
      
      struct regmap_config is extended with the following:
      struct regmap_range_cfg	*ranges;
      unsigned int		n_ranges;
      
      [Also reordered debugfs init to later on since the cleanup code was
      conflicting with the new cleanup code for ranges anyway -- broonie]
      Signed-off-by: NKrystian Garbaciak <krystian.garbaciak@diasemi.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      6863ca62
  18. 13 6月, 2012 1 次提交
  19. 05 6月, 2012 1 次提交
  20. 03 6月, 2012 2 次提交
  21. 15 5月, 2012 1 次提交
  22. 14 5月, 2012 1 次提交
    • M
      regmap: Convert regmap_irq to use irq_domain · 4af8be67
      Mark Brown 提交于
      This gets us up to date with the recommended current kernel infrastructure
      and should transparently give us device tree interrupt bindings for any
      devices using the framework. If an explicit IRQ mapping is passed in then
      a legacy interrupt range is created, otherwise a simple linear mapping is
      used. Previously a mapping was mandatory so existing drivers should not
      be affected.
      
      A function regmap_irq_get_virq() is provided to allow drivers to map
      individual IRQs which should be used in preference to the existing
      regmap_irq_chip_get_base() which is only valid if a legacy IRQ range is
      provided.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      4af8be67
  23. 09 5月, 2012 1 次提交
  24. 01 5月, 2012 1 次提交
  25. 13 4月, 2012 5 次提交
  26. 10 4月, 2012 2 次提交
    • S
      regmap: implement register striding · f01ee60f
      Stephen Warren 提交于
      regmap_config.reg_stride is introduced. All extant register addresses
      are a multiple of this value. Users of serial-oriented regmap busses will
      typically set this to 1. Users of the MMIO regmap bus will typically set
      this based on the value size of their registers, in bytes, so 4 for a
      32-bit register.
      
      Throughout the regmap code, actual register addresses are used. Wherever
      the register address is used to index some array of values, the address
      is divided by the stride to determine the index, or vice-versa. Error-
      checking is added to all entry-points for register address data to ensure
      that register addresses actually satisfy the specified stride. The MMIO
      bus ensures that the specified stride is large enough for the register
      size.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      f01ee60f
    • S
      regmap: allow regmap instances to be named · d3c242e1
      Stephen Warren 提交于
      Some devices have multiple separate register regions. Logically, one
      regmap would be created per region. One issue that prevents this is that
      each instance will attempt to create the same debugfs files. Avoid this
      by allowing regmaps to be named, and use the name to construct the
      debugfs directory name.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      d3c242e1
  27. 06 4月, 2012 2 次提交