Hi Thierry,Ok. To me, at least the enable gpio seems required.
Add binding document for serial bluetooth chips using Qualcomm protocol.
Signed-off-by: Thierry Escande <thierry.escande@xxxxxxxxxx>
---
v5:
- Rename 'bt-disable-n' gpio as 'enable'
v4:
- Move bt-disable-n-gpios to required properties section
- Add clocks and pinctrl-0 as required properties
v3: no change
v2: no change
.../devicetree/bindings/net/qualcomm-bluetooth.txt | 34 ++++++++++++++++++++++
1 file changed, 34 insertions(+)
create mode 100644 Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
diff --git a/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
new file mode 100644
index 000000000000..bbc2973634b2
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt
@@ -0,0 +1,34 @@
+Qualcomm Bluetooth Chips
+---------------------
+
+This documents the binding structure and common properties for serial
+attached Qualcomm devices.
+
+Serial attached Qualcomm devices shall be a child node of the host UART
+device the slave device is attached to.
+
+Required properties:
+ - compatible: should contain one of the following:
+ * "qcom,qca6174-bt"
+ - enable-gpios: gpio specifier used to enable chip
+ - pinctrl-0: pin phandle for bt_en gpio
+ - clocks: clock phandle for SUSCLK_32KHZ
if I compare this with broadcom-bluetooth.txt or ti-bluetooth.txt then besides compatible, everything else is optional. The nokia-bluetooth.txt has everything required, but that is also a really specific platform.
Can we be less restrictive for a QCA general purpose chip?
Sure. It reclaims this gpio pin for this device. Will add it to the documentation.
+
+Example:
+
+serial@7570000 {
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&blsp1_uart1_default>;
+ pinctrl-1 = <&blsp1_uart1_sleep>;
+
+ bluetooth {
+ compatible = "qcom,qca6174-bt";
+
+ enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&bt_en_pin_a>;
This one I do not understand and you might want to shed some light into why this is done that way.
No need for a name as there is only one clk obtained by passing a NULL id to devm_gpiod_get().
+
+ clocks = <&divclk4>;
No clock-names?
Regards
Marcel