“Bluetooth device tree configuration”的版本间的差异

来自百问网嵌入式Linux wiki
第7行: 第7行:
  
 
== Bluetooth DT bindings documentation ==
 
== Bluetooth DT bindings documentation ==
The ''Bluetooth''<ref name="WLAN and BT external peripheral"> [[WLAN_and_Bluetooth_hardware_component]]</ref> ''' tree bindings are composed of:
+
The ''Bluetooth''<ref name="WLAN and BT external peripheral"> [[WLAN_and_Bluetooth_hardware_component]]</ref> ''' 树绑定由以下部分组成:
* STM32 USART device tree bindings <ref>[[Serial TTY device tree configuration]]</ref>
+
* STM32 USART设备树绑定 <ref>[[Serial TTY device tree configuration]]</ref>
* The Cypress device, used as child node <ref>{{CodeSource | Linux kernel | Documentation/devicetree/bindings/net/broadcom-bluetooth.txt}}</ref> of the host USART device to which the slave device is attached.
+
* 用作从属设备所连接的主机USART设备的子节点<ref>{{CodeSource | Linux kernel | Documentation/devicetree/bindings/net/broadcom-bluetooth.txt}}</ref> 的Cypress设备。
  
 
== Bluetooth DT configuration ==
 
== Bluetooth DT configuration ==

2020年11月5日 (四) 17:56的版本

Article purpose

本文介绍如何配置“蓝牙” [1] 将外围设备“(或与框架关联的外围设备)”分配给 Linux® OS.

使用 设备树机制 [2]执行配置。

在我们的平台上选择的蓝牙配套芯片是赛普拉斯(Cypress)芯片 [3]

Bluetooth DT bindings documentation

The Bluetooth[4] 树绑定由以下部分组成:

  • STM32 USART设备树绑定 [5]
  • 用作从属设备所连接的主机USART设备的子节点[6] 的Cypress设备。

Bluetooth DT configuration

This hardware description is a combination of the STM32 microprocessor device tree files (.dtsi extension) and board device tree files (.dts extension). See the device tree for an explanation of the device tree file split.

Bluetooth DT configuration (STM32 level)

The USART peripheral node is located in stm32mp157c.dtsi

  • This is a set of properties that may not vary for given STM32 device, such as: registers address, clock, reset...

The USART DT configuration is explained in Serial TTY device tree configuration

Bluetooth DT configuration (board level)

<securetransclude src="ProtectedTemplate:ReviewsComments" params="NSA W940 : I would have say as below in stead of you first proposal?"></securetransclude>{{#set:Has reviews comments=true}} For ecosystem release ≥ v1.1.0{{#set:Ecosystem release=revision of a previous flow 1.1.0}} :
For ecosystem release v1.1.0{{#set:Ecosystem release=revision of a previous flow 1.1.0}} :
[Description for the STM32MP15-Ecosystem-v1.1.0 revision] <securetransclude src="ProtectedTemplate:ReviewsComments" params="NSA W940 : why adding this sentence into brackets?"></securetransclude>{{#set:Has reviews comments=true}}

&usart2 {
       ... 
       st,hw-flow-ctrl;                                       /* enable hardware flow control */
       ...
       bluetooth {                                            /* node of Bluetooth companion chip */         
               shutdown-gpios = <&gpioz 6 GPIO_ACTIVE_HIGH>;  /* GPIO specifier, used to enable the BT module */
               compatible = "brcm,bcm43438-bt";
               max-speed = <3000000>;
       };
};

Specific properties for USART:

  • st,hw-flow-ctrl: bool flag to enable hardware flow control

For ecosystem release ≤ v1.0.0{{#set:Ecosystem release=revision of a previous flow 1.0.0}} :

[Description for the STM32MP15-Ecosystem-v1.0.0 and previous revisions] <securetransclude src="ProtectedTemplate:ReviewsComments" params="NSA W940 : why adding this sentence into brackets ?"></securetransclude>{{#set:Has reviews comments=true}}

&usart2 {
       ... 
       st,hw-flow-ctrl;                            /* enable hardware flow control */
       ...
       bluetooth {                                 /* node of Bluetooth companion chip */
               pinctrl-names = "default";          
               pinctrl-0 = <&btreg>;               /* GPIO to power up or down the internal companion chip regulators */
               compatible = "brcm,bcm43438-bt";
               max-speed = <3000000>;
       };
};

Specific properties for USART:

  • btreg: GPIO to power up or down the internal CYW4343W regulators used by the Bluetooth section
  • st,hw-flow-ctrl: bool flag to enable hardware flow control

How to configure Bluetooth using CubeMX

The STM32CubeMX tool can be used to configure the STM32MPU device and get the corresponding platform configuration device tree files.
The STM32CubeMX may not support all the properties described in the above DT bindings documentation paragraph. If so, the tool inserts user sections in the generated device tree. These sections can then be edited to add some properties and they are preserved from one generation to another. Refer to STM32CubeMX user manual for further information.