<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/include/linux/gpio, branch v4.10.4</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.10.4</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.10.4'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2017-01-19T08:57:20Z</updated>
<entry>
<title>gpio: provide lockdep keys for nested/unnested irqchips</title>
<updated>2017-01-19T08:57:20Z</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2017-01-11T12:37:07Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=739e6f5945d88dcee01590913f6886132a10c215'/>
<id>urn:sha1:739e6f5945d88dcee01590913f6886132a10c215</id>
<content type='text'>
The helper function for adding a GPIO chip compiles in a lockdep
key for debugging, the same key is needed for nested chips as
well.

The macro construction is unreadable, replace this with two
static inlines instead.

The _gpiochip_irqchip_add prefixed function is not helpful,
rename it with gpiochip_irqchip_add_key() that tell us what the
function is actually doing.

Fixes: d245b3f9bd36 ("gpio: simplify adding threaded interrupts")
Cc: Roger Quadros &lt;rogerq@ti.com&gt;
Reported-by: Clemens Gruber &lt;clemens.gruber@pqgruber.com&gt;
Reported-by: Roger Quadros &lt;rogerq@ti.com&gt;
Reported-by: Grygorii Strashko &lt;grygorii.strashko@ti.com&gt;
Tested-by: Clemens Gruber &lt;clemens.gruber@pqgruber.com&gt;
Tested-by: Grygorii Strashko &lt;grygorii.strashko@ti.com&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'thread-irq-simpler' into devel</title>
<updated>2016-12-07T14:24:12Z</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2016-12-07T14:24:12Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=acf1fcf77247efa01d7213f53082451f6c9c8f3b'/>
<id>urn:sha1:acf1fcf77247efa01d7213f53082451f6c9c8f3b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>gpio: simplify adding threaded interrupts</title>
<updated>2016-11-25T14:12:27Z</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2016-11-24T09:57:25Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=d245b3f9bd36f02fd641cba9931d8b4c77126e74'/>
<id>urn:sha1:d245b3f9bd36f02fd641cba9931d8b4c77126e74</id>
<content type='text'>
This tries to simplify the use of CONFIG_GPIOLIB_IRQCHIP when
using threaded interrupts: add a new call
gpiochip_irqchip_add_nested() to indicate that we're dealing
with a nested rather than a chained irqchip, then create a
separate gpiochip_set_nested_irqchip() to mirror
the gpiochip_set_chained_irqchip() call to connect the
parent and child interrupts.

In the nested case gpiochip_set_nested_irqchip() does nothing
more than call irq_set_parent() on each valid child interrupt,
which has little semantic effect in the kernel, but this is
probably still formally correct.

Update all drivers using nested interrupts to use
gpiochip_irqchip_add_nested() so we can now see clearly
which these users are.

The DLN2 driver can drop its specific hack with
.irq_not_threaded as we now recognize whether a chip is
threaded or not from its use of gpiochip_irqchip_add_nested()
signature rather than from inspecting .can_sleep.

We rename the .irq_parent to .irq_chained_parent since this
parent IRQ is only really kept around for the chained
interrupt handlers.

Cc: Lars Poeschel &lt;poeschel@lemonage.de&gt;
Cc: Octavian Purdila &lt;octavian.purdila@intel.com&gt;
Cc: Daniel Baluta &lt;daniel.baluta@intel.com&gt;
Cc: Bin Gao &lt;bin.gao@linux.intel.com&gt;
Cc: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Cc: Ajay Thomas &lt;ajay.thomas.david.rajamanickam@intel.com&gt;
Cc: Semen Protsenko &lt;semen.protsenko@globallogic.com&gt;
Cc: Alexander Stein &lt;alexander.stein@systec-electronic.com&gt;
Cc: Phil Reid &lt;preid@electromag.com.au&gt;
Cc: Bartosz Golaszewski &lt;bgolaszewski@baylibre.com&gt;
Cc: Patrice Chotard &lt;patrice.chotard@st.com&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>gpio: fix struct gpio_chip comment</title>
<updated>2016-10-24T14:33:11Z</updated>
<author>
<name>Anthony Best</name>
<email>anthonybest@bestanthony.com</email>
</author>
<published>2016-10-04T20:15:42Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=08bcd3edec2559833aa0ed0213cc300fc9705dd6'/>
<id>urn:sha1:08bcd3edec2559833aa0ed0213cc300fc9705dd6</id>
<content type='text'>
It should have been @reg_clr instead of @reg_clk

Signed-off-by: Anthony Best &lt;anthonybest@bestanthony.com&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>treewide: remove redundant #include &lt;linux/kconfig.h&gt;</title>
<updated>2016-10-11T22:06:33Z</updated>
<author>
<name>Masahiro Yamada</name>
<email>yamada.masahiro@socionext.com</email>
</author>
<published>2016-10-11T20:55:58Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=97139d4a6f26445de47b378cddd5192c0278f863'/>
<id>urn:sha1:97139d4a6f26445de47b378cddd5192c0278f863</id>
<content type='text'>
Kernel source files need not include &lt;linux/kconfig.h&gt; explicitly
because the top Makefile forces to include it with:

  -include $(srctree)/include/linux/kconfig.h

This commit removes explicit includes except the following:

  * arch/s390/include/asm/facilities_src.h
  * tools/testing/radix-tree/linux/kernel.h

These two are used for host programs.

Link: http://lkml.kernel.org/r/1473656164-11929-1-git-send-email-yamada.masahiro@socionext.com
Signed-off-by: Masahiro Yamada &lt;yamada.masahiro@socionext.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>
</entry>
<entry>
<title>Merge branch 'gpio-irq-validmask' of /home/linus/linux-pinctrl into devel</title>
<updated>2016-09-23T12:51:18Z</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2016-09-23T12:51:18Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=22a5db98a30ea734c29056b0d59cb4fe2a383bc2'/>
<id>urn:sha1:22a5db98a30ea734c29056b0d59cb4fe2a383bc2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>gpiolib: Make it possible to exclude GPIOs from IRQ domain</title>
<updated>2016-09-23T12:49:50Z</updated>
<author>
<name>Mika Westerberg</name>
<email>mika.westerberg@linux.intel.com</email>
</author>
<published>2016-09-20T12:15:21Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=79b804cb6af4f128b2c53f0887c02537a7eb5824'/>
<id>urn:sha1:79b804cb6af4f128b2c53f0887c02537a7eb5824</id>
<content type='text'>
When using GPIO irqchip helpers to setup irqchip for a gpiolib based
driver, it is not possible to select which GPIOs to add to the IRQ domain.
Instead it just adds all GPIOs which is not always desired. For example
there might be GPIOs that for some reason cannot generated normal
interrupts at all.

To support this we add a flag irq_need_valid_mask to struct gpio_chip. When
this flag is set the core allocates irq_valid_mask that holds one bit for
each GPIO the chip has. By default all bits are set but drivers can
manipulate this using set_bit() and clear_bit() accordingly.

Then when gpiochip_irqchip_add() is called, this mask is checked and all
GPIOs with bit is set are added to the IRQ domain created for the GPIO
chip.

Suggested-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Signed-off-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>gpio: don't include module.h in shared driver header</title>
<updated>2016-09-15T12:04:42Z</updated>
<author>
<name>Paul Gortmaker</name>
<email>paul.gortmaker@windriver.com</email>
</author>
<published>2016-09-12T22:16:31Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=d47529b2e9fe0ec2eb1f072afad8849f52e385c4'/>
<id>urn:sha1:d47529b2e9fe0ec2eb1f072afad8849f52e385c4</id>
<content type='text'>
Most shared headers in include/linux don't need to know what the
internals of a struct module are; all they care about is that it
is a struct and hence they may require a pointer to one.

The advantage in this is that module.h is including a lot of stuff
itself, and an otherwise empty C file that just contains module.h
will result in ~750kB from CPP (compared to say 12kB from init.h)

So we have approximately 50 instances of "struct module;" in the
various include/linux headers already that help us keep module.h
out of other headers; here we do the same for gpio.

Cc: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Cc: Alexandre Courbot &lt;gnurou@gmail.com&gt;
Cc: linux-gpio@vger.kernel.org
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>gpio: support native single-ended hardware drivers</title>
<updated>2016-04-05T14:57:15Z</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2016-03-22T09:51:16Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=c663e5f56737757db4d0b317c510ab505f93cecb'/>
<id>urn:sha1:c663e5f56737757db4d0b317c510ab505f93cecb</id>
<content type='text'>
Some GPIO controllers has a special hardware bit we can flip
to support open drain / source. This means that on these hardwares
we do not need to emulate OD/OS by setting the line to input
instead of actively driving it high/low. Add an optional vtable
callback to the driver set_single_ended() so that driver can
implement this in hardware if they have it.

We may need a pinctrl_gpio_set_config() call at some point to
propagate this down to a backing pin control device on systems
with split GPIO/pin control.

Reported-by: Michael Hennerich &lt;michael.hennerich@analog.com&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>gpio: Add devm_ apis for gpiochip_add_data and gpiochip_remove</title>
<updated>2016-02-23T14:10:33Z</updated>
<author>
<name>Laxman Dewangan</name>
<email>ldewangan@nvidia.com</email>
</author>
<published>2016-02-15T11:02:09Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=0cf3292cde22f8843ae5d1eeb8466d8121243c1a'/>
<id>urn:sha1:0cf3292cde22f8843ae5d1eeb8466d8121243c1a</id>
<content type='text'>
Add device managed APIs devm_gpiochip_add_data() and
devm_gpiochip_remove() for the APIs gpiochip_add_data()
and gpiochip_remove().

This helps in reducing code in error path and sometimes
removal of .remove callback for driver unbind.

Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
</content>
</entry>
</feed>
