diff mbox series

[2/2] eeprom: at24: add ST M24C64-D Additional Write lockable page support

Message ID 20231013063008.2879314-2-alexander.stein@ew.tq-group.com
State New
Headers show
Series [1/2] dt-bindings: at24: add ST M24C64-D Additional Write lockable page | expand

Commit Message

Alexander Stein Oct. 13, 2023, 6:30 a.m. UTC
The ST M24C64-D behaves as a regular M24C64, except for the -D variant
which uses up another I2C address for Additional Write lockable page.
This page is 32 Bytes long and can contain additional data. Add entry
for it, so users can describe that page in DT. Note that users still
have to describe the main M24C64 area separately as that is on separate
I2C address from this page.

Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
---
This is a copy & paste of [1] for ST M24C64-D. I reused the same pattern and
also used Marek's commit message.

[1] https://lore.kernel.org/all/20231010190926.57674-2-marex@denx.de/

 drivers/misc/eeprom/at24.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Bartosz Golaszewski Oct. 16, 2023, 6:50 a.m. UTC | #1
On Fri, Oct 13, 2023 at 8:30 AM Alexander Stein
<alexander.stein@ew.tq-group.com> wrote:
>
> The ST M24C64-D behaves as a regular M24C64, except for the -D variant
> which uses up another I2C address for Additional Write lockable page.
> This page is 32 Bytes long and can contain additional data. Add entry
> for it, so users can describe that page in DT. Note that users still
> have to describe the main M24C64 area separately as that is on separate
> I2C address from this page.
>
> Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
> ---
> This is a copy & paste of [1] for ST M24C64-D. I reused the same pattern and
> also used Marek's commit message.
>
> [1] https://lore.kernel.org/all/20231010190926.57674-2-marex@denx.de/
>
>  drivers/misc/eeprom/at24.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/drivers/misc/eeprom/at24.c b/drivers/misc/eeprom/at24.c
> index 616e63efc9864..f61a80597a22d 100644
> --- a/drivers/misc/eeprom/at24.c
> +++ b/drivers/misc/eeprom/at24.c
> @@ -196,6 +196,8 @@ AT24_CHIP_DATA(at24_data_24c32d_wlp, 32, AT24_FLAG_ADDR16);
>  AT24_CHIP_DATA(at24_data_24cs32, 16,
>         AT24_FLAG_ADDR16 | AT24_FLAG_SERIAL | AT24_FLAG_READONLY);
>  AT24_CHIP_DATA(at24_data_24c64, 65536 / 8, AT24_FLAG_ADDR16);
> +/* M24C64-D Additional Write lockable page (M24C64-D order codes) */
> +AT24_CHIP_DATA(at24_data_24c64d_wlp, 32, AT24_FLAG_ADDR16);
>  AT24_CHIP_DATA(at24_data_24cs64, 16,
>         AT24_FLAG_ADDR16 | AT24_FLAG_SERIAL | AT24_FLAG_READONLY);
>  AT24_CHIP_DATA(at24_data_24c128, 131072 / 8, AT24_FLAG_ADDR16);
> @@ -227,6 +229,7 @@ static const struct i2c_device_id at24_ids[] = {
>         { "24c32d-wl",  (kernel_ulong_t)&at24_data_24c32d_wlp },
>         { "24cs32",     (kernel_ulong_t)&at24_data_24cs32 },
>         { "24c64",      (kernel_ulong_t)&at24_data_24c64 },
> +       { "24c64-wl",   (kernel_ulong_t)&at24_data_24c64d_wlp },
>         { "24cs64",     (kernel_ulong_t)&at24_data_24cs64 },
>         { "24c128",     (kernel_ulong_t)&at24_data_24c128 },
>         { "24c256",     (kernel_ulong_t)&at24_data_24c256 },
> @@ -258,6 +261,7 @@ static const struct of_device_id at24_of_match[] = {
>         { .compatible = "atmel,24c32d-wl",      .data = &at24_data_24c32d_wlp },
>         { .compatible = "atmel,24cs32",         .data = &at24_data_24cs32 },
>         { .compatible = "atmel,24c64",          .data = &at24_data_24c64 },
> +       { .compatible = "atmel,24c64d-wl",      .data = &at24_data_24c64d_wlp },
>         { .compatible = "atmel,24cs64",         .data = &at24_data_24cs64 },
>         { .compatible = "atmel,24c128",         .data = &at24_data_24c128 },
>         { .compatible = "atmel,24c256",         .data = &at24_data_24c256 },
> --
> 2.34.1
>

Applied, thanks!

Bart
diff mbox series

Patch

diff --git a/drivers/misc/eeprom/at24.c b/drivers/misc/eeprom/at24.c
index 616e63efc9864..f61a80597a22d 100644
--- a/drivers/misc/eeprom/at24.c
+++ b/drivers/misc/eeprom/at24.c
@@ -196,6 +196,8 @@  AT24_CHIP_DATA(at24_data_24c32d_wlp, 32, AT24_FLAG_ADDR16);
 AT24_CHIP_DATA(at24_data_24cs32, 16,
 	AT24_FLAG_ADDR16 | AT24_FLAG_SERIAL | AT24_FLAG_READONLY);
 AT24_CHIP_DATA(at24_data_24c64, 65536 / 8, AT24_FLAG_ADDR16);
+/* M24C64-D Additional Write lockable page (M24C64-D order codes) */
+AT24_CHIP_DATA(at24_data_24c64d_wlp, 32, AT24_FLAG_ADDR16);
 AT24_CHIP_DATA(at24_data_24cs64, 16,
 	AT24_FLAG_ADDR16 | AT24_FLAG_SERIAL | AT24_FLAG_READONLY);
 AT24_CHIP_DATA(at24_data_24c128, 131072 / 8, AT24_FLAG_ADDR16);
@@ -227,6 +229,7 @@  static const struct i2c_device_id at24_ids[] = {
 	{ "24c32d-wl",	(kernel_ulong_t)&at24_data_24c32d_wlp },
 	{ "24cs32",	(kernel_ulong_t)&at24_data_24cs32 },
 	{ "24c64",	(kernel_ulong_t)&at24_data_24c64 },
+	{ "24c64-wl",	(kernel_ulong_t)&at24_data_24c64d_wlp },
 	{ "24cs64",	(kernel_ulong_t)&at24_data_24cs64 },
 	{ "24c128",	(kernel_ulong_t)&at24_data_24c128 },
 	{ "24c256",	(kernel_ulong_t)&at24_data_24c256 },
@@ -258,6 +261,7 @@  static const struct of_device_id at24_of_match[] = {
 	{ .compatible = "atmel,24c32d-wl",	.data = &at24_data_24c32d_wlp },
 	{ .compatible = "atmel,24cs32",		.data = &at24_data_24cs32 },
 	{ .compatible = "atmel,24c64",		.data = &at24_data_24c64 },
+	{ .compatible = "atmel,24c64d-wl",	.data = &at24_data_24c64d_wlp },
 	{ .compatible = "atmel,24cs64",		.data = &at24_data_24cs64 },
 	{ .compatible = "atmel,24c128",		.data = &at24_data_24c128 },
 	{ .compatible = "atmel,24c256",		.data = &at24_data_24c256 },