Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 536b5603 authored by Mark Brown's avatar Mark Brown
Browse files

Merge tag 'ib-mfd-regmap-v4.3' of...

Merge tag 'ib-mfd-regmap-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd into regmap-irq-hdr

Immutable branch between MFD and Regmap due for v4.3
parents 6ff33f39 b4fe8ba7
Loading
Loading
Loading
Loading
+25 −15
Original line number Diff line number Diff line
@@ -21,8 +21,8 @@ exact way to do it depends on the GPIO controller providing the GPIOs, see the
device tree bindings for your controller.

GPIOs mappings are defined in the consumer device's node, in a property named
<function>-gpios, where <function> is the function the driver will request
through gpiod_get(). For example:
either <function>-gpios or <function>-gpio, where <function> is the function
the driver will request through gpiod_get(). For example:

	foo_device {
		compatible = "acme,foo";
@@ -31,7 +31,7 @@ through gpiod_get(). For example:
			    <&gpio 16 GPIO_ACTIVE_HIGH>, /* green */
			    <&gpio 17 GPIO_ACTIVE_HIGH>; /* blue */

		power-gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
		power-gpio = <&gpio 1 GPIO_ACTIVE_LOW>;
	};

This property will make GPIOs 15, 16 and 17 available to the driver under the
@@ -39,15 +39,24 @@ This property will make GPIOs 15, 16 and 17 available to the driver under the

	struct gpio_desc *red, *green, *blue, *power;

	red = gpiod_get_index(dev, "led", 0);
	green = gpiod_get_index(dev, "led", 1);
	blue = gpiod_get_index(dev, "led", 2);
	red = gpiod_get_index(dev, "led", 0, GPIOD_OUT_HIGH);
	green = gpiod_get_index(dev, "led", 1, GPIOD_OUT_HIGH);
	blue = gpiod_get_index(dev, "led", 2, GPIOD_OUT_HIGH);

	power = gpiod_get(dev, "power");
	power = gpiod_get(dev, "power", GPIOD_OUT_HIGH);

The led GPIOs will be active-high, while the power GPIO will be active-low (i.e.
gpiod_is_active_low(power) will be true).

The second parameter of the gpiod_get() functions, the con_id string, has to be
the <function>-prefix of the GPIO suffixes ("gpios" or "gpio", automatically
looked up by the gpiod functions internally) used in the device tree. With above
"led-gpios" example, use the prefix without the "-" as con_id parameter: "led".

Internally, the GPIO subsystem prefixes the GPIO suffix ("gpios" or "gpio")
with the string passed in con_id to get the resulting string
(snprintf(... "%s-%s", con_id, gpio_suffixes[]).

ACPI
----
ACPI also supports function names for GPIOs in a similar fashion to DT.
@@ -142,13 +151,14 @@ The driver controlling "foo.0" will then be able to obtain its GPIOs as follows:

	struct gpio_desc *red, *green, *blue, *power;

	red = gpiod_get_index(dev, "led", 0);
	green = gpiod_get_index(dev, "led", 1);
	blue = gpiod_get_index(dev, "led", 2);
	red = gpiod_get_index(dev, "led", 0, GPIOD_OUT_HIGH);
	green = gpiod_get_index(dev, "led", 1, GPIOD_OUT_HIGH);
	blue = gpiod_get_index(dev, "led", 2, GPIOD_OUT_HIGH);

	power = gpiod_get(dev, "power");
	gpiod_direction_output(power, 1);
	power = gpiod_get(dev, "power", GPIOD_OUT_HIGH);

Since the "power" GPIO is mapped as active-low, its actual signal will be 0
after this code. Contrary to the legacy integer GPIO interface, the active-low
property is handled during mapping and is thus transparent to GPIO consumers.
Since the "led" GPIOs are mapped as active-high, this example will switch their
signals to 1, i.e. enabling the LEDs. And for the "power" GPIO, which is mapped
as active-low, its actual signal will be 0 after this code. Contrary to the legacy
integer GPIO interface, the active-low property is handled during mapping and is
thus transparent to GPIO consumers.
+3 −0
Original line number Diff line number Diff line
@@ -39,6 +39,9 @@ device that displays digits), an additional index argument can be specified:
					  const char *con_id, unsigned int idx,
					  enum gpiod_flags flags)

For a more detailed description of the con_id parameter in the DeviceTree case
see Documentation/gpio/board.txt

The flags parameter is used to optionally specify a direction and initial value
for the GPIO. Values can be:

+4 −0
Original line number Diff line number Diff line
@@ -32,6 +32,10 @@ Supported chips:
    Prefix: 'nct6792'
    Addresses scanned: ISA address retrieved from Super I/O registers
    Datasheet: Available from Nuvoton upon request
  * Nuvoton NCT6793D
    Prefix: 'nct6793'
    Addresses scanned: ISA address retrieved from Super I/O registers
    Datasheet: Available from Nuvoton upon request

Authors:
        Guenter Roeck <linux@roeck-us.net>
+2 −2
Original line number Diff line number Diff line
@@ -15,8 +15,8 @@ The updated API replacements are:

DEFINE_STATIC_KEY_TRUE(key);
DEFINE_STATIC_KEY_FALSE(key);
static_key_likely()
statick_key_unlikely()
static_branch_likely()
static_branch_unlikely()

0) Abstract

+2 −2
Original line number Diff line number Diff line
@@ -6452,11 +6452,11 @@ F: drivers/hwmon/ltc4261.c
LTP (Linux Test Project)
M:	Mike Frysinger <vapier@gentoo.org>
M:	Cyril Hrubis <chrubis@suse.cz>
M:	Wanlong Gao <gaowanlong@cn.fujitsu.com>
M:	Wanlong Gao <wanlong.gao@gmail.com>
M:	Jan Stancek <jstancek@redhat.com>
M:	Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
M:	Alexey Kodanev <alexey.kodanev@oracle.com>
L:	ltp-list@lists.sourceforge.net (subscribers-only)
L:	ltp@lists.linux.it (subscribers-only)
W:	http://linux-test-project.github.io/
T:	git git://github.com/linux-test-project/ltp.git
S:	Maintained
Loading