• 周五. 5月 2nd, 2025

rk3288 — efuse nvmem 数据配置

rk3288 — efuse nvmem 数据配置,nvmem(Non Volatile Memory),指不易丢失的存储。

1、这个配置为了配置存储在nvmem的数据地址, 比如eeprom, efuses 等硬件存储。

nvmem是板上比较重要的一部分, 生产商会在出厂时,在nvmem里写入特定的数据, 系统运行时需要读取nvmem里的数据,这个时候,系统就要知道,从里哪读取数据以及数据存储在哪个位置,该文章将会回答这些问题。

2、nvmem配置是一个数据提供者,为驱动提供nvmem数据节点,方便驱动进行读取。

3、可选属性:

read-only: 表示nvmem数据是只读。
bits:	表示起始位置,以及结尾位置,以bit为单位。取值范围0-7.

4、必须属性:

reg: 表示存储地址和大小,以字节为单位。

5、Data cells:

Data cells代表的是子节点,提供数据的起始以及数据空间的大小 。

6、例子:

/* Provider */
qfprom: qfprom@00700000 {
...

/* Data cells */
tsens_calibration: calib@404 {
reg = <0x404 0x10>;
};

tsens_calibration_bckp: calib_bckp@504 {
reg = <0x504 0x11>;
bits = <6 128>
};

pvs_version: pvs-version@6 {
reg = <0x6 0x2>
bits = <7 2>
};

speed_bin: speed-bin@c{
reg = <0xc 0x1>;
bits = <2 3>;

};
...
};

7、如何调用nvmem dts配置的data cells/providers.

必须属性:
nvmem-cells: 指向data cells的子节点
nvmem-cell-names: 名称

可选属性:
nvmem	: 指向providers的子节点 
nvmem-names: 名称

例子:

tsens {
...
nvmem-cells = <&tsens_calibration>;
nvmem-cell-names = "calibration";
};

发表评论

您的电子邮箱地址不会被公开。