Re: [PATCH] nvmem: core: Implement force_ro sysfs attribute

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jun 21, 2024 at 06:02:14PM +0200, Marek Vasut wrote:
> Implement "force_ro" sysfs attribute to allow users to set read-write
> devices as read-only and back to read-write from userspace. The choice
> of the name is based on MMC core 'force_ro' attribute.
> 
> This solves a situation where an AT24 I2C EEPROM with GPIO based nWP
> signal may have to be occasionally updated. Such I2C EEPROM device is
> usually set as read-only during most of the regular system operation,
> but in case it has to be updated in a controlled manner, it could be
> unlocked using this new "force_ro" sysfs attribute and then re-locked
> again.
> 
> The "read-only" DT property and config->read_only configuration is
> respected and is used to set default state of the device, read-only
> or read-write, for devices which do implement .reg_write function.
> For devices which do not implement .reg_write function, the device
> is unconditionally read-only and the "force_ro" attribute is not
> visible.
> 
> Signed-off-by: Marek Vasut <marex@xxxxxxx>
> ---
> Cc: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
> Cc: Bartosz Golaszewski <brgl@xxxxxxxx>
> Cc: Arnd Bergmann <arnd@xxxxxxxx>
> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Cc: linux-i2c@xxxxxxxxxxxxxxx
> ---
>  drivers/nvmem/core.c      | 44 +++++++++++++++++++++++++++++++++++++++
>  drivers/nvmem/internals.h |  1 +
>  2 files changed, 45 insertions(+)

No Documentation/ABI/ update for the new sysfs file?

> 
> diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
> index e1ec3b7200d7b..d263871b66dca 100644
> --- a/drivers/nvmem/core.c
> +++ b/drivers/nvmem/core.c
> @@ -184,7 +184,30 @@ static ssize_t type_show(struct device *dev,
>  
>  static DEVICE_ATTR_RO(type);
>  
> +static ssize_t force_ro_show(struct device *dev, struct device_attribute *attr,
> +			     char *buf)
> +{
> +	struct nvmem_device *nvmem = to_nvmem_device(dev);
> +
> +	return snprintf(buf, PAGE_SIZE, "%d\n", nvmem->read_only);

sysfs_emit() please.

thanks,

greg k-h




[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux