xref: /rk3399_ARM-atf/plat/ti/k3low/common/drivers/k3-ddrss/common/lpddr4_obj_if.h (revision 6c0c3a74dda68e7ffc8bd6c156918ddbfea7e03a)
1 /* SPDX-License-Identifier: BSD-3-Clause */
2 /*
3  * Cadence DDR Driver
4  *
5  * Copyright (C) 2012-2026 Cadence Design Systems, Inc.
6  * Copyright (C) 2018-2026 Texas Instruments Incorporated - https://www.ti.com/
7  */
8 
9 #ifndef LPDDR4_OBJ_IF_H
10 #define LPDDR4_OBJ_IF_H
11 
12 #include "lpddr4_if.h"
13 
14 typedef struct ti_lpddr4_obj_s {
15 	uint32_t (*probe)(const ti_lpddr4_config *config, uint16_t *configsize);
16 	uint32_t (*init)(ti_lpddr4_privatedata *pd, const ti_lpddr4_config *cfg);
17 	uint32_t (*start)(const ti_lpddr4_privatedata *pd);
18 	uint32_t (*readreg)(const ti_lpddr4_privatedata *pd, ti_lpddr4_regblock cpp,
19 			    uint32_t regoffset, uint32_t *regvalue);
20 	uint32_t (*writereg)(const ti_lpddr4_privatedata *pd, ti_lpddr4_regblock cpp,
21 			     uint32_t regoffset, uint32_t regvalue);
22 	uint32_t (*writectlconfigex)(const ti_lpddr4_privatedata *pd,
23 				     const uint32_t regvalues[], uint16_t regcount);
24 	uint32_t (*writephyconfigex)(const ti_lpddr4_privatedata *pd,
25 				     const uint32_t regvalues[], uint16_t regcount);
26 	uint32_t (*writephyindepconfigex)(const ti_lpddr4_privatedata *pd,
27 					  const uint32_t regvalues[], uint16_t regcount);
28 	uint32_t (*checkctlinterrupt)(const ti_lpddr4_privatedata *pd,
29 				      ti_lpddr4_intr_ctlinterrupt intr, bool *irqstatus);
30 	uint32_t (*ackctlinterrupt)(const ti_lpddr4_privatedata *pd,
31 				    ti_lpddr4_intr_ctlinterrupt intr);
32 	uint32_t (*checkphyindepinterrupt)(const ti_lpddr4_privatedata *pd,
33 					   ti_lpddr4_intr_phyindepinterrupt intr,
34 					   bool *irqstatus);
35 	uint32_t (*ackphyindepinterrupt)(const ti_lpddr4_privatedata *pd,
36 					 ti_lpddr4_intr_phyindepinterrupt intr);
37 } ti_lpddr4_obj;
38 
39 ti_lpddr4_obj *ti_lpddr4_getinstance(void);
40 
41 #endif  /* LPDDR4_OBJ_IF_H */
42