lkml.org 
[lkml]   [2020]   [Jun]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 28/29] nvmem: core: Add nvmem_cell_read_u8()
    Date
    Complement the u16, u32 and u64 helpers with a u8 variant to ease
    accessing byte-sized values.

    This helper will be useful for Realtek Digital Home Center platforms,
    which store some byte and sub-byte sized values in non-volatile memory.

    Signed-off-by: Andreas Färber <afaerber@suse.de>
    ---
    v2: New

    drivers/nvmem/core.c | 15 +++++++++++++++
    include/linux/nvmem-consumer.h | 1 +
    2 files changed, 16 insertions(+)

    diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
    index 95bed31391cd..d6bacc878500 100644
    --- a/drivers/nvmem/core.c
    +++ b/drivers/nvmem/core.c
    @@ -1374,6 +1374,21 @@ static int nvmem_cell_read_common(struct device *dev, const char *cell_id,
    return 0;
    }

    +/**
    + * nvmem_cell_read_u8() - Read a cell value as a u8
    + *
    + * @dev: Device that requests the nvmem cell.
    + * @cell_id: Name of nvmem cell to read.
    + * @val: pointer to output value.
    + *
    + * Return: 0 on success or negative errno.
    + */
    +int nvmem_cell_read_u8(struct device *dev, const char *cell_id, u8 *val)
    +{
    + return nvmem_cell_read_common(dev, cell_id, val, sizeof(*val));
    +}
    +EXPORT_SYMBOL_GPL(nvmem_cell_read_u8);
    +
    /**
    * nvmem_cell_read_u16() - Read a cell value as a u16
    *
    diff --git a/include/linux/nvmem-consumer.h b/include/linux/nvmem-consumer.h
    index 1b311d27c9b8..052293f4cbdb 100644
    --- a/include/linux/nvmem-consumer.h
    +++ b/include/linux/nvmem-consumer.h
    @@ -61,6 +61,7 @@ void nvmem_cell_put(struct nvmem_cell *cell);
    void devm_nvmem_cell_put(struct device *dev, struct nvmem_cell *cell);
    void *nvmem_cell_read(struct nvmem_cell *cell, size_t *len);
    int nvmem_cell_write(struct nvmem_cell *cell, void *buf, size_t len);
    +int nvmem_cell_read_u8(struct device *dev, const char *cell_id, u8 *val);
    int nvmem_cell_read_u16(struct device *dev, const char *cell_id, u16 *val);
    int nvmem_cell_read_u32(struct device *dev, const char *cell_id, u32 *val);
    int nvmem_cell_read_u64(struct device *dev, const char *cell_id, u64 *val);
    --
    2.26.2
    \
     
     \ /
      Last update: 2020-06-23 04:53    [W:4.055 / U:0.168 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site