<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/gpio/pca953x.c, branch v3.0.74</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>gpio/pca953x: Fix warning of enabled interrupts in handler</title>
<updated>2012-02-20T20:48:11+00:00</updated>
<author>
<name>David Jander</name>
<email>david@protonic.nl</email>
</author>
<published>2011-06-08T17:37:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8a6e41581a4537b53c038a328c558d455a6f3e3a'/>
<id>8a6e41581a4537b53c038a328c558d455a6f3e3a</id>
<content type='text'>
commit 6dd599f8af0166805951f4421a78ba716d78321a upstream.

When using nested threaded irqs, use handle_nested_irq(). This function
does not call the chip handler, so no handler is set.

Signed-off-by: David Jander &lt;david@protonic.nl&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
Cc: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Cc: Yong Zhang &lt;yong.zhang0@gmail.com&gt;
Cc: Manfred Gruber &lt;m.gruber@unverspurt.at&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 6dd599f8af0166805951f4421a78ba716d78321a upstream.

When using nested threaded irqs, use handle_nested_irq(). This function
does not call the chip handler, so no handler is set.

Signed-off-by: David Jander &lt;david@protonic.nl&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
Cc: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Cc: Yong Zhang &lt;yong.zhang0@gmail.com&gt;
Cc: Manfred Gruber &lt;m.gruber@unverspurt.at&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>gpio/pca953x: Add support for pca9574 and pca9575 devices</title>
<updated>2011-05-26T19:58:30+00:00</updated>
<author>
<name>Haojian Zhuang</name>
<email>haojian.zhuang@marvell.com</email>
</author>
<published>2011-04-18T14:12:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=33226ffd0726508da1eeb660170a63100f4456ac'/>
<id>33226ffd0726508da1eeb660170a63100f4456ac</id>
<content type='text'>
PCA957x is i2c gpio expander, and similar to PCA953x. Although register
configurations are different between PCA957x and PCA953x. They can share
a lot of components, such as IRQ handling, GPIO IN/OUT. So updating PCA953x
driver to support PCA957x chips.

Signed-off-by: Haojian Zhuang &lt;haojian.zhuang@marvell.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>
PCA957x is i2c gpio expander, and similar to PCA953x. Although register
configurations are different between PCA957x and PCA953x. They can share
a lot of components, such as IRQ handling, GPIO IN/OUT. So updating PCA953x
driver to support PCA957x chips.

Signed-off-by: Haojian Zhuang &lt;haojian.zhuang@marvell.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gpio/pca953x: Use handle_simple_irq instead of handle_edge_irq</title>
<updated>2011-05-20T06:40:18+00:00</updated>
<author>
<name>Erik Botö</name>
<email>erik.boto@pelagicore.com</email>
</author>
<published>2011-05-20T06:40:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=cc300d9ead66235e23c674babb8a4ae4ad4c9db8'/>
<id>cc300d9ead66235e23c674babb8a4ae4ad4c9db8</id>
<content type='text'>
Make pca953x driver use the simple irq handler since no hardware control
is necessary and the driver lacks an irq_ack function. handle_edge_irq()
calls chip-&gt;irq_ack() which crashes since this function does not exist.

Signed-off-by: Erik Botö &lt;erik.boto@pelagicore.com&gt;
Signed-off-by: Richard Röjfors &lt;richard.rojfors@pelagicore.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 pca953x driver use the simple irq handler since no hardware control
is necessary and the driver lacks an irq_ack function. handle_edge_irq()
calls chip-&gt;irq_ack() which crashes since this function does not exist.

Signed-off-by: Erik Botö &lt;erik.boto@pelagicore.com&gt;
Signed-off-by: Richard Röjfors &lt;richard.rojfors@pelagicore.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gpio/pca953x: fix error handling path in probe() call</title>
<updated>2011-03-31T03:28:12+00:00</updated>
<author>
<name>Ben Dooks</name>
<email>ben-linux@fluff.org</email>
</author>
<published>2011-03-30T22:18:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=272df502bcd1fbb1b95facc92bd861d604be8871'/>
<id>272df502bcd1fbb1b95facc92bd861d604be8871</id>
<content type='text'>
If the device fails to respond, then the error path tries to remove an
interrupt that never got registered, which causes an backtrace from the
interrupt handling code.

Fix this by ensuring that the cleanup path has two labels and use the
correct path as needed.

fixes the following error:

WARNING: at kernel/irq/manage.c:908 __free_irq+0x80/0x160()
Trying to free already-free IRQ 0

Signed-off-by: Ben Dooks &lt;ben-linux@fluff.org&gt;
Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.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>
If the device fails to respond, then the error path tries to remove an
interrupt that never got registered, which causes an backtrace from the
interrupt handling code.

Fix this by ensuring that the cleanup path has two labels and use the
correct path as needed.

fixes the following error:

WARNING: at kernel/irq/manage.c:908 __free_irq+0x80/0x160()
Trying to free already-free IRQ 0

Signed-off-by: Ben Dooks &lt;ben-linux@fluff.org&gt;
Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gpio: Cleanup genirq namespace</title>
<updated>2011-03-24T23:02:51+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-03-24T21:27:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b51804bcf0774a8bc6af1e8bb6ae818f4b71173a'/>
<id>b51804bcf0774a8bc6af1e8bb6ae818f4b71173a</id>
<content type='text'>
Converted with coccinelle.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Acked-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
LKML-Reference: &lt;20110324212509.025730689@linutronix.de&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Converted with coccinelle.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Acked-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
LKML-Reference: &lt;20110324212509.025730689@linutronix.de&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge commit 'v2.6.38-rc8' into spi/next</title>
<updated>2011-03-12T08:25:53+00:00</updated>
<author>
<name>Grant Likely</name>
<email>grant.likely@secretlab.ca</email>
</author>
<published>2011-03-12T08:25:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9c3c8afccb6a163fd2be739f511e863eab668702'/>
<id>9c3c8afccb6a163fd2be739f511e863eab668702</id>
<content type='text'>
Conflicts:
	drivers/spi/pxa2xx_spi_pci.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	drivers/spi/pxa2xx_spi_pci.c
</pre>
</div>
</content>
</entry>
<entry>
<title>gpio/pca953x: Fix wrong pointer type</title>
<updated>2011-02-24T15:55:02+00:00</updated>
<author>
<name>Dirk Eibach</name>
<email>eibach@gdsys.de</email>
</author>
<published>2011-02-24T09:20:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1648237dc2053bfd6ade3ce3dca3716d53cf9dcf'/>
<id>1648237dc2053bfd6ade3ce3dca3716d53cf9dcf</id>
<content type='text'>
pca953x_get_alt_pdata() uses uint16_t* as result type for
of_get_property(), but numeric of values are __be32.

Checking for negative values is bogus because of-property
values are unsigned by definition.
Instead check for proper property size.

v3: - assume big-endian properties
    - check property size
v2: - removed bogus check for negative property values

Signed-off-by: Dirk Eibach &lt;eibach@gdsys.de&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>
pca953x_get_alt_pdata() uses uint16_t* as result type for
of_get_property(), but numeric of values are __be32.

Checking for negative values is bogus because of-property
values are unsigned by definition.
Instead check for proper property size.

v3: - assume big-endian properties
    - check property size
v2: - removed bogus check for negative property values

Signed-off-by: Dirk Eibach &lt;eibach@gdsys.de&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drivers/gpio/pca953x.c: add a mutex to fix race condition</title>
<updated>2011-02-12T00:12:20+00:00</updated>
<author>
<name>Roland Stigge</name>
<email>stigge@antcom.de</email>
</author>
<published>2011-02-10T23:01:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6e20fb18054c179d7e64c0af43d855b9310a3394'/>
<id>6e20fb18054c179d7e64c0af43d855b9310a3394</id>
<content type='text'>
Add a mutex to register communication and handling.  Without the mutex,
GPIOs didn't switch as expected when toggled in a fast sequence of
status changes of multiple outputs.

Signed-off-by: Roland Stigge &lt;stigge@antcom.de&gt;
Acked-by: Eric Miao &lt;eric.y.miao@gmail.com&gt;
Cc: Grant Likely &lt;grant.likely@secretlab.ca&gt;
Cc: Marc Zyngier &lt;maz@misterjones.org&gt;
Cc: Ben Gardner &lt;bgardner@wabtec.com&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>
Add a mutex to register communication and handling.  Without the mutex,
GPIOs didn't switch as expected when toggled in a fast sequence of
status changes of multiple outputs.

Signed-off-by: Roland Stigge &lt;stigge@antcom.de&gt;
Acked-by: Eric Miao &lt;eric.y.miao@gmail.com&gt;
Cc: Grant Likely &lt;grant.likely@secretlab.ca&gt;
Cc: Marc Zyngier &lt;maz@misterjones.org&gt;
Cc: Ben Gardner &lt;bgardner@wabtec.com&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>
<entry>
<title>gpio: pca953x: irq_data conversion</title>
<updated>2011-01-13T16:03:13+00:00</updated>
<author>
<name>Lennert Buytenhek</name>
<email>buytenh@wantstofly.org</email>
</author>
<published>2011-01-13T01:00:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6f5cfc0e2d5feac9094a8b26b9ad1739c1e7d9df'/>
<id>6f5cfc0e2d5feac9094a8b26b9ad1739c1e7d9df</id>
<content type='text'>
Converts irq_chips and flow handlers over to the new struct irq_data based
irq_chip functions.

Signed-off-by: Lennert Buytenhek &lt;buytenh@secretlab.ca&gt;
Cc: Alek Du &lt;alek.du@intel.com&gt;
Cc: Alan Cox &lt;alan@linux.intel.com&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>
Converts irq_chips and flow handlers over to the new struct irq_data based
irq_chip functions.

Signed-off-by: Lennert Buytenhek &lt;buytenh@secretlab.ca&gt;
Cc: Alek Du &lt;alek.du@intel.com&gt;
Cc: Alan Cox &lt;alan@linux.intel.com&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>
<entry>
<title>pca953x: pca953x driver fixes for x86 mrst</title>
<updated>2010-10-26T23:52:15+00:00</updated>
<author>
<name>Alek Du</name>
<email>alek.du@intel.com</email>
</author>
<published>2010-10-26T21:22:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8a233f01b7d7dd587f85fa581274f168f1e88bb8'/>
<id>8a233f01b7d7dd587f85fa581274f168f1e88bb8</id>
<content type='text'>
Our Moorestown platform has two max7315 chips which is covered by pca953x
i2c gpio driver.

A while ago this driver got updated with nested irq thread support, and it
broke the compatibity with "request_irq".  For example, the gpio_keys.c
driver can not work with this driver now.  This patch fixes the issue by
switching to generic_handle_irq.

Also fix the irq_base issue: irq_base == 0 is valid, and a "-1" value
should mean invalid. IRQ 0 is not a valid IRQ, irq_base of 0 is valid.

Signed-off-by: Alek Du &lt;alek.du@intel.com&gt;
Signed-off-by: Alan Cox &lt;alan@linux.intel.com&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>
Our Moorestown platform has two max7315 chips which is covered by pca953x
i2c gpio driver.

A while ago this driver got updated with nested irq thread support, and it
broke the compatibity with "request_irq".  For example, the gpio_keys.c
driver can not work with this driver now.  This patch fixes the issue by
switching to generic_handle_irq.

Also fix the irq_base issue: irq_base == 0 is valid, and a "-1" value
should mean invalid. IRQ 0 is not a valid IRQ, irq_base of 0 is valid.

Signed-off-by: Alek Du &lt;alek.du@intel.com&gt;
Signed-off-by: Alan Cox &lt;alan@linux.intel.com&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>
