/* * Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #ifndef AXP_H #define AXP_H #include #define NA 0xff enum { AXP803_CHIP_ID = 0x41, AXP805_CHIP_ID = 0x40, }; struct axp_regulator { const char *dt_name; uint16_t min_volt; uint16_t max_volt; uint16_t step; unsigned char split; unsigned char volt_reg; unsigned char switch_reg; unsigned char switch_bit; }; extern const uint8_t axp_chip_id; extern const char *const axp_compatible; extern const struct axp_regulator axp_regulators[]; /* * Since the PMIC can be connected to multiple bus types, * low-level read/write functions must be provided by the platform */ int axp_read(uint8_t reg); int axp_write(uint8_t reg, uint8_t val); int axp_clrsetbits(uint8_t reg, uint8_t clr_mask, uint8_t set_mask); #define axp_clrbits(reg, clr_mask) axp_clrsetbits(reg, clr_mask, 0) #define axp_setbits(reg, set_mask) axp_clrsetbits(reg, 0, set_mask) int axp_check_id(void); void axp_power_off(void); void axp_setup_regulators(const void *fdt); #endif /* AXP_H */