[PATCH v2 06/16] nvmem: add mt6323 PMIC EFUSE driver
Andy Shevchenko
andy.shevchenko at gmail.com
Mon May 11 23:47:44 PDT 2026
On Tue, May 12, 2026 at 8:21 AM Roman Vivchar via B4 Relay
<devnull+rva333.protonmail.com at kernel.org> wrote:
>
> Add support for the EFUSE controller found in the Mediatek MT6323 PMIC.
> The MT6323 EFUSE stores 24 bytes of hardware-related data, such as
> thermal sensor calibration values.
...
> +#include <linux/err.h>
> +#include <linux/errno.h>
Doesn't seem to be used as err.h implies asm/errno.h that provides
basic error codes.
> +#include <linux/mod_devicetable.h>
> +#include <linux/module.h>
> +#include <linux/nvmem-provider.h>
> +#include <linux/platform_device.h>
> +#include <linux/regmap.h>
> +#include <linux/types.h>
...
> +static int mt6323_efuse_read(void *context, unsigned int offset, void *val,
> + size_t bytes)
> +{
> + struct regmap *map = context;
> + u32 tmp;
> + u16 *buf = val;
> + int ret;
> +
> + /*
> + * Manual regmap_read with loop is needed, because PWRAP is not
> + * a continuous MMIO space, but rather FSM which doesn't implement
> + * necessary read callback for the regmap_read_raw and regmap_read_bulk
> + * functions.
> + */
> + for (size_t i = 0; i < bytes; i += sizeof(*buf)) {
> + ret = regmap_read(map, MT6323_EFUSE_DOUT_BASE + offset + i, &tmp);
> + if (ret)
> + return ret;
> + *buf++ = (u16)tmp;
Why explicit casting?
> + }
> +
> + return 0;
> +}
--
With Best Regards,
Andy Shevchenko
More information about the Linux-mediatek
mailing list