Re: [U-Boot] [PATCH v4] sun6i: Add basic axp221 driver

2015-01-05 Thread Hans de Goede

Hi,

On 02-01-15 06:17, Siarhei Siamashka wrote:

On Mon, 10 Nov 2014 14:11:51 +0100
Hans de Goede hdego...@redhat.com wrote:


From: Oliver Schinagl oli...@schinagl.nl

The A31 uses the AXP221 pmic for various voltages.

Signed-off-by: Oliver Schinagl oli...@schinagl.nl
Signed-off-by: Hans de Goede hdego...@redhat.com
--
Changes in v2:
-Rebase
Changes in v3:
-Add support for all dldo and aldo-s
-Add Kconfig option to select building AXP221 and to select voltage of
  dldo and aldo-s
Changes in v4:
-Add axp221_setbits helper function
-Use symbolic names for enabled bits in CTRL1 - CTRL3 registers
---


[...]


diff --git a/include/axp221.h b/include/axp221.h
new file mode 100644
index 000..e3b4409
--- /dev/null
+++ b/include/axp221.h
@@ -0,0 +1,50 @@
+/*
+ * (C) Copyright 2013 Oliver Schinagl oli...@schinagl.nl
+ *
+ * X-Powers AXP221 Power Management IC driver
+ *
+ * SPDX-License-Identifier:GPL-2.0+
+ */
+
+#define AXP221_CHIP_ADDR 0x68
+#define AXP221_CTRL_ADDR 0x3e
+#define AXP221_INIT_DATA 0x3e
+
+#define AXP221_CHIP_ID 0x03
+#define AXP221_OUTPUT_CTRL10x10
+#define AXP221_OUTPUT_CTRL1_ALDO1_EN   (1  6)
+#define AXP221_OUTPUT_CTRL1_ALDO2_EN   (1  7)
+#define AXP221_OUTPUT_CTRL20x12
+#define AXP221_OUTPUT_CTRL2_DLDO1_EN   (1  3)
+#define AXP221_OUTPUT_CTRL2_DLDO2_EN   (1  4)
+#define AXP221_OUTPUT_CTRL2_DLDO3_EN   (1  5)
+#define AXP221_OUTPUT_CTRL2_DLDO4_EN   (1  6)
+#define AXP221_OUTPUT_CTRL2_DCDC1_EN   (1  7)
+#define AXP221_OUTPUT_CTRL30x13
+#define AXP221_OUTPUT_CTRL3_ALDO3_EN   (1  7)
+#define AXP221_DLDO1_CTRL  0x15
+#define AXP221_DLDO2_CTRL  0x16
+#define AXP221_DLDO3_CTRL  0x17
+#define AXP221_DLDO4_CTRL  0x18
+#define AXP221_DCDC1_CTRL  0x21
+#define AXP221_DCDC2_CTRL  0x22
+#define AXP221_DCDC3_CTRL  0x23
+#define AXP221_DCDC4_CTRL  0x24
+#define AXP221_DCDC5_CTRL  0x25
+#define AXP221_ALDO1_CTRL  0x28
+#define AXP221_ALDO2_CTRL  0x28


The register offset of ALDO2 seems to be incorrect here (same as ALDO1):
 http://linux-sunxi.org/AXP221#Reg_29h:_ALDO2_output_voltage

In the current u-boot master, ALDO2 is only used by:
configs/Mele_M9_defconfig:+S:CONFIG_AXP221_ALDO1_VOLT=3300


Ouch, good catch, I'll send a fix out right away and I'll try
to get this included in v2015.01.

Regards,

Hans




$ cat Mele_M9_defconfig
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS=USB_EHCI,SUNXI_GMAC
CONFIG_FDTFILE=sun6i-a31-m9.dtb
+S:CONFIG_ARM=y
+S:CONFIG_ARCH_SUNXI=y
+S:CONFIG_MACH_SUN6I=y
+S:CONFIG_TARGET_MELE_M9=y
# Ethernet phy power
+S:CONFIG_AXP221_DLDO1_VOLT=3300
# USB hub power
+S:CONFIG_AXP221_DLDO4_VOLT=3300
# Wifi power
+S:CONFIG_AXP221_ALDO1_VOLT=3300
# HDMI power ?
+S:CONFIG_AXP221_ALDO2_VOLT=1800
+S:CONFIG_AXP221_ALDO3_VOLT=3000
# Vbus gpio for usb1
+S:CONFIG_USB1_VBUS_PIN=PC27
# No Vbus gpio for usb2
+S:CONFIG_USB2_VBUS_PIN=

It means that the code in boards/sunxi/board.c is likely to
set 1.8V for ALDO1 instead of 3.3V:

#if CONFIG_AXP221_ALDO1_VOLT != -1
power_failed |= axp221_set_aldo1(CONFIG_AXP221_ALDO1_VOLT);
#endif
#if CONFIG_AXP221_ALDO2_VOLT != -1
power_failed |= axp221_set_aldo2(CONFIG_AXP221_ALDO2_VOLT);
#endif

Does Wifi actually work on Mele M9? And if not, then is this
something that needs to be fixed in the v2015.01 release?

Also ALDO1/ALDO2 have much heavier use in the u-boot-sunxi
next branch.


+#define AXP221_ALDO3_CTRL  0x2a
+
+int axp221_set_dcdc1(unsigned int mvolt);
+int axp221_set_dcdc2(unsigned int mvolt);
+int axp221_set_dcdc3(unsigned int mvolt);
+int axp221_set_dcdc4(unsigned int mvolt);
+int axp221_set_dcdc5(unsigned int mvolt);
+int axp221_set_dldo1(unsigned int mvolt);
+int axp221_set_dldo2(unsigned int mvolt);
+int axp221_set_dldo3(unsigned int mvolt);
+int axp221_set_dldo4(unsigned int mvolt);
+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);



___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v4] sun6i: Add basic axp221 driver

2015-01-01 Thread Siarhei Siamashka
On Mon, 10 Nov 2014 14:11:51 +0100
Hans de Goede hdego...@redhat.com wrote:

 From: Oliver Schinagl oli...@schinagl.nl
 
 The A31 uses the AXP221 pmic for various voltages.
 
 Signed-off-by: Oliver Schinagl oli...@schinagl.nl
 Signed-off-by: Hans de Goede hdego...@redhat.com
 --
 Changes in v2:
 -Rebase
 Changes in v3:
 -Add support for all dldo and aldo-s
 -Add Kconfig option to select building AXP221 and to select voltage of
  dldo and aldo-s
 Changes in v4:
 -Add axp221_setbits helper function
 -Use symbolic names for enabled bits in CTRL1 - CTRL3 registers
 ---

[...]

 diff --git a/include/axp221.h b/include/axp221.h
 new file mode 100644
 index 000..e3b4409
 --- /dev/null
 +++ b/include/axp221.h
 @@ -0,0 +1,50 @@
 +/*
 + * (C) Copyright 2013 Oliver Schinagl oli...@schinagl.nl
 + *
 + * X-Powers AXP221 Power Management IC driver
 + *
 + * SPDX-License-Identifier:  GPL-2.0+
 + */
 +
 +#define AXP221_CHIP_ADDR 0x68
 +#define AXP221_CTRL_ADDR 0x3e
 +#define AXP221_INIT_DATA 0x3e
 +
 +#define AXP221_CHIP_ID   0x03
 +#define AXP221_OUTPUT_CTRL1  0x10
 +#define AXP221_OUTPUT_CTRL1_ALDO1_EN (1  6)
 +#define AXP221_OUTPUT_CTRL1_ALDO2_EN (1  7)
 +#define AXP221_OUTPUT_CTRL2  0x12
 +#define AXP221_OUTPUT_CTRL2_DLDO1_EN (1  3)
 +#define AXP221_OUTPUT_CTRL2_DLDO2_EN (1  4)
 +#define AXP221_OUTPUT_CTRL2_DLDO3_EN (1  5)
 +#define AXP221_OUTPUT_CTRL2_DLDO4_EN (1  6)
 +#define AXP221_OUTPUT_CTRL2_DCDC1_EN (1  7)
 +#define AXP221_OUTPUT_CTRL3  0x13
 +#define AXP221_OUTPUT_CTRL3_ALDO3_EN (1  7)
 +#define AXP221_DLDO1_CTRL0x15
 +#define AXP221_DLDO2_CTRL0x16
 +#define AXP221_DLDO3_CTRL0x17
 +#define AXP221_DLDO4_CTRL0x18
 +#define AXP221_DCDC1_CTRL0x21
 +#define AXP221_DCDC2_CTRL0x22
 +#define AXP221_DCDC3_CTRL0x23
 +#define AXP221_DCDC4_CTRL0x24
 +#define AXP221_DCDC5_CTRL0x25
 +#define AXP221_ALDO1_CTRL0x28
 +#define AXP221_ALDO2_CTRL0x28

The register offset of ALDO2 seems to be incorrect here (same as ALDO1):
http://linux-sunxi.org/AXP221#Reg_29h:_ALDO2_output_voltage

In the current u-boot master, ALDO2 is only used by:
configs/Mele_M9_defconfig:+S:CONFIG_AXP221_ALDO1_VOLT=3300

$ cat Mele_M9_defconfig 
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS=USB_EHCI,SUNXI_GMAC
CONFIG_FDTFILE=sun6i-a31-m9.dtb
+S:CONFIG_ARM=y
+S:CONFIG_ARCH_SUNXI=y
+S:CONFIG_MACH_SUN6I=y
+S:CONFIG_TARGET_MELE_M9=y
# Ethernet phy power
+S:CONFIG_AXP221_DLDO1_VOLT=3300
# USB hub power
+S:CONFIG_AXP221_DLDO4_VOLT=3300
# Wifi power
+S:CONFIG_AXP221_ALDO1_VOLT=3300
# HDMI power ?
+S:CONFIG_AXP221_ALDO2_VOLT=1800
+S:CONFIG_AXP221_ALDO3_VOLT=3000
# Vbus gpio for usb1
+S:CONFIG_USB1_VBUS_PIN=PC27
# No Vbus gpio for usb2
+S:CONFIG_USB2_VBUS_PIN=

It means that the code in boards/sunxi/board.c is likely to
set 1.8V for ALDO1 instead of 3.3V:

#if CONFIG_AXP221_ALDO1_VOLT != -1
power_failed |= axp221_set_aldo1(CONFIG_AXP221_ALDO1_VOLT);
#endif
#if CONFIG_AXP221_ALDO2_VOLT != -1
power_failed |= axp221_set_aldo2(CONFIG_AXP221_ALDO2_VOLT);
#endif

Does Wifi actually work on Mele M9? And if not, then is this
something that needs to be fixed in the v2015.01 release?

Also ALDO1/ALDO2 have much heavier use in the u-boot-sunxi
next branch.

 +#define AXP221_ALDO3_CTRL0x2a
 +
 +int axp221_set_dcdc1(unsigned int mvolt);
 +int axp221_set_dcdc2(unsigned int mvolt);
 +int axp221_set_dcdc3(unsigned int mvolt);
 +int axp221_set_dcdc4(unsigned int mvolt);
 +int axp221_set_dcdc5(unsigned int mvolt);
 +int axp221_set_dldo1(unsigned int mvolt);
 +int axp221_set_dldo2(unsigned int mvolt);
 +int axp221_set_dldo3(unsigned int mvolt);
 +int axp221_set_dldo4(unsigned int mvolt);
 +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);

-- 
Best regards,
Siarhei Siamashka
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v4] sun6i: Add basic axp221 driver

2014-11-10 Thread Ian Campbell
On Mon, 2014-11-10 at 14:11 +0100, Hans de Goede wrote:
 From: Oliver Schinagl oli...@schinagl.nl
 
 The A31 uses the AXP221 pmic for various voltages.
 
 Signed-off-by: Oliver Schinagl oli...@schinagl.nl
 Signed-off-by: Hans de Goede hdego...@redhat.com

Acked-by: Ian Campbell ian.campb...@citrix.com


___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v4] sun6i: Add basic axp221 driver

2014-11-10 Thread Hans de Goede
Hi,

On 11/10/2014 02:20 PM, Ian Campbell wrote:
 On Mon, 2014-11-10 at 14:11 +0100, Hans de Goede wrote:
 From: Oliver Schinagl oli...@schinagl.nl

 The A31 uses the AXP221 pmic for various voltages.

 Signed-off-by: Oliver Schinagl oli...@schinagl.nl
 Signed-off-by: Hans de Goede hdego...@redhat.com
 
 Acked-by: Ian Campbell ian.campb...@citrix.com

Thanks, I've taken the liberty to change this to:

Acked-by: Ian Campbell i...@hellion.org.uk

And pushed the entire series to u-boot-sunxi/next

I'm somewhat tempted to send a PR with this to Tom,
is there anything pending which we should get in first ?

Regards,

Hans


___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v4] sun6i: Add basic axp221 driver

2014-11-10 Thread Ian Campbell
On Mon, 2014-11-10 at 14:33 +0100, Hans de Goede wrote:
 Hi,
 
 On 11/10/2014 02:20 PM, Ian Campbell wrote:
  On Mon, 2014-11-10 at 14:11 +0100, Hans de Goede wrote:
  From: Oliver Schinagl oli...@schinagl.nl
 
  The A31 uses the AXP221 pmic for various voltages.
 
  Signed-off-by: Oliver Schinagl oli...@schinagl.nl
  Signed-off-by: Hans de Goede hdego...@redhat.com
  
  Acked-by: Ian Campbell ian.campb...@citrix.com
 
 Thanks, I've taken the liberty to change this to:
 
 Acked-by: Ian Campbell i...@hellion.org.uk

Right, thanks. Wrong set of finger macros loaded...

 And pushed the entire series to u-boot-sunxi/next
 
 I'm somewhat tempted to send a PR with this to Tom,
 is there anything pending which we should get in first ?

I seem to have http://patchwork.ozlabs.org/patch/403231/ delegated to
me, but didn't you fix that already?

Ian.

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v4] sun6i: Add basic axp221 driver

2014-11-10 Thread Hans de Goede
Hi,

On 11/10/2014 03:13 PM, Ian Campbell wrote:
 On Mon, 2014-11-10 at 14:33 +0100, Hans de Goede wrote:
 Hi,

 On 11/10/2014 02:20 PM, Ian Campbell wrote:
 On Mon, 2014-11-10 at 14:11 +0100, Hans de Goede wrote:
 From: Oliver Schinagl oli...@schinagl.nl

 The A31 uses the AXP221 pmic for various voltages.

 Signed-off-by: Oliver Schinagl oli...@schinagl.nl
 Signed-off-by: Hans de Goede hdego...@redhat.com

 Acked-by: Ian Campbell ian.campb...@citrix.com

 Thanks, I've taken the liberty to change this to:

 Acked-by: Ian Campbell i...@hellion.org.uk
 
 Right, thanks. Wrong set of finger macros loaded...
 
 And pushed the entire series to u-boot-sunxi/next

 I'm somewhat tempted to send a PR with this to Tom,
 is there anything pending which we should get in first ?
 
 I seem to have http://patchwork.ozlabs.org/patch/403231/ delegated to
 me, but didn't you fix that already?

Yes that is already fixed in master, I've moved this to accepted.

Regards,

Hans
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot