mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/3] Add control driver for ST M24LR RFID/NFC EEPROM chips
@ 2025-05-31  8:11 Abd-Alrhman Masalkhi
  2025-05-31  8:11 ` [PATCH 1/3] dt-bindings: misc: Add binding for ST M24LR control interface Abd-Alrhman Masalkhi
                   ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: Abd-Alrhman Masalkhi @ 2025-05-31  8:11 UTC (permalink / raw)
  To: linux-kernel, devicetree
  Cc: robh, krzk+dt, conor+dt, arnd, gregkh, abd.masalkhi

This patch series adds support for the control interface of
STMicroelectronics M24LR RFID/NFC EEPROM devices, such as M24LR04E-R.

The device exposes two I2C addresses: one for the control interface
and another for EEPROM memory. To support this design, the driver
acts as an I2C mux (gate), exposing the EEPROM as a child node
handled by the standard at24 driver. Using the mux not only enables
clean separation of functions but also allows synchronize access to
the device.

Patches:
  - Patch 1: Adds Device Tree binding for the control interface.
  - Patch 2: Adds the sysfs-based control driver.
  - Patch 3: Adds a MAINTAINERS entry for the driver.

Tested on: m24lr04e-r 

Signed-off-by: Abd-Alrhman Masalkhi <abd.masalkhi@gmail.com>

Abd-Alrhman Masalkhi (3):
  dt-bindings: misc: Add binding for ST M24LR control interface
  misc: add sysfs control driver for ST M24LR series RFID/NFC chips
  MAINTAINERS: Add entry for ST M24LR control driver

 .../devicetree/bindings/misc/st,m24lr.yaml    |  70 ++
 MAINTAINERS                                   |   8 +
 drivers/misc/Kconfig                          |  15 +
 drivers/misc/Makefile                         |   1 +
 drivers/misc/m24lr_ctl.c                      | 677 ++++++++++++++++++
 5 files changed, 771 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/misc/st,m24lr.yaml
 create mode 100644 drivers/misc/m24lr_ctl.c

-- 
2.43.0


^ permalink raw reply	[flat|nested] 17+ messages in thread
* Re: [PATCH v2 1/3] dt-bindings: eeprom: Add ST M24LR control interface
@ 2025-06-01 15:42 Krzysztof Kozlowski
  2025-06-02  3:48 ` [PATCH v2 1/3] dt-bindings: Add Device Tree binding for " Abd-Alrhman Masalkhi
  0 siblings, 1 reply; 17+ messages in thread
From: Krzysztof Kozlowski @ 2025-06-01 15:42 UTC (permalink / raw)
  To: Abd-Alrhman Masalkhi, linux-kernel, devicetree
  Cc: arnd, gregkh, robh, krzk+dt, conor+dt

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@gmail.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@gmail.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

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2025-06-03  5:20 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-05-31  8:11 [PATCH 0/3] Add control driver for ST M24LR RFID/NFC EEPROM chips Abd-Alrhman Masalkhi
2025-05-31  8:11 ` [PATCH 1/3] dt-bindings: misc: Add binding for ST M24LR control interface Abd-Alrhman Masalkhi
2025-05-31  9:25   ` Rob Herring (Arm)
2025-05-31 13:37   ` Krzysztof Kozlowski
2025-06-01  7:31     ` [PATCH v2 1/3] dt-bindings: Add Device Tree " Abd-Alrhman Masalkhi
2025-05-31  8:11 ` [PATCH 2/3] misc: add sysfs control driver for ST M24LR series RFID/NFC chips Abd-Alrhman Masalkhi
2025-05-31  8:24   ` Greg KH
2025-05-31  8:25   ` Greg KH
2025-06-01  2:19   ` kernel test robot
2025-06-01  3:21   ` kernel test robot
2025-05-31  8:11 ` [PATCH 3/3] MAINTAINERS: Add entry for ST M24LR control driver Abd-Alrhman Masalkhi
2025-05-31 13:37   ` Krzysztof Kozlowski
2025-06-01 15:42 [PATCH v2 1/3] dt-bindings: eeprom: Add ST M24LR control interface Krzysztof Kozlowski
2025-06-02  3:48 ` [PATCH v2 1/3] dt-bindings: Add Device Tree binding for " Abd-Alrhman Masalkhi
2025-06-02  6:28   ` Krzysztof Kozlowski
2025-06-02 17:23     ` Abd-Alrhman Masalkhi
2025-06-02 18:11       ` Krzysztof Kozlowski
2025-06-02 17:47         ` Abd-Alrhman Masalkhi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®