blob: bdb27226eeeff8a60957dd9e60c475af9a72c0ea [file] [log] [blame]
/*
* 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