xref: /rk3399_ARM-atf/include/drivers/brcm/ocotp.h (revision 926cd70a0cc3a0cbf209a87765a8dc0b869798e3)
1*f29d1e0cSSheetal Tigadoli /*
2*f29d1e0cSSheetal Tigadoli  * Copyright (c) 2016 - 2020, Broadcom
3*f29d1e0cSSheetal Tigadoli  *
4*f29d1e0cSSheetal Tigadoli  * SPDX-License-Identifier: BSD-3-Clause
5*f29d1e0cSSheetal Tigadoli  */
6*f29d1e0cSSheetal Tigadoli 
7*f29d1e0cSSheetal Tigadoli #ifndef OCOTP_H
8*f29d1e0cSSheetal Tigadoli #define OCOTP_H
9*f29d1e0cSSheetal Tigadoli 
10*f29d1e0cSSheetal Tigadoli #include <stdint.h>
11*f29d1e0cSSheetal Tigadoli 
12*f29d1e0cSSheetal Tigadoli struct otpc_map {
13*f29d1e0cSSheetal Tigadoli 	/* in words. */
14*f29d1e0cSSheetal Tigadoli 	uint32_t otpc_row_size;
15*f29d1e0cSSheetal Tigadoli 	/* 128 bit row / 4 words support. */
16*f29d1e0cSSheetal Tigadoli 	uint16_t data_r_offset[4];
17*f29d1e0cSSheetal Tigadoli 	/* 128 bit row / 4 words support. */
18*f29d1e0cSSheetal Tigadoli 	uint16_t data_w_offset[4];
19*f29d1e0cSSheetal Tigadoli 	int word_size;
20*f29d1e0cSSheetal Tigadoli 	int stride;
21*f29d1e0cSSheetal Tigadoli };
22*f29d1e0cSSheetal Tigadoli 
23*f29d1e0cSSheetal Tigadoli int bcm_otpc_init(struct otpc_map *map);
24*f29d1e0cSSheetal Tigadoli int bcm_otpc_read(unsigned int offset, void *val, uint32_t bytes,
25*f29d1e0cSSheetal Tigadoli 		  uint32_t ecc_flag);
26*f29d1e0cSSheetal Tigadoli 
27*f29d1e0cSSheetal Tigadoli #endif /* OCOTP_H */
28