Message ID | 20231010184827.1213507-1-anshulusr@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | [v4,1/2] dt-bindings: input: bindings for Adafruit Seesaw Gamepad | expand |
On 10/10/2023 20:48, Anshul Dalal wrote: > Adds bindings for the Adafruit Seesaw Gamepad. > > The gamepad functions as an i2c device with the default address of 0x50 > and has an IRQ pin that can be enabled in the driver to allow for a rising > edge trigger on each button press or joystick movement. > > Product page: > https://www.adafruit.com/product/5743 > Arduino driver: > https://github.com/adafruit/Adafruit_Seesaw > > Signed-off-by: Anshul Dalal <anshulusr@gmail.com> > --- > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Best regards, Krzysztof
On Thu, Oct 12, 2023 at 12:29:58AM +0530, Anshul Dalal wrote: > Hello, > > On 10/11/23 21:45, Conor Dooley wrote: > > Hey, > > > > On Wed, Oct 11, 2023 at 12:18:23AM +0530, Anshul Dalal wrote: > >> Adds bindings for the Adafruit Seesaw Gamepad. > >> > >> The gamepad functions as an i2c device with the default address of 0x50 > >> and has an IRQ pin that can be enabled in the driver to allow for a rising > >> edge trigger on each button press or joystick movement. > >> > >> Product page: > >> https://www.adafruit.com/product/5743 > >> Arduino driver: > >> https://github.com/adafruit/Adafruit_Seesaw > >> > >> Signed-off-by: Anshul Dalal <anshulusr@gmail.com> > >> --- > >> > >> Changes for v4: > >> - Fixed the URI for the id field > >> - Added `interrupts` property > >> > >> Changes for v3: > >> - Updated id field to reflect updated file name from previous version > >> - Added `reg` property > >> > >> Changes for v2: > >> - Renamed file to `adafruit,seesaw-gamepad.yaml` > >> - Removed quotes for `$id` and `$schema` > >> - Removed "Bindings for" from the description > >> - Changed node name to the generic name "joystick" > >> - Changed compatible to 'adafruit,seesaw-gamepad' instead of > >> 'adafruit,seesaw_gamepad' > >> > >> .../input/adafruit,seesaw-gamepad.yaml | 59 +++++++++++++++++++ > >> 1 file changed, 59 insertions(+) > >> create mode 100644 Documentation/devicetree/bindings/input/adafruit,seesaw-gamepad.yaml > >> > >> diff --git a/Documentation/devicetree/bindings/input/adafruit,seesaw-gamepad.yaml b/Documentation/devicetree/bindings/input/adafruit,seesaw-gamepad.yaml > >> new file mode 100644 > >> index 000000000000..e8e676006d2f > >> --- /dev/null > >> +++ b/Documentation/devicetree/bindings/input/adafruit,seesaw-gamepad.yaml > >> @@ -0,0 +1,59 @@ > >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > >> +%YAML 1.2 > >> +--- > >> +$id: http://devicetree.org/schemas/input/adafruit,seesaw-gamepad.yaml# > >> +$schema: http://devicetree.org/meta-schemas/core.yaml# > >> + > >> +title: Adafruit Mini I2C Gamepad with seesaw > > > > Binding mostly looks good to me. My main question is what is a seesaw? > > > > Seesaw is a universal framework that enables extending I/O capabilities > of the i2c master devices with a compatible breakout board. As it > relates to the binding, this gamepad uses an AVR ATtiny816 > microcontroller that reads the data from the buttons and the joystick > and sends the data to the master over i2c using the Seesaw framework. Right. Not a framework I was aware of, thanks for explaining. > > >> + > >> +maintainers: > >> + - Anshul Dalal <anshulusr@gmail.com> > >> + > >> +description: | > >> + Adafruit Mini I2C Gamepad > >> + > >> + +-----------------------------+ > >> + | ___ | > >> + | / \ (X) | > >> + | | S | __ __ (Y) (A) | > >> + | \___/ |ST| |SE| (B) | > >> + | | > >> + +-----------------------------+ > >> + > >> + S -> 10-bit percision bidirectional analog joystick > >> + ST -> Start > >> + SE -> Select > >> + X, A, B, Y -> Digital action buttons > >> + > >> + Product page: https://www.adafruit.com/product/5743 > >> + Arduino Driver: https://github.com/adafruit/Adafruit_Seesaw > > > > I'm not really sure what the arduino driver has to do with the binding. > > Why is a link to it more relevant than the freebsd driver, or the linux > > driver etc? Is there info about how the pad works in the arduino driver > > > > Otherwise, this seems good to me. > The Arduino driver I linked was the only resource that had the > implementation of the seesaw framework as well as the example code > specific to this device: > https://github.com/adafruit/Adafruit_Seesaw/tree/master/examples/Mini_I2C_Gamepad_QT > On further thought, a link to the accompanying document from the > manufacturer (https://cdn-learn.adafruit.com/downloads/pdf/gamepad-qt.pdf) > might be more relevant for the binding which includes the hardware > description as well as links to the above-mentioned Arduino driver. A link to the manufacturer docs would be nice & if, as you say, the arduino driver was a useful resource for understanding the hardware then I suppose it can stay too :) Reviewed-by: Conor Dooley <conor.dooley@microchip.com> Thanks, Conor.
diff --git a/Documentation/devicetree/bindings/input/adafruit,seesaw-gamepad.yaml b/Documentation/devicetree/bindings/input/adafruit,seesaw-gamepad.yaml new file mode 100644 index 000000000000..e8e676006d2f --- /dev/null +++ b/Documentation/devicetree/bindings/input/adafruit,seesaw-gamepad.yaml @@ -0,0 +1,59 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/input/adafruit,seesaw-gamepad.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Adafruit Mini I2C Gamepad with seesaw + +maintainers: + - Anshul Dalal <anshulusr@gmail.com> + +description: | + Adafruit Mini I2C Gamepad + + +-----------------------------+ + | ___ | + | / \ (X) | + | | S | __ __ (Y) (A) | + | \___/ |ST| |SE| (B) | + | | + +-----------------------------+ + + S -> 10-bit percision bidirectional analog joystick + ST -> Start + SE -> Select + X, A, B, Y -> Digital action buttons + + Product page: https://www.adafruit.com/product/5743 + Arduino Driver: https://github.com/adafruit/Adafruit_Seesaw + +properties: + compatible: + const: adafruit,seesaw-gamepad + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + description: + The gamepad's IRQ pin triggers a rising edge if interrupts are enabled. + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + i2c { + #address-cells = <1>; + #size-cells = <0>; + + joystick@50 { + compatible = "adafruit,seesaw-gamepad"; + reg = <0x50>; + }; + };
Adds bindings for the Adafruit Seesaw Gamepad. The gamepad functions as an i2c device with the default address of 0x50 and has an IRQ pin that can be enabled in the driver to allow for a rising edge trigger on each button press or joystick movement. Product page: https://www.adafruit.com/product/5743 Arduino driver: https://github.com/adafruit/Adafruit_Seesaw Signed-off-by: Anshul Dalal <anshulusr@gmail.com> --- Changes for v4: - Fixed the URI for the id field - Added `interrupts` property Changes for v3: - Updated id field to reflect updated file name from previous version - Added `reg` property Changes for v2: - Renamed file to `adafruit,seesaw-gamepad.yaml` - Removed quotes for `$id` and `$schema` - Removed "Bindings for" from the description - Changed node name to the generic name "joystick" - Changed compatible to 'adafruit,seesaw-gamepad' instead of 'adafruit,seesaw_gamepad' .../input/adafruit,seesaw-gamepad.yaml | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Documentation/devicetree/bindings/input/adafruit,seesaw-gamepad.yaml