[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <be95cc2d-f548-4c71-a57b-8107009b8776@kernel.org>
Date: Sun, 1 Jun 2025 17:42:41 +0200
From: Krzysztof Kozlowski <krzk@...nel.org>
To: Abd-Alrhman Masalkhi <abd.masalkhi@...il.com>,
linux-kernel@...r.kernel.org, devicetree@...r.kernel.org
Cc: arnd@...db.de, gregkh@...uxfoundation.org, robh@...nel.org,
krzk+dt@...nel.org, conor+dt@...nel.org
Subject: Re: [PATCH v2 1/3] dt-bindings: eeprom: Add ST M24LR control
interface
On 01/06/2025 17:30, Abd-Alrhman Masalkhi wrote:
> Add support for the control interface of STMicroelectronics M24LR
> RFID/NFC EEPROM chips.
>
> Signed-off-by: Abd-Alrhman Masalkhi <abd.masalkhi@...il.com>
> ---
> .../devicetree/bindings/eeprom/st,m24lr.yaml | 72 +++++++++++++++++++
Do not send next version while the discussion is still happening.
> 1 file changed, 72 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/eeprom/st,m24lr.yaml
I still do not understand what is this device exactly. You said this is
not EEPROM, so my advice of putting this in eeprom seems not correct.
>
> diff --git a/Documentation/devicetree/bindings/eeprom/st,m24lr.yaml b/Documentation/devicetree/bindings/eeprom/st,m24lr.yaml
> new file mode 100644
> index 000000000000..6d72325865d6
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/eeprom/st,m24lr.yaml
> @@ -0,0 +1,72 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/eeprom/st,m24lr.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: STMicroelectronics M24LR Series NFC/RFID EEPROM Control Interface
> +
> +maintainers:
> + - Abd-Alrhman Masalkhi <abd.masalkhi@...il.com>
> +
> +description: |
Do not need '|' unless you need to preserve formatting.
> + STMicroelectronics M24LR series are dual-interface (RF + I2C)
> + EEPROM chips. These devices support I2C-based access to both
> + memory and a system area that controls authentication and configuration.
> + They expose two I2C addresses: one for EEPROM memory and one for the
> + system control area (e.g., UID, password management).
e.g., -> e.g.
> +
> +allOf:
> + - $ref: ../i2c/i2c-mux.yaml#
Full path, so /schemas/i2c/i2c-mux.... but this is not an i2c mux, at
least not in your description, so something feels incomplete or incorrect.
> +
> +properties:
> + compatible:
> + enum:
> + - st,m24lr04e-r
> + - st,m24lr16e-r
> + - st,m24lr64e-r
What does "r" stand for?
> +
> + reg:
> + maxItems: 1
> +
> + pagesize:
> + enum: [1, 4, 8, 16, 32, 64, 128, 256]
> + default: 1
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: >
Do not need '>' unless you need to preserve formatting.
> + Maximum number of bytes that can be written in one I2C transaction.
> + the default is 1.
Don't repeat constraints in free form text. I already asked for this.
> +
> +required:
> + - compatible
> + - reg
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + i2cmux@57 {
Nothing in commit msg or binding description explained why this is
i2c-mux. i2c-mux is not an eeprom. Exposing two I2C addresses also does
not mean it is mux - we already have such devices and they were never
called mux.
> + compatible = "st,m24lr04e-r";
> + reg = <0x57>;
Where is the second address? It is supposed to be here.
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + i2c@0 {
> + reg = <0x0>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + eeprom@53 {
> + compatible = "atmel,24c04";
And even if there was a mux here, then where is the second device?
> + reg = <0x53>;
> + address-width = <16>;
> + pagesize = <4>;
> + };
> + };
> + };
> + };
> +...
Best regards,
Krzysztof
Powered by blists - more mailing lists