On Sat, Mar 4, 2017 at 5:58 AM, Sebastian Reichel <s...@kernel.org> wrote: > This adds a driver for the Nokia H4+ protocol, which is used > at least on the Nokia N9, N900 & N950. > > Signed-off-by: Sebastian Reichel <s...@kernel.org> > --- > .../devicetree/bindings/net/nokia-bluetooth.txt | 51 ++
This should be separate and before the dts files. > drivers/bluetooth/Kconfig | 12 + > drivers/bluetooth/Makefile | 2 + > drivers/bluetooth/hci_nokia.c | 839 > +++++++++++++++++++++ > 4 files changed, 904 insertions(+) > create mode 100644 Documentation/devicetree/bindings/net/nokia-bluetooth.txt > create mode 100644 drivers/bluetooth/hci_nokia.c > > diff --git a/Documentation/devicetree/bindings/net/nokia-bluetooth.txt > b/Documentation/devicetree/bindings/net/nokia-bluetooth.txt > new file mode 100644 > index 000000000000..6c80a92f31e2 > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/nokia-bluetooth.txt > @@ -0,0 +1,51 @@ > +Nokia Bluetooth Chips > +--------------------- > + > +Nokia phones often come with UART connected bluetooth chips from different > +vendors and modified device API. Those devices speak a protocol named H4+ > +by Nokia, which is similar to the H4 protocol from the Bluetooth standard. > +In addition to the H4 protocol it specifies two more UART status lines for > +wakeup of UART transceivers to improve power management and a few new packet > +types used to negotiate uart speed. > + > +Required properties: > + > + - compatible: should be one of the following: > + * "nokia,brcm,bcm2048" > + * "nokia,ti,wl1271-bluetooth" Drop the chip vendors' prefix here. I don't really want to start a pattern of 2 vendor prefixes. > + - reset-gpios: GPIO specifier, used to reset the BT module Need to state active state. > + - bluetooth-wakeup-gpios: GPIO specifier, used to wakeup the BT module > + - host-wakeup-gpios: GPIO specifier, used to wakeup the host processor I think most BCM devices have these. These apply to the TI device too? If not, then add brcm prefix. Also need to specify the active state. > + - clock-names: should be "sysclk" > + - clocks: should contain a clock specifier for every name in clock-names > + > +Optional properties: > + > + - None > + > +Example: > + > +/ { > + /* controlled (enabled/disabled) directly by BT module */ > + bluetooth_clk: vctcxo { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <38400000>; > + }; > +}; > + > +&uart2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&uart2_pins>; > + > + bluetooth { > + compatible = "nokia,ti,wl1271-bluetooth"; > + > + reset-gpios = <&gpio1 26 GPIO_ACTIVE_LOW>; /* gpio26 */ > + host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* gpio101 */ > + bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* > gpio37 */ > + > + clocks = <&bluetooth_clk>; > + clock-names = "sysclk"; > + }; > +};