From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Anshul Dalal <anshulusr@gmail.com>,
linux-input@vger.kernel.org, devicetree@vger.kernel.org
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Conor Dooley <conor+dt@kernel.org>,
Shuah Khan <skhan@linuxfoundation.org>,
linux-kernel-mentees@lists.linuxfoundation.org
Subject: Re: [PATCH 1/2] dt-bindings: Add bindings for Adafruit Seesaw Gamepad
Date: Sat, 7 Oct 2023 16:52:25 +0200 [thread overview]
Message-ID: <a84ab922-cf44-423c-bf63-a7623a90270e@linaro.org> (raw)
In-Reply-To: <20231007144052.1535417-1-anshulusr@gmail.com>
On 07/10/2023 16:40, Anshul Dalal wrote:
> A simple driver for a mini gamepad that communicates over i2c, the gamepad
> has bidirectional thumb stick input and six buttons.
Thank you for your patch. There is something to discuss/improve.
Please use subject prefixes matching the subsystem. You can get them for
example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory
your patch is touching.
>
> The gamepad chip utilizes the open framework from Adafruit called 'Seesaw'
> to transmit the ADC data for the joystick and digital pin state for the
> buttons. I have only implemented the functionality required to receive the
> thumb stick and button state.
>
> Steps in reading the gamepad state over i2c:
> 1. Reset the registers
> 2. Set the pin mode of the pins specified by the `BUTTON_MASK` to input
> `BUTTON_MASK`: A bit-map for the six digital pins internally
> connected to the joystick buttons.
> 3. Enable internal pullup resistors for the `BUTTON_MASK`
> 4. Bulk set the pin state HIGH for `BUTTON_MASK`
> 5. Poll the device for button and joystick state done by:
> `seesaw_read_data(struct i2c_client *client, struct seesaw_data *data)`
This describes driver, not bindings or hardware Please instead describe
hardware.
>
> Product page:
> https://www.adafruit.com/product/5743
> Arduino driver:
> https://github.com/adafruit/Adafruit_Seesaw
>
> Tested on RPi Zero 2W
How can you test bindings on RPi Zero 2W? Somehow I don't believe you,
see below.
>
> Signed-off-by: Anshul Dalal <anshulusr@gmail.com>
> ---
> .../bindings/input/adafruit_seesaw.yaml | 45 +++++++++++++++++++
> 1 file changed, 45 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/input/adafruit_seesaw.yaml
>
> diff --git a/Documentation/devicetree/bindings/input/adafruit_seesaw.yaml b/Documentation/devicetree/bindings/input/adafruit_seesaw.yaml
> new file mode 100644
> index 000000000000..1d00d9da637a
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/input/adafruit_seesaw.yaml
Use compatible syntax, so vendor-prefix,device-name.yaml
> @@ -0,0 +1,45 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/input/adafruit_seesaw.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
Drop quotes.
It does not look like you tested the bindings, at least after quick
look. Please run `make dt_binding_check` (see
Documentation/devicetree/bindings/writing-schema.rst for instructions).
Maybe you need to update your dtschema and yamllint.
> +
> +title: Adafruit Mini I2C Gamepad with seesaw
> +
> +maintainers:
> + - Anshul Dalal <anshulusr@gmail.com>
> +
> +description: |
> + Bindings for Adafruit Mini I2C Gamepad
Drop "Bindings for"
> +
> + +-----------------------------+
> + | ___ |
> + | / \ (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
> +
> +required:
> + - compatible
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + seesaw_gamepad@50 {
No underscores, generic node names.
Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
> + compatible = "adafruit,seesaw_gamepad";
> + reg = <0x50>;
Second hint that you did not test it...
> + };
Best regards,
Krzysztof
next prev parent reply other threads:[~2023-10-07 14:52 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-07 14:40 [PATCH 1/2] dt-bindings: Add bindings for Adafruit Seesaw Gamepad Anshul Dalal
2023-10-07 14:40 ` [PATCH 2/2] input: add Adafruit Seesaw Gamepad driver Anshul Dalal
2023-10-07 14:56 ` Krzysztof Kozlowski
2023-10-07 16:13 ` Anshul Dalal
2023-10-08 10:25 ` Krzysztof Kozlowski
2023-10-07 14:52 ` Krzysztof Kozlowski [this message]
2023-10-07 15:23 ` [PATCH 1/2] dt-bindings: Add bindings for Adafruit Seesaw Gamepad Rob Herring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a84ab922-cf44-423c-bf63-a7623a90270e@linaro.org \
--to=krzysztof.kozlowski@linaro.org \
--cc=anshulusr@gmail.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.torokhov@gmail.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel-mentees@lists.linuxfoundation.org \
--cc=robh+dt@kernel.org \
--cc=skhan@linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).