blob: bdb27226eeeff8a60957dd9e60c475af9a72c0ea [file] [log] [blame]
Hope Wangadf73ae2024-12-13 16:21:01 +08001/*
2 * Copyright (c) 2025, MediaTek Inc. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef PMIF_COMMON_H
8#define PMIF_COMMON_H
9
10#include <stdint.h>
11
12enum {
13 PMIF_CMD_REG_0,
14 PMIF_CMD_REG,
15 PMIF_CMD_EXT_REG,
16 PMIF_CMD_EXT_REG_LONG,
17};
18
19struct pmif {
20 void *base;
21 uint16_t *regs;
22 void *spmimst_base;
23 uint16_t *spmimst_regs;
24 uint32_t mstid;
25 int (*read_cmd)(struct pmif *arb, uint8_t opc, uint8_t sid, uint16_t addr, uint8_t *buf,
26 uint8_t len);
27 int (*write_cmd)(struct pmif *arb, uint8_t opc, uint8_t sid, uint16_t addr,
28 const uint8_t *buf, uint8_t len);
29};
30
31enum {
32 PMIF_SPMI,
33 PMIF_SPI
34};
35
36int pmif_spmi_read_cmd(struct pmif *arb, uint8_t opc, uint8_t sid, uint16_t addr, uint8_t *buf,
37 uint8_t len);
38int pmif_spmi_write_cmd(struct pmif *arb, uint8_t opc, uint8_t sid, uint16_t addr,
39 const uint8_t *buf, uint8_t len);
40struct pmif *get_pmif_controller(int inf, int mstid);
41extern struct pmif pmif_spmi_arb[];
42#endif