[PATCH 1/3] Device tree binding documentation for gpio-switch
From: martyn.welch@collabora.co.uk (Martyn Welch)
Date: 2015-12-07 21:11:02
Also in:
linux-devicetree, linux-samsung-soc, lkml
On 07/12/15 17:37, Rob Herring wrote:
+Linus W On Fri, Dec 04, 2015 at 05:31:13PM +0000, Martyn Welch wrote:quoted
This patch adds documentation for the gpio-switch binding. This binding provides a mechanism to bind named links to gpio, with the primary purpose of enabling standardised access to switches that might be standard across a group of devices but implemented differently on each device.This is good and what I suggested, but it now makes me wonder if switch is generic enough. This boils down to needing to expose single gpio lines to userspace with a defined function/use. IIRC, there's been some discussion about this before along with improving the userspace interface for GPIO in general. So I'd like to get Linus' thoughts on this.
No problem. Rename gpio-signal?
quoted
Signed-off-by: Martyn Welch <martyn.welch@collabora.co.uk> --- .../devicetree/bindings/misc/gpio-switch.txt | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 Documentation/devicetree/bindings/misc/gpio-switch.txtdiff --git a/Documentation/devicetree/bindings/misc/gpio-switch.txt b/Documentation/devicetree/bindings/misc/gpio-switch.txt new file mode 100644 index 0000000..13528bd --- /dev/null +++ b/Documentation/devicetree/bindings/misc/gpio-switch.txt@@ -0,0 +1,47 @@ +Device-Tree bindings for gpio attached switches. + +This provides a mechanism to provide a named link to specified gpios. This can +be useful in instances such as when theres a need to monitor a switch, which is +common across a family of devices, but attached to different gpios and even +implemented in different ways on differnet devices. + +Required properties: + - compatible = "gpio-switch"; + +Each signal is represented as a sub-node of "gpio-switch". The naming of +sub-nodes is arbitrary. + +Required sub-node properties: + + - label: Name to be given to gpio switch. + - gpios: OF device-tree gpio specification. + +Optional sub-node properties: + + - read-only: Boolean flag to mark the gpio as read-only, i.e. the line + should not be driven by the host.In terms a a switch use, allowing driving it would be an override of the switch. Is that the idea here?
Yeah - since it had become a lot more generic and a lot of switches/signals would probably be implemented with a pull-up resistor of something like that, it seemed to make sense to allow them to be driven as well.
quoted
+ +Example nodes: + + gpio-switch { + compatible = "gpio-switch";Both from a binding and driver perspective, there is no point in grouping these. Each node can simply have this compatible string.
True. I did it this way as this is how gpio-keys is implemented. OK, that has one optional parameter (autorepeat) for the block and this has none. Though I can also see that these probably have less in common than the individual lines used in gpio-keys.
quoted
+ + write-protect { + label = "write-protect"; + gpios = <&gpx3 0 GPIO_ACTIVE_LOW>; + read-only; + }; + + developer-switch { + label = "developer-switch"; + gpios = <&gpx1 3 GPIO_ACTIVE_HIGH>; + read-only; + }; + + recovery-switch { + label = "recovery-switch"; + gpios = <&gpx0 7 GPIO_ACTIVE_LOW>; + read-only; + }; + }; + -- 2.1.4