diff options
Diffstat (limited to 'bcm2835-fix-bluetooth.patch')
-rw-r--r-- | bcm2835-fix-bluetooth.patch | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/bcm2835-fix-bluetooth.patch b/bcm2835-fix-bluetooth.patch new file mode 100644 index 000000000..fd11078fe --- /dev/null +++ b/bcm2835-fix-bluetooth.patch @@ -0,0 +1,109 @@ +From patchwork Sun Feb 25 14:10:52 2018 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [1/4] Bluetooth: hci_bcm: Make shutdown and device wake GPIO optional +From: Stefan Wahren <stefan.wahren@i2se.com> +X-Patchwork-Id: 10240917 +Message-Id: <1519567855-26105-2-git-send-email-stefan.wahren@i2se.com> +To: Loic Poulain <loic.poulain@gmail.com>, + =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Danis?= <frederic.danis.oss@gmail.com>, + Marcel Holtmann <marcel@holtmann.org>, + Johan Hedberg <johan.hedberg@gmail.com>, Eric Anholt <eric@anholt.net>, + Rob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com> +Cc: Stefan Wahren <stefan.wahren@i2se.com>, devicetree@vger.kernel.org, + Florian Fainelli <f.fainelli@gmail.com>, + Phil Elwell <phil@raspberrypi.org>, + linux-bluetooth@vger.kernel.org, Lukas Wunner <lukas@wunner.de>, + linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org +Date: Sun, 25 Feb 2018 15:10:52 +0100 + +According to the devicetree binding the shutdown and device wake +GPIOs are optional. Since commit 3e81a4ca51a1 ("Bluetooth: hci_bcm: +Mandate presence of shutdown and device wake GPIO") this driver +won't probe anymore on Raspberry Pi 3 and Zero W (no device wake GPIO +connected). So fix this regression by reverting this commit partially. + +Cc: Lukas Wunner <lukas@wunner.de> +Fixes: 3e81a4ca51a1 ("Bluetooth: hci_bcm: Mandate presence of shutdown and device wake GPIO") +Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> +--- + drivers/bluetooth/hci_bcm.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c +index 0438a64..f8728eb 100644 +--- a/drivers/bluetooth/hci_bcm.c ++++ b/drivers/bluetooth/hci_bcm.c +@@ -922,12 +922,14 @@ static int bcm_get_resources(struct bcm_device *dev) + + dev->clk = devm_clk_get(dev->dev, NULL); + +- dev->device_wakeup = devm_gpiod_get(dev->dev, "device-wakeup", +- GPIOD_OUT_LOW); ++ dev->device_wakeup = devm_gpiod_get_optional(dev->dev, ++ "device-wakeup", ++ GPIOD_OUT_LOW); + if (IS_ERR(dev->device_wakeup)) + return PTR_ERR(dev->device_wakeup); + +- dev->shutdown = devm_gpiod_get(dev->dev, "shutdown", GPIOD_OUT_LOW); ++ dev->shutdown = devm_gpiod_get_optional(dev->dev, "shutdown", ++ GPIOD_OUT_LOW); + if (IS_ERR(dev->shutdown)) + return PTR_ERR(dev->shutdown); + +From patchwork Sun Feb 25 14:10:53 2018 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [2/4] ARM: dts: bcm283x: Apply pull settings to Zero W relevant groups +From: Stefan Wahren <stefan.wahren@i2se.com> +X-Patchwork-Id: 10240919 +Message-Id: <1519567855-26105-3-git-send-email-stefan.wahren@i2se.com> +To: Loic Poulain <loic.poulain@gmail.com>, + =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Danis?= <frederic.danis.oss@gmail.com>, + Marcel Holtmann <marcel@holtmann.org>, + Johan Hedberg <johan.hedberg@gmail.com>, Eric Anholt <eric@anholt.net>, + Rob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com> +Cc: Stefan Wahren <stefan.wahren@i2se.com>, devicetree@vger.kernel.org, + Florian Fainelli <f.fainelli@gmail.com>, + Phil Elwell <phil@raspberrypi.org>, + linux-bluetooth@vger.kernel.org, Lukas Wunner <lukas@wunner.de>, + linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org +Date: Sun, 25 Feb 2018 15:10:53 +0100 + +Instead of keeping the firmware's pull settings, we better apply +them via the devicetree pin control. Start with the RPi Zero W relevant +first to keep the effort low. + +Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> +--- + arch/arm/boot/dts/bcm283x.dtsi | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi +index 8d9a0df..1a50b67 100644 +--- a/arch/arm/boot/dts/bcm283x.dtsi ++++ b/arch/arm/boot/dts/bcm283x.dtsi +@@ -223,6 +223,7 @@ + gpclk2_gpio43: gpclk2_gpio43 { + brcm,pins = <43>; + brcm,function = <BCM2835_FSEL_ALT0>; ++ brcm,pull = <BCM2835_PUD_OFF>; + }; + + i2c0_gpio0: i2c0_gpio0 { +@@ -335,10 +336,12 @@ + uart0_ctsrts_gpio30: uart0_ctsrts_gpio30 { + brcm,pins = <30 31>; + brcm,function = <BCM2835_FSEL_ALT3>; ++ brcm,pull = <BCM2835_PUD_UP BCM2835_PUD_OFF>; + }; + uart0_gpio32: uart0_gpio32 { + brcm,pins = <32 33>; + brcm,function = <BCM2835_FSEL_ALT3>; ++ brcm,pull = <BCM2835_PUD_OFF BCM2835_PUD_UP>; + }; + uart0_gpio36: uart0_gpio36 { + brcm,pins = <36 37>; |