mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-05-01 13:19:47 +08:00
53 lines
1.7 KiB
Diff
53 lines
1.7 KiB
Diff
The RK3588 has an offset into the OTP area where the readable area begins
|
|
and automatically adds this to the start address.
|
|
Other variants are very much similar to rk3588, just with a different
|
|
offset, so move that value into variant-data.
|
|
|
|
To match the size in bytes, store this value also in bytes and not in
|
|
number of blocks.
|
|
|
|
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
|
---
|
|
drivers/nvmem/rockchip-otp.c | 5 +++--
|
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/drivers/nvmem/rockchip-otp.c b/drivers/nvmem/rockchip-otp.c
|
|
index ebc3f0b24166..3edfbfc2d722 100644
|
|
--- a/drivers/nvmem/rockchip-otp.c
|
|
+++ b/drivers/nvmem/rockchip-otp.c
|
|
@@ -59,7 +59,6 @@
|
|
#define RK3588_OTPC_AUTO_EN 0x08
|
|
#define RK3588_OTPC_INT_ST 0x84
|
|
#define RK3588_OTPC_DOUT0 0x20
|
|
-#define RK3588_NO_SECURE_OFFSET 0x300
|
|
#define RK3588_NBYTES 4
|
|
#define RK3588_BURST_NUM 1
|
|
#define RK3588_BURST_SHIFT 8
|
|
@@ -69,6 +68,7 @@
|
|
|
|
struct rockchip_data {
|
|
int size;
|
|
+ int read_offset;
|
|
const char * const *clks;
|
|
int num_clks;
|
|
nvmem_reg_read_t reg_read;
|
|
@@ -196,7 +196,7 @@ static int rk3588_otp_read(void *context, unsigned int offset,
|
|
addr_start = round_down(offset, RK3588_NBYTES) / RK3588_NBYTES;
|
|
addr_end = round_up(offset + bytes, RK3588_NBYTES) / RK3588_NBYTES;
|
|
addr_len = addr_end - addr_start;
|
|
- addr_start += RK3588_NO_SECURE_OFFSET;
|
|
+ addr_start += otp->data->read_offset / RK3588_NBYTES;
|
|
|
|
buf = kzalloc(array_size(addr_len, RK3588_NBYTES), GFP_KERNEL);
|
|
if (!buf)
|
|
@@ -280,6 +280,7 @@ static const char * const rk3588_otp_clocks[] = {
|
|
|
|
static const struct rockchip_data rk3588_data = {
|
|
.size = 0x400,
|
|
+ .read_offset = 0xc00,
|
|
.clks = rk3588_otp_clocks,
|
|
.num_clks = ARRAY_SIZE(rk3588_otp_clocks),
|
|
.reg_read = rk3588_otp_read,
|
|
--
|
|
2.45.2
|