blob: 25b16cf664dfd3896723abbd1eb326c3315f247d [file] [log] [blame]
Hope Wangc88fe692024-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 SPMI_API_H
8#define SPMI_API_H
9
10#include <stdint.h>
11
12#include <drivers/spmi/spmi_common.h>
13
14/* external API */
15int spmi_register_zero_write(struct spmi_device *dev, uint8_t data);
16int spmi_register_read(struct spmi_device *dev, uint8_t addr, uint8_t *buf);
17int spmi_register_write(struct spmi_device *dev, uint8_t addr, uint8_t data);
18int spmi_ext_register_read(struct spmi_device *dev, uint8_t addr, uint8_t *buf,
19 uint8_t len);
20int spmi_ext_register_write(struct spmi_device *dev, uint8_t addr,
21 const uint8_t *buf, uint8_t len);
22int spmi_ext_register_readl(struct spmi_device *dev, uint16_t addr,
23 uint8_t *buf, uint8_t len);
24int spmi_ext_register_writel(struct spmi_device *dev, uint16_t addr,
25 const uint8_t *buf, uint8_t len);
26int spmi_ext_register_readl_field(struct spmi_device *dev, uint16_t addr,
27 uint8_t *buf, uint16_t mask, uint16_t shift);
28int spmi_ext_register_writel_field(struct spmi_device *dev, uint16_t addr,
29 uint8_t data, uint16_t mask, uint16_t shift);
30struct spmi_device *get_spmi_device(int mstid, int slvid);
31int spmi_device_register(struct spmi_device *platform_spmi_dev, int num_devs);
32
33#endif