• Chen-Yu Tsai's avatar
    ARM: dts: sun8i: r40: bananapi-m2-ultra: Add Bluetooth device node · 1e5f1db4
    Chen-Yu Tsai authored
    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: default avatarChen-Yu Tsai <wens@csie.org>
    Signed-off-by: default avatarMaxime Ripard <maxime.ripard@bootlin.com>
    1e5f1db4
sun8i-r40-bananapi-m2-ultra.dts 7.12 KB