From: Siarhei Siamashka <siarhei.siamashka@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v4] sun6i: Add basic axp221 driver
Date: Fri, 2 Jan 2015 07:17:36 +0200 [thread overview]
Message-ID: <20150102071736.69106651@i7> (raw)
In-Reply-To: <1415625111-3453-1-git-send-email-hdegoede@redhat.com>
On Mon, 10 Nov 2014 14:11:51 +0100
Hans de Goede <hdegoede@redhat.com> wrote:
> From: Oliver Schinagl <oliver@schinagl.nl>
>
> The A31 uses the AXP221 pmic for various voltages.
>
> Signed-off-by: Oliver Schinagl <oliver@schinagl.nl>
> Signed-off-by: Hans de Goede <hdegoede@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 0000000..e3b4409
> --- /dev/null
> +++ b/include/axp221.h
> @@ -0,0 +1,50 @@
> +/*
> + * (C) Copyright 2013 Oliver Schinagl <oliver@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_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
$ 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);
--
Best regards,
Siarhei Siamashka
next prev parent reply other threads:[~2015-01-02 5:17 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-10 13:11 [U-Boot] [PATCH v4] sun6i: Add basic axp221 driver Hans de Goede
2014-11-10 13:20 ` Ian Campbell
2014-11-10 13:33 ` Hans de Goede
2014-11-10 14:13 ` Ian Campbell
2014-11-10 15:12 ` Hans de Goede
2015-01-02 5:17 ` Siarhei Siamashka [this message]
2015-01-05 15:45 ` Hans de Goede
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150102071736.69106651@i7 \
--to=siarhei.siamashka@gmail.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.