xref: /optee_os/core/include/drivers/bcm_sotp.h (revision fbe66cf83199aa6a2aca9f93384cf1ad9185a5f6)
1525c44eeSSandeep Tripathy /* SPDX-License-Identifier: BSD-2-Clause */
2525c44eeSSandeep Tripathy /*
3525c44eeSSandeep Tripathy  * Copyright 2019 Broadcom.
4525c44eeSSandeep Tripathy  */
5525c44eeSSandeep Tripathy 
6*fbe66cf8SEtienne Carriere #ifndef __DRIVERS_BCM_SOTP_H
7*fbe66cf8SEtienne Carriere #define __DRIVERS_BCM_SOTP_H
8525c44eeSSandeep Tripathy 
9525c44eeSSandeep Tripathy #include <stdint.h>
10525c44eeSSandeep Tripathy #include <tee_api.h>
11525c44eeSSandeep Tripathy 
1248ca91edSVahid Dukandar #define SOTP_ECC_ERR_DETECT	BIT64(63)
1348ca91edSVahid Dukandar 
1448ca91edSVahid Dukandar /**
1548ca91edSVahid Dukandar  * Reads from sotp fuse at given row address.
1648ca91edSVahid Dukandar  * @row_addr: row address
1748ca91edSVahid Dukandar  * @sotp_add_ecc: ecc memory support flag
1848ca91edSVahid Dukandar  * @rdata: pointer to sotp data value
1948ca91edSVahid Dukandar  * @returns TEE_Result value
2048ca91edSVahid Dukandar  */
2148ca91edSVahid Dukandar TEE_Result bcm_iproc_sotp_mem_read(uint32_t row_addr, bool sotp_add_ecc,
22525c44eeSSandeep Tripathy 				   uint64_t *rdata);
23525c44eeSSandeep Tripathy 
2448ca91edSVahid Dukandar /**
2548ca91edSVahid Dukandar  * Writes to sotp fuse at given row address.
2648ca91edSVahid Dukandar  * @row_addr: row address
2748ca91edSVahid Dukandar  * @sotp_add_ecc: ecc memory support flag
2848ca91edSVahid Dukandar  * @wdata: data to be written to sotp fuse
2948ca91edSVahid Dukandar  * @returns TEE_Result value
3048ca91edSVahid Dukandar  */
3148ca91edSVahid Dukandar TEE_Result bcm_iproc_sotp_mem_write(uint32_t row_addr, bool sotp_add_ecc,
3248ca91edSVahid Dukandar 				    uint64_t wdata);
3348ca91edSVahid Dukandar 
34525c44eeSSandeep Tripathy #endif
35