/* * Copyright (c) 2025, MediaTek Inc. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #ifndef PMIF_COMMON_H #define PMIF_COMMON_H #include enum { PMIF_CMD_REG_0, PMIF_CMD_REG, PMIF_CMD_EXT_REG, PMIF_CMD_EXT_REG_LONG, }; struct pmif { void *base; uint16_t *regs; void *spmimst_base; uint16_t *spmimst_regs; uint32_t mstid; int (*read_cmd)(struct pmif *arb, uint8_t opc, uint8_t sid, uint16_t addr, uint8_t *buf, uint8_t len); int (*write_cmd)(struct pmif *arb, uint8_t opc, uint8_t sid, uint16_t addr, const uint8_t *buf, uint8_t len); }; enum { PMIF_SPMI, PMIF_SPI }; int pmif_spmi_read_cmd(struct pmif *arb, uint8_t opc, uint8_t sid, uint16_t addr, uint8_t *buf, uint8_t len); int pmif_spmi_write_cmd(struct pmif *arb, uint8_t opc, uint8_t sid, uint16_t addr, const uint8_t *buf, uint8_t len); struct pmif *get_pmif_controller(int inf, int mstid); extern struct pmif pmif_spmi_arb[]; #endif