arm-trusted-firmware/plat/mediatek/drivers/spmi/pmif_common.h
Hope Wang adf73ae20a feat(mt8196): add SPMI driver
Add SPMI and PMIF driver for PMIC communication

Change-Id: Iad1d90381d6dad6b3e92fd9d6a3ce02fa11d15f1
Signed-off-by: Hope Wang <hope.wang@mediatek.corp-partner.google.com>
2025-01-22 11:51:07 +08:00

42 lines
964 B
C

/*
* Copyright (c) 2025, MediaTek Inc. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef PMIF_COMMON_H
#define PMIF_COMMON_H
#include <stdint.h>
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