mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-05-05 04:36:13 +02:00
The PMIC is also known as AXP819 in vendor pmu code For DCDC6, 8, 9, the underlying hardware support more than two levels voltage step tuning, but for now only first two levels are implemented in this driver, hence highest voltage will be limited at seccond level. It actual meets board requirement in current design, and we've verified it in Radxa Cubie A7A board. Following are detail explanation of voltage tuning stpes for those DCDCs: DCDC | voltage range | units | steps | implemented 6 | 0.5 - 1.2 | 10 mV | 71 | Y . | 1.22 - 1.54 | 20 mV | 17 | Y . | 1.8 - 2.4 | 20 mV | 31 | N . | 2.44 - 2.76 | 40 mV | 9 | N -------------------------------------------------- 8/9 | 0.5 - 1.2 | 10 mV | 71 | Y . | 1.22 - 1.84 | 20 mV | 32 | Y . | 1.9 - 3.4 | 100mV | 16 | N Signed-off-by: Yixun Lan <dlan@gentoo.org> Reviewed-by: Andre Przywara <andre.przywara@arm.com>
62 lines
1.4 KiB
C
62 lines
1.4 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* (C) Copyright 2015 Hans de Goede <hdegoede@redhat.com>
|
|
*
|
|
* X-Powers AX Power Management IC support header
|
|
*/
|
|
#ifndef _AXP_PMIC_H_
|
|
#define _AXP_PMIC_H_
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include <axp152.h>
|
|
#include <axp209.h>
|
|
#include <axp221.h>
|
|
#include <axp305.h>
|
|
#include <axp809.h>
|
|
#include <axp818.h>
|
|
|
|
#define AXP_PMIC_MODE_REG 0x3e
|
|
#define AXP_PMIC_MODE_I2C 0x00
|
|
#define AXP_PMIC_MODE_P2WI 0x3e
|
|
#define AXP_PMIC_MODE_RSB 0x7c
|
|
|
|
#define AXP_PMIC_PRI_DEVICE_ADDR 0x3a3
|
|
#define AXP_PMIC_PRI_RUNTIME_ADDR 0x2d
|
|
#define AXP_PMIC_SEC_DEVICE_ADDR 0x745
|
|
#define AXP_PMIC_SEC_RUNTIME_ADDR 0x3a
|
|
|
|
enum {
|
|
AXP152_ID,
|
|
AXP202_ID,
|
|
AXP209_ID,
|
|
AXP221_ID,
|
|
AXP223_ID,
|
|
AXP313_ID,
|
|
AXP323_ID,
|
|
AXP717_ID,
|
|
AXP803_ID,
|
|
AXP806_ID,
|
|
AXP809_ID,
|
|
AXP813_ID,
|
|
AXP318_ID,
|
|
};
|
|
|
|
int axp_set_dcdc1(unsigned int mvolt);
|
|
int axp_set_dcdc2(unsigned int mvolt);
|
|
int axp_set_dcdc3(unsigned int mvolt);
|
|
int axp_set_dcdc4(unsigned int mvolt);
|
|
int axp_set_dcdc5(unsigned int mvolt);
|
|
int axp_set_aldo1(unsigned int mvolt);
|
|
int axp_set_aldo2(unsigned int mvolt);
|
|
int axp_set_aldo3(unsigned int mvolt);
|
|
int axp_set_aldo4(unsigned int mvolt);
|
|
int axp_set_dldo(int dldo_num, unsigned int mvolt);
|
|
int axp_set_eldo(int eldo_num, unsigned int mvolt);
|
|
int axp_set_fldo(int fldo_num, unsigned int mvolt);
|
|
int axp_set_sw(bool on);
|
|
int axp_init(void);
|
|
int axp_get_sid(unsigned int *sid);
|
|
|
|
#endif
|