mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
sun6i: axp221: Add axp221_get_sid function
For sun6i the SID is stored in the pmic, rather then in the SoC itself, add a function to retreive the sid. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Ian Campbell <ijc@hellion.org.uk>
This commit is contained in:
parent
fc3a832576
commit
f3fba5665b
2 changed files with 33 additions and 0 deletions
|
@ -184,3 +184,30 @@ int axp221_init(void)
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int axp221_get_sid(unsigned int *sid)
|
||||
{
|
||||
u8 *dest = (u8 *)sid;
|
||||
int i, ret;
|
||||
|
||||
ret = axp221_init();
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = p2wi_write(AXP221_PAGE, 1);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
for (i = 0; i < 16; i++) {
|
||||
ret = p2wi_read(AXP221_SID + i, &dest[i]);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
p2wi_write(AXP221_PAGE, 0);
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
sid[i] = be32_to_cpu(sid[i]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#define AXP221_CTRL_ADDR 0x3e
|
||||
#define AXP221_INIT_DATA 0x3e
|
||||
|
||||
/* Page 0 addresses */
|
||||
#define AXP221_CHIP_ID 0x03
|
||||
#define AXP221_OUTPUT_CTRL1 0x10
|
||||
#define AXP221_OUTPUT_CTRL1_ALDO1_EN (1 << 6)
|
||||
|
@ -34,6 +35,10 @@
|
|||
#define AXP221_ALDO1_CTRL 0x28
|
||||
#define AXP221_ALDO2_CTRL 0x29
|
||||
#define AXP221_ALDO3_CTRL 0x2a
|
||||
#define AXP221_PAGE 0xff
|
||||
|
||||
/* Page 1 addresses */
|
||||
#define AXP221_SID 0x20
|
||||
|
||||
int axp221_set_dcdc1(unsigned int mvolt);
|
||||
int axp221_set_dcdc2(unsigned int mvolt);
|
||||
|
@ -48,3 +53,4 @@ int axp221_set_aldo1(unsigned int mvolt);
|
|||
int axp221_set_aldo2(unsigned int mvolt);
|
||||
int axp221_set_aldo3(unsigned int mvolt);
|
||||
int axp221_init(void);
|
||||
int axp221_get_sid(unsigned int *sid);
|
||||
|
|
Loading…
Reference in a new issue