mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +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;
|
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_CTRL_ADDR 0x3e
|
||||||
#define AXP221_INIT_DATA 0x3e
|
#define AXP221_INIT_DATA 0x3e
|
||||||
|
|
||||||
|
/* Page 0 addresses */
|
||||||
#define AXP221_CHIP_ID 0x03
|
#define AXP221_CHIP_ID 0x03
|
||||||
#define AXP221_OUTPUT_CTRL1 0x10
|
#define AXP221_OUTPUT_CTRL1 0x10
|
||||||
#define AXP221_OUTPUT_CTRL1_ALDO1_EN (1 << 6)
|
#define AXP221_OUTPUT_CTRL1_ALDO1_EN (1 << 6)
|
||||||
|
@ -34,6 +35,10 @@
|
||||||
#define AXP221_ALDO1_CTRL 0x28
|
#define AXP221_ALDO1_CTRL 0x28
|
||||||
#define AXP221_ALDO2_CTRL 0x29
|
#define AXP221_ALDO2_CTRL 0x29
|
||||||
#define AXP221_ALDO3_CTRL 0x2a
|
#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_dcdc1(unsigned int mvolt);
|
||||||
int axp221_set_dcdc2(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_aldo2(unsigned int mvolt);
|
||||||
int axp221_set_aldo3(unsigned int mvolt);
|
int axp221_set_aldo3(unsigned int mvolt);
|
||||||
int axp221_init(void);
|
int axp221_init(void);
|
||||||
|
int axp221_get_sid(unsigned int *sid);
|
||||||
|
|
Loading…
Reference in a new issue