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