Re: [linux-sunxi] Re: [PATCH v5 7/7] ARM: dts: sun8i: v40: bananapi-m2-berry: Add Bluetooth device node
From: Chen-Yu Tsai
Date: Thu May 02 2019 - 04:20:38 EST
On Thu, May 2, 2019 at 3:41 PM Maxime Ripard <maxime.ripard@xxxxxxxxxxx> wrote:
>
> On Tue, Apr 23, 2019 at 02:26:04PM -0300, Pablo Greco wrote:
> > The AP6212 is based on the Broadcom BCM43430 or BCM43438. The WiFi side
> > identifies as BCM43430, while the Bluetooth side identifies as BCM43438.
> >
> > The Bluetooth side is connected to UART3 in a 4 wire configuration. Same
> > as the WiFi side, due to being the same chip and package, DLDO1 and
> > DLDO2 regulator outputs from the PMIC provide overall power via VBAT and
> > I/O power via VDDIO. The CLK_OUT_A clock output from the SoC provides
> > the LPO low power clock at 32.768 kHz.
> >
> > This patch enables Bluetooth on this board, and also adds the missing
> > LPO clock on the WiFi side. There is also a PCM connection for
> > Bluetooth, but this is not covered here.
> >
> > The LPO clock is fed from CLK_OUT_A, which needs to be muxed on pin
> > PI12. This can be represented in multiple ways. This patch puts the
> > pinctrl property in the pin controller node. This is due to limitations
> > in Linux, where pinmux settings, even the same one, can not be shared
> > by multiple devices. Thus we cannot put it in both the WiFi and
> > Bluetooth device nodes. Putting it the CCU node is another option, but
> > Linux's CCU driver does not handle pinctrl. Also the pin controller is
> > guaranteed to be initialized after the CCU, when clocks are available.
> > And any other devices that use muxed pins are guaranteed to be
> > initialized after the pin controller. Thus having the CLK_OUT_A pinmux
> > reference be in the pin controller node is a good choice without having
> > to deal with implementation issues.
> >
> > Signed-off-by: Pablo Greco <pgreco@xxxxxxxxxxxxxxxxx>
> > ---
> > arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts | 22 ++++++++++++++++++++++
> > 1 file changed, 22 insertions(+)
> >
> > diff --git a/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts b/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts
> > index c87f2c0..15c22b0 100644
> > --- a/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts
> > +++ b/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts
> > @@ -96,6 +96,8 @@
> > wifi_pwrseq: wifi_pwrseq {
> > compatible = "mmc-pwrseq-simple";
> > reset-gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 WIFI_EN */
> > + clocks = <&ccu CLK_OUTA>;
> > + clock-names = "ext_clock";
>
> So if you don't have that patch (that enables bluetooth) the wifi
> doesn't work (even though the previous patch is supposed to enable it)
Maybe we should just squash the two (WiFi and Bluetooth) together?
After all, they are in the same package, and depend on some of the
same things, such as clocks and regulators.
ChenYu
> > };
> > };
> >
> > @@ -173,6 +175,7 @@
> >
> > &pio {
> > pinctrl-names = "default";
> > + pinctrl-0 = <&clk_out_a_pin>;
>
> This one should bein the previous one as well
>
> Maxime
>
> --
> Maxime Ripard, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
> --
> You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe@xxxxxxxxxxxxxxxxx
> For more options, visit https://groups.google.com/d/optout.