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"; };