* [PATCH] ARM: dts: samsung: exynos4210-universal_c210: fix BCM4330 Bluetooth GPIOs [not found] <CGME20261026103612eucas1p10fbe3777394cc604419299509c22a2e7@eucas1p1.samsung.com> @ 2026-10-26 10:36 ` Marek Szyprowski 2026-11-02 12:26 ` Krzysztof Kozlowski 0 siblings, 1 reply; 3+ messages in thread From: Marek Szyprowski @ 2026-10-26 10:36 UTC (permalink / raw) To: linux-samsung-soc Cc: Marek Szyprowski, Krzysztof Kozlowski, Peter Griffin, Alim Akhtar, stable BT_REG_ON (BT_EN) line of the BCM4330 WLAN/BT combo chip is connected to the XMMC1CMD pad (GPK1[1]), while the XMDMADDR_4 pad (GPE1[4]) is connected to BT_RST (BT_nRST). The Bluetooth node however used GPE1[4] as shutdown-gpios and left the real BT_REG_ON line undriven, so it was kept low by the default SoC pull-down. This worked only by accident: the internal regulators of the BCM4330 are enabled when either WL_REG_ON or BT_REG_ON is high, so the Bluetooth core was powered via WL_REG_ON driven by the SDIO WLAN power sequence, while toggling GPE1[4] only released it from reset. Once 'cap-power-off-card' was added to the SDIO node, the MMC core started to power off the WLAN part (asserting WL_REG_ON low) whenever it was idle, what cut off the Bluetooth power as well and resulted in HCI command timeouts. Fix this by using GPK1[1] as shutdown-gpios and describing GPE1[4] as active-low reset-gpios. While touching this, move the GPE1[4] pin configuration to the pinctrl_0 node, as GPE1 bank belongs to that pin controller, what fixes the following error: samsung-pinctrl 11000000.pinctrl: does not have pin group gpe1-4 Fixes: 8929d4a9d204 ("ARM: dts: exynos: Enable BlueTooth support for Universal C210 board") Cc: stable@vger.kernel.org Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> --- This patch was developed with LLM assistance and have been tested on the real UniversalC210 board. Best regards Marek Szyprowski, PhD Samsung R&D Institute Poland --- .../boot/dts/samsung/exynos4210-universal_c210.dts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/samsung/exynos4210-universal_c210.dts b/arch/arm/boot/dts/samsung/exynos4210-universal_c210.dts index 744039068e8f..79c0c27d9377 100644 --- a/arch/arm/boot/dts/samsung/exynos4210-universal_c210.dts +++ b/arch/arm/boot/dts/samsung/exynos4210-universal_c210.dts @@ -537,7 +537,7 @@ &ohci { &pinctrl_1 { bt_shutdown: bt-shutdown-pins { - samsung,pins = "gpe1-4"; + samsung,pins = "gpk1-1"; samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; }; @@ -572,6 +572,12 @@ i2c_ddc_bus: i2c-ddc-bus-pins { samsung,pin-pud = <EXYNOS_PIN_PULL_UP>; samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; }; + + bt_reset: bt-reset-pins { + samsung,pins = "gpe1-4"; + samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; + samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; + }; }; &pwm { @@ -641,9 +647,10 @@ bluetooth { max-speed = <3000000>; - pinctrl-0 = <&bt_shutdown &bt_device_wakeup &bt_host_wakeup>; + pinctrl-0 = <&bt_shutdown &bt_reset &bt_device_wakeup &bt_host_wakeup>; pinctrl-names = "default"; - shutdown-gpios = <&gpe1 4 GPIO_ACTIVE_HIGH>; + shutdown-gpios = <&gpk1 1 GPIO_ACTIVE_HIGH>; + reset-gpios = <&gpe1 4 GPIO_ACTIVE_LOW>; device-wakeup-gpios = <&gpx3 1 GPIO_ACTIVE_HIGH>; host-wakeup-gpios = <&gpx2 6 GPIO_ACTIVE_HIGH>; }; -- 2.43.0 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] ARM: dts: samsung: exynos4210-universal_c210: fix BCM4330 Bluetooth GPIOs 2026-10-26 10:36 ` [PATCH] ARM: dts: samsung: exynos4210-universal_c210: fix BCM4330 Bluetooth GPIOs Marek Szyprowski @ 2026-11-02 12:26 ` Krzysztof Kozlowski 2026-11-02 12:43 ` Marek Szyprowski 0 siblings, 1 reply; 3+ messages in thread From: Krzysztof Kozlowski @ 2026-11-02 12:26 UTC (permalink / raw) To: Marek Szyprowski, linux-samsung-soc Cc: Krzysztof Kozlowski, Peter Griffin, Alim Akhtar, stable On 26/10/2026 11:36, Marek Szyprowski wrote: > BT_REG_ON (BT_EN) line of the BCM4330 WLAN/BT combo chip is connected to > the XMMC1CMD pad (GPK1[1]), while the XMDMADDR_4 pad (GPE1[4]) is > connected to BT_RST (BT_nRST). The Bluetooth node however used GPE1[4] > as shutdown-gpios and left the real BT_REG_ON line undriven, so it was > kept low by the default SoC pull-down. > > This worked only by accident: the internal regulators of the BCM4330 are > enabled when either WL_REG_ON or BT_REG_ON is high, so the Bluetooth core > was powered via WL_REG_ON driven by the SDIO WLAN power sequence, while > toggling GPE1[4] only released it from reset. Once 'cap-power-off-card' > was added to the SDIO node, the MMC core started to power off the WLAN > part (asserting WL_REG_ON low) whenever it was idle, what cut off the > Bluetooth power as well and resulted in HCI command timeouts. > > Fix this by using GPK1[1] as shutdown-gpios and describing GPE1[4] as > active-low reset-gpios. While touching this, move the GPE1[4] pin > configuration to the pinctrl_0 node, as GPE1 bank belongs to that pin > controller, what fixes the following error: > > samsung-pinctrl 11000000.pinctrl: does not have pin group gpe1-4 > > Fixes: 8929d4a9d204 ("ARM: dts: exynos: Enable BlueTooth support for Universal C210 board") Unknown SHA. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] ARM: dts: samsung: exynos4210-universal_c210: fix BCM4330 Bluetooth GPIOs 2026-11-02 12:26 ` Krzysztof Kozlowski @ 2026-11-02 12:43 ` Marek Szyprowski 0 siblings, 0 replies; 3+ messages in thread From: Marek Szyprowski @ 2026-11-02 12:43 UTC (permalink / raw) To: Krzysztof Kozlowski, linux-samsung-soc Cc: Krzysztof Kozlowski, Peter Griffin, Alim Akhtar, stable On 02.11.2026 13:26, Krzysztof Kozlowski wrote: > On 26/10/2026 11:36, Marek Szyprowski wrote: >> BT_REG_ON (BT_EN) line of the BCM4330 WLAN/BT combo chip is connected to >> the XMMC1CMD pad (GPK1[1]), while the XMDMADDR_4 pad (GPE1[4]) is >> connected to BT_RST (BT_nRST). The Bluetooth node however used GPE1[4] >> as shutdown-gpios and left the real BT_REG_ON line undriven, so it was >> kept low by the default SoC pull-down. >> >> This worked only by accident: the internal regulators of the BCM4330 are >> enabled when either WL_REG_ON or BT_REG_ON is high, so the Bluetooth core >> was powered via WL_REG_ON driven by the SDIO WLAN power sequence, while >> toggling GPE1[4] only released it from reset. Once 'cap-power-off-card' >> was added to the SDIO node, the MMC core started to power off the WLAN >> part (asserting WL_REG_ON low) whenever it was idle, what cut off the >> Bluetooth power as well and resulted in HCI command timeouts. >> >> Fix this by using GPK1[1] as shutdown-gpios and describing GPE1[4] as >> active-low reset-gpios. While touching this, move the GPE1[4] pin >> configuration to the pinctrl_0 node, as GPE1 bank belongs to that pin >> controller, what fixes the following error: >> >> samsung-pinctrl 11000000.pinctrl: does not have pin group gpe1-4 >> >> Fixes: 8929d4a9d204 ("ARM: dts: exynos: Enable BlueTooth support for Universal C210 board") > Unknown SHA. Fixes: 4e7787929854 ("ARM: dts: exynos: Enable Bluetooth support for Universal C210 board") Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-11-02 12:43 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CGME20261026103612eucas1p10fbe3777394cc604419299509c22a2e7@eucas1p1.samsung.com>
2026-10-26 10:36 ` [PATCH] ARM: dts: samsung: exynos4210-universal_c210: fix BCM4330 Bluetooth GPIOs Marek Szyprowski
2026-11-02 12:26 ` Krzysztof Kozlowski
2026-11-02 12:43 ` Marek Szyprowski
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox