1 /* 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 */ 15 int spmi_register_zero_write(struct spmi_device *dev, uint8_t data); 16 int spmi_register_read(struct spmi_device *dev, uint8_t addr, uint8_t *buf); 17 int spmi_register_write(struct spmi_device *dev, uint8_t addr, uint8_t data); 18 int spmi_ext_register_read(struct spmi_device *dev, uint8_t addr, uint8_t *buf, 19 uint8_t len); 20 int spmi_ext_register_write(struct spmi_device *dev, uint8_t addr, 21 const uint8_t *buf, uint8_t len); 22 int spmi_ext_register_readl(struct spmi_device *dev, uint16_t addr, 23 uint8_t *buf, uint8_t len); 24 int spmi_ext_register_writel(struct spmi_device *dev, uint16_t addr, 25 const uint8_t *buf, uint8_t len); 26 int spmi_ext_register_readl_field(struct spmi_device *dev, uint16_t addr, 27 uint8_t *buf, uint16_t mask, uint16_t shift); 28 int spmi_ext_register_writel_field(struct spmi_device *dev, uint16_t addr, 29 uint8_t data, uint16_t mask, uint16_t shift); 30 struct spmi_device *get_spmi_device(int mstid, int slvid); 31 int spmi_device_register(struct spmi_device *platform_spmi_dev, int num_devs); 32 33 #endif 34