<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/gpio/basic_mmio_gpio.c, branch v3.0.63</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>basic_mmio_gpio: split into a gpio library and platform device</title>
<updated>2011-05-20T06:40:19+00:00</updated>
<author>
<name>Jamie Iles</name>
<email>jamie@jamieiles.com</email>
</author>
<published>2011-05-20T06:40:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=280df6b3c3ad777a91f1011cd98d50df891bfef8'/>
<id>280df6b3c3ad777a91f1011cd98d50df891bfef8</id>
<content type='text'>
Allow GPIO_BASIC_MMIO_CORE to be used to provide an accessor library
for implementing GPIO drivers whilst abstracting the register access
detail.  Based on a patch from Anton Vorontsov[1] and adapted to allow
bgpio_chip to be embedded in another structure.

Changes since v1:
	- Register the gpio_chip in the platform device probe

1. https://lkml.org/lkml/2011/4/19/401

Signed-off-by: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Signed-off-by: Jamie Iles &lt;jamie@jamieiles.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Allow GPIO_BASIC_MMIO_CORE to be used to provide an accessor library
for implementing GPIO drivers whilst abstracting the register access
detail.  Based on a patch from Anton Vorontsov[1] and adapted to allow
bgpio_chip to be embedded in another structure.

Changes since v1:
	- Register the gpio_chip in the platform device probe

1. https://lkml.org/lkml/2011/4/19/401

Signed-off-by: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Signed-off-by: Jamie Iles &lt;jamie@jamieiles.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>basic_mmio_gpio: convert to non-__raw* accessors</title>
<updated>2011-05-20T06:40:17+00:00</updated>
<author>
<name>Jamie Iles</name>
<email>jamie@jamieiles.com</email>
</author>
<published>2011-05-20T06:40:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=fd9962352105f19711d55cc2caaf75b2e201598b'/>
<id>fd9962352105f19711d55cc2caaf75b2e201598b</id>
<content type='text'>
The __raw_* accessors don't include memory barriers and can cause
problems when writes get stuck in write buffers.

Suggested-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Acked-by: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Signed-off-by: Jamie Iles &lt;jamie@jamieiles.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The __raw_* accessors don't include memory barriers and can cause
problems when writes get stuck in write buffers.

Suggested-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Acked-by: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Signed-off-by: Jamie Iles &lt;jamie@jamieiles.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>basic_mmio_gpio: support direction registers</title>
<updated>2011-05-20T06:40:17+00:00</updated>
<author>
<name>Jamie Iles</name>
<email>jamie@jamieiles.com</email>
</author>
<published>2011-05-20T06:40:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=31029116ebc1f2481bd2380437e9f7a18f18dca5'/>
<id>31029116ebc1f2481bd2380437e9f7a18f18dca5</id>
<content type='text'>
Most controllers require the direction of a GPIO to be set by writing to
a direction register.  Add support for either an input direction
register or an output direction register.

Signed-off-by: Jamie Iles &lt;jamie@jamieiles.com&gt;
Acked-by: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Most controllers require the direction of a GPIO to be set by writing to
a direction register.  Add support for either an input direction
register or an output direction register.

Signed-off-by: Jamie Iles &lt;jamie@jamieiles.com&gt;
Acked-by: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>basic_mmio_gpio: support different input/output registers</title>
<updated>2011-05-20T06:40:16+00:00</updated>
<author>
<name>Jamie Iles</name>
<email>jamie@jamieiles.com</email>
</author>
<published>2011-05-20T06:40:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=dd86a0cc5e35161538c10e35eb85e2ad0adfe14d'/>
<id>dd86a0cc5e35161538c10e35eb85e2ad0adfe14d</id>
<content type='text'>
Some controllers have separate input and output registers.  For these
controllers, use "set" for the output and "dat" for the input.

Changes since v2: reuse "set" for output and "dat" for input rather than
adding a new "in" register.

Signed-off-by: Jamie Iles &lt;jamie@jamieiles.com&gt;
Acked-by: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some controllers have separate input and output registers.  For these
controllers, use "set" for the output and "dat" for the input.

Changes since v2: reuse "set" for output and "dat" for input rather than
adding a new "in" register.

Signed-off-by: Jamie Iles &lt;jamie@jamieiles.com&gt;
Acked-by: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>basic_mmio_gpio: detect output method at probe time</title>
<updated>2011-05-20T06:40:16+00:00</updated>
<author>
<name>Jamie Iles</name>
<email>jamie@jamieiles.com</email>
</author>
<published>2011-05-20T06:40:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e027d6f9d52d9ccabb307d0cb0265de3481b1e9e'/>
<id>e027d6f9d52d9ccabb307d0cb0265de3481b1e9e</id>
<content type='text'>
Rather than detecting the output method each time in the .set()
callback, do it at probe time and set the appropriate callback.

Changes since v2: moved the reg_dat initialization into
bgpio_setup_io().

Signed-off-by: Jamie Iles &lt;jamie@jamieiles.com&gt;
Acked-by: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rather than detecting the output method each time in the .set()
callback, do it at probe time and set the appropriate callback.

Changes since v2: moved the reg_dat initialization into
bgpio_setup_io().

Signed-off-by: Jamie Iles &lt;jamie@jamieiles.com&gt;
Acked-by: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>basic_mmio_gpio: request register regions</title>
<updated>2011-05-20T06:40:16+00:00</updated>
<author>
<name>Jamie Iles</name>
<email>jamie@jamieiles.com</email>
</author>
<published>2011-05-20T06:40:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=364b5e871839fafffa851bbff9ecf64ac641023c'/>
<id>364b5e871839fafffa851bbff9ecf64ac641023c</id>
<content type='text'>
Make sure that we get the register regions with request_mem_region()
before ioremap() to make sure we have exclusive access.

Signed-off-by: Jamie Iles &lt;jamie@jamieiles.com&gt;
Acked-by: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make sure that we get the register regions with request_mem_region()
before ioremap() to make sure we have exclusive access.

Signed-off-by: Jamie Iles &lt;jamie@jamieiles.com&gt;
Acked-by: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>basic_mmio_gpio: allow overriding number of gpio</title>
<updated>2011-05-20T06:40:15+00:00</updated>
<author>
<name>Jamie Iles</name>
<email>jamie@jamieiles.com</email>
</author>
<published>2011-05-20T06:40:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=924e7a9fc6da124588e27c611841d07047c157b4'/>
<id>924e7a9fc6da124588e27c611841d07047c157b4</id>
<content type='text'>
Some platforms may have a number of GPIO that is less than the register
width of the peripheral.

Signed-off-by: Jamie Iles &lt;jamie@jamieiles.com&gt;
Acked-by: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some platforms may have a number of GPIO that is less than the register
width of the peripheral.

Signed-off-by: Jamie Iles &lt;jamie@jamieiles.com&gt;
Acked-by: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>basic_mmio_gpio: convert to platform_{get,set}_drvdata()</title>
<updated>2011-05-20T06:40:14+00:00</updated>
<author>
<name>Jamie Iles</name>
<email>jamie@jamieiles.com</email>
</author>
<published>2011-05-20T06:40:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4ddb8ae217ad2aae888d00d97c5160f677dd38f4'/>
<id>4ddb8ae217ad2aae888d00d97c5160f677dd38f4</id>
<content type='text'>
Use the platform drvdata helpers rather than working on the struct
device itself.

Signed-off-by: Jamie Iles &lt;jamie@jamieiles.com&gt;
Acked-by: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use the platform drvdata helpers rather than working on the struct
device itself.

Signed-off-by: Jamie Iles &lt;jamie@jamieiles.com&gt;
Acked-by: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>basic_mmio_gpio: remove runtime width/endianness evaluation</title>
<updated>2011-05-20T06:40:14+00:00</updated>
<author>
<name>Jamie Iles</name>
<email>jamie@jamieiles.com</email>
</author>
<published>2011-05-20T06:40:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8467afec5f8137fd0c13121f8a38c99c54c913f6'/>
<id>8467afec5f8137fd0c13121f8a38c99c54c913f6</id>
<content type='text'>
Remove endianness/width calculations at runtime by installing function
pointers for bit-to-mask conversion and register accessors.

Reported-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Jamie Iles &lt;jamie@jamieiles.com&gt;
Acked-by: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove endianness/width calculations at runtime by installing function
pointers for bit-to-mask conversion and register accessors.

Reported-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Jamie Iles &lt;jamie@jamieiles.com&gt;
Acked-by: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gpio: add driver for basic memory-mapped GPIO controllers</title>
<updated>2010-10-28T01:03:06+00:00</updated>
<author>
<name>Anton Vorontsov</name>
<email>cbouatmailru@gmail.com</email>
</author>
<published>2010-10-27T22:33:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=aeec56e331c6d2750de02ef34b305338305ca690'/>
<id>aeec56e331c6d2750de02ef34b305338305ca690</id>
<content type='text'>
The basic GPIO controllers may be found in various on-board FPGA and ASIC
solutions that are used to control board's switches, LEDs, chip-selects,
Ethernet/USB PHY power, etc.

These controllers may not provide any means of pin setup
(in/out/open drain).

The driver supports:
- 8/16/32/64 bits registers;
- GPIO controllers with clear/set registers;
- GPIO controllers with a single "data" register;
- Big endian bits/GPIOs ordering (mostly used on PowerPC).

Signed-off-by: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Reviewed-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
Cc: David Brownell &lt;david-b@pacbell.net&gt;
Cc: Samuel Ortiz &lt;sameo@linux.intel.com&gt;,
Cc: Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The basic GPIO controllers may be found in various on-board FPGA and ASIC
solutions that are used to control board's switches, LEDs, chip-selects,
Ethernet/USB PHY power, etc.

These controllers may not provide any means of pin setup
(in/out/open drain).

The driver supports:
- 8/16/32/64 bits registers;
- GPIO controllers with clear/set registers;
- GPIO controllers with a single "data" register;
- Big endian bits/GPIOs ordering (mostly used on PowerPC).

Signed-off-by: Anton Vorontsov &lt;cbouatmailru@gmail.com&gt;
Reviewed-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
Cc: David Brownell &lt;david-b@pacbell.net&gt;
Cc: Samuel Ortiz &lt;sameo@linux.intel.com&gt;,
Cc: Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
