<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/include/linux/regmap.h, branch T20_LinuxImageV2.0Beta1_20121218</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>regmap: add support for non contiguous status to regmap-irq</title>
<updated>2012-07-03T22:03:33+00:00</updated>
<author>
<name>Graeme Gregory</name>
<email>gg@slimlogic.co.uk</email>
</author>
<published>2012-05-14T13:40:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6d80ad162f51dfae870b32889de1d42bd51ccb4f'/>
<id>6d80ad162f51dfae870b32889de1d42bd51ccb4f</id>
<content type='text'>
In some chips the IRQ status registers are not contiguous in the register
map but spaced at even spaces. This is an easy case to handle with minor
changes. It is assume for this purpose that the stride for status is
equal to the stride for mask/ack registers as well.

Signed-off-by: Graeme Gregory &lt;gg@slimlogic.co.uk&gt;
Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
(cherry picked from commit 022f926a2401c80ed36ebb48a1bffbac08f34d98)
Change-Id: I68a59c8fd8a67062dac0eceaefcc85ed597f4a29
Reviewed-on: http://git-master/r/111484
Reviewed-by: Automatic_Commit_Validation_User
Tested-by: Pradeep Goudagunta &lt;pgoudagunta@nvidia.com&gt;
GVS: Gerrit_Virtual_Submit
Reviewed-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In some chips the IRQ status registers are not contiguous in the register
map but spaced at even spaces. This is an easy case to handle with minor
changes. It is assume for this purpose that the stride for status is
equal to the stride for mask/ack registers as well.

Signed-off-by: Graeme Gregory &lt;gg@slimlogic.co.uk&gt;
Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
(cherry picked from commit 022f926a2401c80ed36ebb48a1bffbac08f34d98)
Change-Id: I68a59c8fd8a67062dac0eceaefcc85ed597f4a29
Reviewed-on: http://git-master/r/111484
Reviewed-by: Automatic_Commit_Validation_User
Tested-by: Pradeep Goudagunta &lt;pgoudagunta@nvidia.com&gt;
GVS: Gerrit_Virtual_Submit
Reviewed-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>regmap: implement register striding</title>
<updated>2012-04-15T21:58:10+00:00</updated>
<author>
<name>Stephen Warren</name>
<email>swarren@nvidia.com</email>
</author>
<published>2012-04-09T19:40:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=48f282fdd1833460e1ee5fc1a9e3008fcede3b38'/>
<id>48f282fdd1833460e1ee5fc1a9e3008fcede3b38</id>
<content type='text'>
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: Stephen Warren &lt;swarren@nvidia.com&gt;
Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
(cherry picked from commit f01ee60fffa4dc6c77122121233a793f7f696e67)

Change-Id: I634977dcb0fe9ff95c7932e9195a2c1918eb1c18
Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Reviewed-on: http://git-master/r/96510
Reviewed-by: Simone Willett &lt;swillett@nvidia.com&gt;
Tested-by: Simone Willett &lt;swillett@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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: Stephen Warren &lt;swarren@nvidia.com&gt;
Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
(cherry picked from commit f01ee60fffa4dc6c77122121233a793f7f696e67)

Change-Id: I634977dcb0fe9ff95c7932e9195a2c1918eb1c18
Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Reviewed-on: http://git-master/r/96510
Reviewed-by: Simone Willett &lt;swillett@nvidia.com&gt;
Tested-by: Simone Willett &lt;swillett@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>regmap: allow regmap instances to be named</title>
<updated>2012-04-15T21:47:14+00:00</updated>
<author>
<name>Stephen Warren</name>
<email>swarren@nvidia.com</email>
</author>
<published>2012-04-04T21:48:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=db10dacb42ddc6c63464ac8d0b069f8f4cfac00a'/>
<id>db10dacb42ddc6c63464ac8d0b069f8f4cfac00a</id>
<content type='text'>
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: Stephen Warren &lt;swarren@nvidia.com&gt;
Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
cherry-picked form mainline d3c242e

Change-Id: Ia3301fb4d28645f1d3593e547f9409ce20c0acfe
Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Reviewed-on: http://git-master/r/96508
Reviewed-by: Simone Willett &lt;swillett@nvidia.com&gt;
Tested-by: Simone Willett &lt;swillett@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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: Stephen Warren &lt;swarren@nvidia.com&gt;
Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
cherry-picked form mainline d3c242e

Change-Id: Ia3301fb4d28645f1d3593e547f9409ce20c0acfe
Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Reviewed-on: http://git-master/r/96508
Reviewed-by: Simone Willett &lt;swillett@nvidia.com&gt;
Tested-by: Simone Willett &lt;swillett@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>regmap: add MMIO bus support</title>
<updated>2012-04-15T21:23:47+00:00</updated>
<author>
<name>Stephen Warren</name>
<email>swarren@nvidia.com</email>
</author>
<published>2012-04-04T21:48:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d1e4558e1f325b10e06ef754fd789dbb8f6fd17e'/>
<id>d1e4558e1f325b10e06ef754fd789dbb8f6fd17e</id>
<content type='text'>
This is a basic memory-mapped-IO bus for regmap. It has the following
features and limitations:

* Registers themselves may be 8, 16, 32, or 64-bit. 64-bit is only
  supported on 64-bit platforms.
* Register offsets are limited to precisely 32-bit.
* IO is performed using readl/writel, with no provision for using the
  __raw_readl or readl_relaxed variants.

Signed-off-by: Stephen Warren &lt;swarren@nvidia.com&gt;
Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
(cherry picked from commit 45f5ff8107a845854b1d1812ab1d9c5541f08b4d)

Change-Id: Ia84cf3fec838ee687e5b77ce771fc2450abe8436
Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Reviewed-on: http://git-master/r/96504
Reviewed-by: Simone Willett &lt;swillett@nvidia.com&gt;
Tested-by: Simone Willett &lt;swillett@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a basic memory-mapped-IO bus for regmap. It has the following
features and limitations:

* Registers themselves may be 8, 16, 32, or 64-bit. 64-bit is only
  supported on 64-bit platforms.
* Register offsets are limited to precisely 32-bit.
* IO is performed using readl/writel, with no provision for using the
  __raw_readl or readl_relaxed variants.

Signed-off-by: Stephen Warren &lt;swarren@nvidia.com&gt;
Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
(cherry picked from commit 45f5ff8107a845854b1d1812ab1d9c5541f08b4d)

Change-Id: Ia84cf3fec838ee687e5b77ce771fc2450abe8436
Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Reviewed-on: http://git-master/r/96504
Reviewed-by: Simone Willett &lt;swillett@nvidia.com&gt;
Tested-by: Simone Willett &lt;swillett@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>regmap: introduce fast_io busses, and use a spinlock for them</title>
<updated>2012-04-15T21:18:17+00:00</updated>
<author>
<name>Stephen Warren</name>
<email>swarren@nvidia.com</email>
</author>
<published>2012-04-04T21:48:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=77a38d8012fd6603e25eb3aa7a012856ab0a6ae8'/>
<id>77a38d8012fd6603e25eb3aa7a012856ab0a6ae8</id>
<content type='text'>
Some bus types have very fast IO. For these, acquiring a mutex for every
IO operation is a significant overhead. Allow busses to indicate their IO
is fast, and enhance regmap to use a spinlock for those busses.

[Currently limited to native endian registers -- broonie]

Signed-off-by: Stephen Warren &lt;swarren@nvidia.com&gt;
Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
(cherry picked from commit bacdbe077342ecc9e7b3e374cc5a41995116706a)

Change-Id: I337f27a09f2b176b46e8f6d05401957a1abc0609
Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Reviewed-on: http://git-master/r/96503
Reviewed-by: Simone Willett &lt;swillett@nvidia.com&gt;
Tested-by: Simone Willett &lt;swillett@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some bus types have very fast IO. For these, acquiring a mutex for every
IO operation is a significant overhead. Allow busses to indicate their IO
is fast, and enhance regmap to use a spinlock for those busses.

[Currently limited to native endian registers -- broonie]

Signed-off-by: Stephen Warren &lt;swarren@nvidia.com&gt;
Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
(cherry picked from commit bacdbe077342ecc9e7b3e374cc5a41995116706a)

Change-Id: I337f27a09f2b176b46e8f6d05401957a1abc0609
Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Reviewed-on: http://git-master/r/96503
Reviewed-by: Simone Willett &lt;swillett@nvidia.com&gt;
Tested-by: Simone Willett &lt;swillett@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>regmap: introduce explicit bus_context for bus callbacks</title>
<updated>2012-04-15T21:12:19+00:00</updated>
<author>
<name>Stephen Warren</name>
<email>swarren@nvidia.com</email>
</author>
<published>2012-04-04T21:48:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d5a70b9a3304ef71b0a0ba97a9933c579b1fa6b0'/>
<id>d5a70b9a3304ef71b0a0ba97a9933c579b1fa6b0</id>
<content type='text'>
The only context needed by I2C and SPI bus definitions is the device
itself; this can be converted to an i2c_client or spi_device in order
to perform IO on the device. However, other bus types may need more
context in order to perform IO. Enable this by having regmap_init accept
a bus_context parameter, and pass this to all bus callbacks. The
existing callbacks simply pass the struct device here. Future bus types
may pass something else.

Signed-off-by: Stephen Warren &lt;swarren@nvidia.com&gt;
Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
(cherry picked from commit 0135bbcc7a0cc056f0203ff839466236b8e3dc19)

Change-Id: I36b3fb3433af6e6f1e673fc6c73ba21f7eb4d054
Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Reviewed-on: http://git-master/r/96502
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Stephen Warren &lt;swarren@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The only context needed by I2C and SPI bus definitions is the device
itself; this can be converted to an i2c_client or spi_device in order
to perform IO on the device. However, other bus types may need more
context in order to perform IO. Enable this by having regmap_init accept
a bus_context parameter, and pass this to all bus callbacks. The
existing callbacks simply pass the struct device here. Future bus types
may pass something else.

Signed-off-by: Stephen Warren &lt;swarren@nvidia.com&gt;
Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
(cherry picked from commit 0135bbcc7a0cc056f0203ff839466236b8e3dc19)

Change-Id: I36b3fb3433af6e6f1e673fc6c73ba21f7eb4d054
Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Reviewed-on: http://git-master/r/96502
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Stephen Warren &lt;swarren@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>regmap: Allow drivers to sync only part of the register cache</title>
<updated>2012-04-15T20:50:26+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@opensource.wolfsonmicro.com</email>
</author>
<published>2012-02-23T20:53:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=fe5d7a370e86d9a3ba10e94f834bd3d2619d0f73'/>
<id>fe5d7a370e86d9a3ba10e94f834bd3d2619d0f73</id>
<content type='text'>
Provide a regcache_sync_region() operation which allows drivers to
write only part of the cache back to the hardware. This is intended
for use in cases like power domains or DSP memories where part of the
device register map may be reset without fully resetting the device.

Fully supporting these devices is likely to require additional work to
make specific regions of the register map cache only while they are in
reset, but this is enough for most devices.

Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
(cherry picked from commit 4d4cfd1656b5f6c88eae51c40741a695b108b006)

Change-Id: Ia8cccf7986611485ae090e234bb68084671d7641
Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Reviewed-on: http://git-master/r/96490
Reviewed-by: Simone Willett &lt;swillett@nvidia.com&gt;
Tested-by: Simone Willett &lt;swillett@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Provide a regcache_sync_region() operation which allows drivers to
write only part of the cache back to the hardware. This is intended
for use in cases like power domains or DSP memories where part of the
device register map may be reset without fully resetting the device.

Fully supporting these devices is likely to require additional work to
make specific regions of the register map cache only while they are in
reset, but this is enough for most devices.

Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
(cherry picked from commit 4d4cfd1656b5f6c88eae51c40741a695b108b006)

Change-Id: Ia8cccf7986611485ae090e234bb68084671d7641
Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Reviewed-on: http://git-master/r/96490
Reviewed-by: Simone Willett &lt;swillett@nvidia.com&gt;
Tested-by: Simone Willett &lt;swillett@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>regmap: Allow users to query the size of register values</title>
<updated>2012-04-15T20:22:39+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@opensource.wolfsonmicro.com</email>
</author>
<published>2012-02-17T22:20:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4905e92c32deb4438361f3e52f3355aa877728ff'/>
<id>4905e92c32deb4438361f3e52f3355aa877728ff</id>
<content type='text'>
Generic infrastructure based on top of regmap may want to operate on
blocks of data and therefore find it useful to find the size of the
register values. Provide an accessor operation for this.

Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
Cherry-pick from mainline a6539c3

Change-Id: I455ace158eea38f6a92938f6330ec074bc18f0da
Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Reviewed-on: http://git-master/r/96481
Reviewed-by: Automatic_Commit_Validation_User
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Generic infrastructure based on top of regmap may want to operate on
blocks of data and therefore find it useful to find the size of the
register values. Provide an accessor operation for this.

Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
Cherry-pick from mainline a6539c3

Change-Id: I455ace158eea38f6a92938f6330ec074bc18f0da
Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Reviewed-on: http://git-master/r/96481
Reviewed-by: Automatic_Commit_Validation_User
</pre>
</div>
</content>
</entry>
<entry>
<title>regmap: add regmap_bulk_write() for register write</title>
<updated>2012-03-05T16:01:01+00:00</updated>
<author>
<name>Laxman Dewangan</name>
<email>ldewangan@nvidia.com</email>
</author>
<published>2012-02-12T14:19:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7f97efd8b1e6fe8c5cd2173a3e447a7867fffaf6'/>
<id>7f97efd8b1e6fe8c5cd2173a3e447a7867fffaf6</id>
<content type='text'>
The bulk_write() supports the data transfer to multi
register which takes the data into cpu_endianness format
and does formatting of data to device format before
sending to device.
The transfer can be completed in single transfer or multiple
transfer based on data formatting.

Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
(cherry picked from commit 8eaeb21925563075ae036c2e5ba8d041b70e18fa)

Change-Id: Id97fbcfa0ed7d00d97dc3ab89fdb2b025850c9b1
Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Reviewed-on: http://git-master/r/87591
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The bulk_write() supports the data transfer to multi
register which takes the data into cpu_endianness format
and does formatting of data to device format before
sending to device.
The transfer can be completed in single transfer or multiple
transfer based on data formatting.

Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
(cherry picked from commit 8eaeb21925563075ae036c2e5ba8d041b70e18fa)

Change-Id: Id97fbcfa0ed7d00d97dc3ab89fdb2b025850c9b1
Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Reviewed-on: http://git-master/r/87591
</pre>
</div>
</content>
</entry>
<entry>
<title>regmap: Implement managed regmap_init()</title>
<updated>2012-03-05T15:59:27+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@opensource.wolfsonmicro.com</email>
</author>
<published>2012-01-30T19:56:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=afb74b6de29f8219824b93c3743b418a66df494a'/>
<id>afb74b6de29f8219824b93c3743b418a66df494a</id>
<content type='text'>
Save error handling and unwinding code in drivers by providing managed
versions of the regmap init functions, simplifying usage.

Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
(cherry picked from commit c0eb46766d395da8d62148bda2e59bad5e6ee2f2)

Change-Id: I6df96ae10ad8a882feb7da908dd46c2f56a28f9f
Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Reviewed-on: http://git-master/r/87585
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Save error handling and unwinding code in drivers by providing managed
versions of the regmap init functions, simplifying usage.

Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
(cherry picked from commit c0eb46766d395da8d62148bda2e59bad5e6ee2f2)

Change-Id: I6df96ae10ad8a882feb7da908dd46c2f56a28f9f
Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Reviewed-on: http://git-master/r/87585
</pre>
</div>
</content>
</entry>
</feed>
