<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/mfd/vexpress-sysreg.c, branch v4.10-rc4</title>
<subtitle>Linux Kernel (branches are rebased on master from time to time)</subtitle>
<id>https://sre.ring0.de/linux/atom?h=v4.10-rc4</id>
<link rel='self' href='https://sre.ring0.de/linux/atom?h=v4.10-rc4'/>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/'/>
<updated>2016-04-19T06:59:06Z</updated>
<entry>
<title>mfd: vexpress-sysreg: Switch to gpiochip_add_data()</title>
<updated>2016-04-19T06:59:06Z</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2016-03-30T08:48:09Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=7ad073695dff7b1fc2a6ef2e8112d96a76fc8dc4'/>
<id>urn:sha1:7ad073695dff7b1fc2a6ef2e8112d96a76fc8dc4</id>
<content type='text'>
We're planning to remove the gpiochip_add() function to swith
to gpiochip_add_data() with NULL for data argument.

Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Signed-off-by: Lee Jones &lt;lee.jones@linaro.org&gt;
</content>
</entry>
<entry>
<title>gpio: generic: factor into gpio_chip struct</title>
<updated>2016-01-05T10:21:00Z</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2015-12-04T13:02:58Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=0f4630f3720e7e6e921bf525c8357fea7ef3dbab'/>
<id>urn:sha1:0f4630f3720e7e6e921bf525c8357fea7ef3dbab</id>
<content type='text'>
The separate struct bgpio_chip has been a pain to handle, both
by being confusingly similar in name to struct gpio_chip and
for being contained inside a struct so that struct gpio_chip
is contained in a struct contained in a struct, making several
steps of dereferencing necessary.

Make things simpler: include the fields directly into
&lt;linux/gpio/driver.h&gt;, #ifdef:ed for CONFIG_GENERIC_GPIO, and
get rid of the &lt;linux/basic_mmio_gpio.h&gt; altogether. Prefix
some of the member variables with bgpio_* and add proper
kerneldoc while we're at it.

Modify all users to handle the change and use a struct
gpio_chip directly. And while we're at it: replace all
container_of() dereferencing by gpiochip_get_data() and
registering the gpio_chip with gpiochip_add_data().

Cc: arm@kernel.org
Cc: Alexander Shiyan &lt;shc_work@mail.ru&gt;
Cc: Shawn Guo &lt;shawnguo@kernel.org&gt;
Cc: Sascha Hauer &lt;kernel@pengutronix.de&gt;
Cc: Kukjin Kim &lt;kgene@kernel.org&gt;
Cc: Alexandre Courbot &lt;gnurou@gmail.com&gt;
Cc: Brian Norris &lt;computersforpeace@gmail.com&gt;
Cc: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Cc: Sudeep Holla &lt;sudeep.holla@arm.com&gt;
Cc: Lorenzo Pieralisi &lt;lorenzo.pieralisi@arm.com&gt;
Cc: Nicolas Pitre &lt;nicolas.pitre@linaro.org&gt;
Cc: Olof Johansson &lt;olof@lixom.net&gt;
Cc: Vladimir Zapolskiy &lt;vladimir_zapolskiy@mentor.com&gt;
Cc: Rabin Vincent &lt;rabin@rab.in&gt;
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-omap@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: bcm-kernel-feedback-list@broadcom.com
Acked-by: Gregory Fong &lt;gregory.0xf0@gmail.com&gt;
Acked-by: Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
Acked-by: H Hartley Sweeten &lt;hsweeten@visionengravers.com&gt;
Acked-by: Tony Lindgren &lt;tony@atomide.com&gt;
Acked-by: Krzysztof Kozlowski &lt;k.kozlowski@samsung.com&gt;
Acked-by: Lee Jones &lt;lee.jones@linaro.org&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>mfd: vexpress: Remove non-DT code</title>
<updated>2015-03-03T16:41:14Z</updated>
<author>
<name>Pawel Moll</name>
<email>pawel.moll@arm.com</email>
</author>
<published>2015-01-20T17:25:15Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=f0bd7ccc413f6de0947d6b8e998ef1fb787513ff'/>
<id>urn:sha1:f0bd7ccc413f6de0947d6b8e998ef1fb787513ff</id>
<content type='text'>
Now, as all VE platforms have to be booted with DT,
the code handling non-DT case can be removed.

Signed-off-by: Pawel Moll &lt;pawel.moll@arm.com&gt;
Signed-off-by: Lee Jones &lt;lee.jones@linaro.org&gt;
</content>
</entry>
<entry>
<title>of: Eliminate of_allnodes list</title>
<updated>2014-11-04T13:29:38Z</updated>
<author>
<name>Grant Likely</name>
<email>grant.likely@linaro.org</email>
</author>
<published>2014-10-03T15:28:27Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=5063e25a302e6a83f6590d9a06bd5f6400b17430'/>
<id>urn:sha1:5063e25a302e6a83f6590d9a06bd5f6400b17430</id>
<content type='text'>
The device tree structure is composed of two lists; the 'allnodes' list
which is a singly linked list containing every node in the tree, and the
child-&gt;parent structure where each parent node has a singly linked list
of children. All of the data in the allnodes list can be easily
reproduced with the parent-child lists, so of_allnodes is actually
unnecessary. Remove it entirely which saves a bit of memory and
simplifies the data structure quite a lot.

Signed-off-by: Grant Likely &lt;grant.likely@linaro.org&gt;
Cc: Rob Herring &lt;robh@kernel.org&gt;
Cc: Gaurav Minocha &lt;gaurav.minocha.os@gmail.com&gt;
Cc: Pantelis Antoniou &lt;pantelis@pantelis.antoniou@konsulko.com&gt;
</content>
</entry>
<entry>
<title>ARM: vexpress: move HBI check to sysreg driver</title>
<updated>2014-05-15T16:02:21Z</updated>
<author>
<name>Pawel Moll</name>
<email>pawel.moll@arm.com</email>
</author>
<published>2014-02-06T14:33:44Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=6b2c31c71d6fa8896c5f3f2354d790a5bd3f0a1e'/>
<id>urn:sha1:6b2c31c71d6fa8896c5f3f2354d790a5bd3f0a1e</id>
<content type='text'>
The last reason for static memory mapping is the HBI (board
identification number) check early in the machine code.

Moving the check to the sysreg driver makes it possible to
completely remove the early mapping and init functions.

Signed-off-by: Pawel Moll &lt;pawel.moll@arm.com&gt;
Acked-by: Lee Jones &lt;lee.jones@linaro.org&gt;
</content>
</entry>
<entry>
<title>mfd: vexpress: Define the device as MFD cells</title>
<updated>2014-05-15T16:02:19Z</updated>
<author>
<name>Pawel Moll</name>
<email>pawel.moll@arm.com</email>
</author>
<published>2014-04-23T09:49:31Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=974cc7b93441a0e78f030495436d1be7eb7c208d'/>
<id>urn:sha1:974cc7b93441a0e78f030495436d1be7eb7c208d</id>
<content type='text'>
This patch - finally, after over 6 months! :-( - addresses
Samuel's request to split the vexpress-sysreg driver into
smaller portions and define the device in a form of MFD
cells:

* LEDs code has been completely removed and replaced with
  "gpio-leds" nodes in the tree (referencing dedicated
  GPIO subnodes in sysreg - bindings documentation updated);
  this also better fits the reality as some variants of the
  motherboard don't have all the LEDs populated

* syscfg bridge code has been extracted into a separate
  driver (placed in drivers/misc for no better place)

* all the ID &amp; MISC registers are defined as sysconf
  making them available for other drivers should they need
  to use them (and also to the user via /sys/kernel/debug/regmap
  which can be helpful in platform debugging)

Signed-off-by: Pawel Moll &lt;pawel.moll@arm.com&gt;
Acked-by: Lee Jones &lt;lee.jones@linaro.org&gt;
</content>
</entry>
<entry>
<title>mfd: vexpress: Convert custom func API to regmap</title>
<updated>2014-05-15T16:02:18Z</updated>
<author>
<name>Pawel Moll</name>
<email>pawel.moll@arm.com</email>
</author>
<published>2014-04-30T15:46:29Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=3b9334ac835bb431e2186645230c9f1eb94b5d49'/>
<id>urn:sha1:3b9334ac835bb431e2186645230c9f1eb94b5d49</id>
<content type='text'>
Components of the Versatile Express platform (configuration
microcontrollers on motherboard and daughterboards in particular)
talk to each other over a custom configuration bus. They
provide miscellaneous functions (from clock generator control
to energy sensors) which are represented as platform devices
(and Device Tree nodes). The transactions on the bus can
be generated by different "bridges" in the system, some
of which are universal for the whole platform (for the price
of high transfer latencies), others restricted to a subsystem
(but much faster).

Until now drivers for such functions were using custom "func"
API, which is being replaced in this patch by regmap calls.
This required:

* a rework (and move to drivers/bus directory, as suggested
  by Samuel and Arnd) of the config bus core, which is much
  simpler now and uses device model infrastructure (class)
  to keep track of the bridges; non-DT case (soon to be
  retired anyway) is simply covered by a special device
  registration function

* the new config-bus driver also takes over device population,
  so there is no need for special matching table for
  of_platform_populate nor "simple-bus" hack in the arm64
  model dtsi file (relevant bindings documentation has
  been updated); this allows all the vexpress devices
  fit into normal device model, making it possible
  to remove plenty of early inits and other hacks in
  the near future

* adaptation of the syscfg bridge implementation in the
  sysreg driver, again making it much simpler; there is
  a special case of the "energy" function spanning two
  registers, where they should be both defined in the tree
  now, but backward compatibility is maintained in the code

* modification of the relevant drivers:

  * hwmon - just a straight-forward API change
  * power/reset driver - API change
  * regulator - API change plus error handling
    simplification
  * osc clock driver - this one required larger rework
    in order to turn in into a standard platform driver

Signed-off-by: Pawel Moll &lt;pawel.moll@arm.com&gt;
Acked-by: Mark Brown &lt;broonie@linaro.org&gt;
Acked-by: Lee Jones &lt;lee.jones@linaro.org&gt;
Acked-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Acked-by: Mike Turquette &lt;mturquette@linaro.org&gt;
</content>
</entry>
<entry>
<title>mfd: vexpress-sysreg: Initialize 'site' variable</title>
<updated>2014-03-19T08:58:15Z</updated>
<author>
<name>Semen Protsenko</name>
<email>semen.protsenko@linaro.org</email>
</author>
<published>2014-02-13T16:39:54Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=63f5d2e8b227d54d6e0a750a4b9670a899fa1a05'/>
<id>urn:sha1:63f5d2e8b227d54d6e0a750a4b9670a899fa1a05</id>
<content type='text'>
'site' variable should be initialized with 0 so that when 'site'
property doesn't exist in DTB it can be handled correctly.

'0' value means board site number is motherboard (see
Documentation/devicetree/bindings/arm/vexpress.txt for details).

Signed-off-by: Semen Protsenko &lt;semen.protsenko@linaro.org&gt;
Signed-off-by: Lee Jones &lt;lee.jones@linaro.org&gt;
</content>
</entry>
<entry>
<title>mfd: vexpress: Make the driver optional for arm and arm64</title>
<updated>2013-06-19T09:32:00Z</updated>
<author>
<name>Pawel Moll</name>
<email>pawel.moll@arm.com</email>
</author>
<published>2013-06-11T10:56:02Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=8eb12b98163deaafae82e7dde044709919e4fdfa'/>
<id>urn:sha1:8eb12b98163deaafae82e7dde044709919e4fdfa</id>
<content type='text'>
The driver can be used on either arm or arm64 platforms, but
the latter doesn't have any platform-specific configuration
options, so it must be possible to manually enable the driver.

As the gpiolib is optional for arm64 arch, the gpio/led code
must be compiled conditionally.

Signed-off-by: Pawel Moll &lt;pawel.moll@arm.com&gt;
Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Signed-off-by: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>mfd: vexpress: Give the "leds-gpio" device a real parent</title>
<updated>2013-04-09T10:09:09Z</updated>
<author>
<name>Pawel Moll</name>
<email>pawel.moll@arm.com</email>
</author>
<published>2013-04-03T12:26:27Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=b99877f3f7e1c8b7e6d133b56c8bcea4e2f7be80'/>
<id>urn:sha1:b99877f3f7e1c8b7e6d133b56c8bcea4e2f7be80</id>
<content type='text'>
The registration of the "leds-gpio" device was using
"vexpress_sysreg_dev" as a parent before it was actually
set to something different than NULL.

Trivial fix by reordering the code.

Reported-by: Lorenzo Pieralisi &lt;lorenzo.pieralisi@arm.com&gt;
Signed-off-by: Pawel Moll &lt;pawel.moll@arm.com&gt;
Signed-off-by: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
</content>
</entry>
</feed>
