mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-18 02:24:18 +00:00

Add SPMI and PMIF driver for PMIC communication Change-Id: Iad1d90381d6dad6b3e92fd9d6a3ce02fa11d15f1 Signed-off-by: Hope Wang <hope.wang@mediatek.corp-partner.google.com>
42 lines
964 B
C
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
|