← Documents Documentation/devicetree/bindings/net/bluetooth/nokia,h4p-bluetooth.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

Nokia H4+ Bluetooth

Nokia H4+ UART Bluetooth의 양방향 wakeup GPIO와 system clock binding입니다.

Source pathDocumentation/devicetree/bindings/net/bluetooth/nokia,h4p-bluetooth.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약과 해설

nokia,h4p-bluetooth.txt:1-51

H4와 비교해 추가된 전력 관리 status line과 UART 속도 협상 packet의 역할을 설명합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 Nokia Bluetooth Chips
2 ---------------------
3
4 Nokia phones often come with UART connected bluetooth chips from different
5 vendors and modified device API. Those devices speak a protocol named H4+
6 (also known as h4p) by Nokia, which is similar to the H4 protocol from the
7 Bluetooth standard. In addition to the H4 protocol it specifies two more
8 UART status lines for wakeup of UART transceivers to improve power management
9 and a few new packet types used to negotiate uart speed.
10
11 Required properties:
12
13 - compatible: should contain "nokia,h4p-bluetooth" as well as one of the following:
14 * "brcm,bcm2048-nokia"
15 * "ti,wl1271-bluetooth-nokia"
16 - reset-gpios: GPIO specifier, used to reset the BT module (active low)
17 - bluetooth-wakeup-gpios: GPIO specifier, used to wakeup the BT module (active high)
18 - host-wakeup-gpios: GPIO specifier, used to wakeup the host processor (active high)
19 - clock-names: should be "sysclk"
20 - clocks: should contain a clock specifier for every name in clock-names
21
22 Optional properties:
23
24 - None
25
26 Example:
27
28 / {
29 /* controlled (enabled/disabled) directly by BT module */
30 bluetooth_clk: vctcxo {
31 compatible = "fixed-clock";
32 #clock-cells = <0>;
33 clock-frequency = <38400000>;
34 };
35 };
36
37 &uart2 {
38 pinctrl-names = "default";
39 pinctrl-0 = <&uart2_pins>;
40
41 bluetooth {
42 compatible = "ti,wl1271-bluetooth-nokia", "nokia,h4p-bluetooth";
43
44 reset-gpios = <&gpio1 26 GPIO_ACTIVE_LOW>; /* gpio26 */
45 host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* gpio101 */
46 bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* gpio37 */
47
48 clocks = <&bluetooth_clk>;
49 clock-names = "sysclk";
50 };
51 };
52

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

Nokia H4+ Bluetooth 칩

1-10

Nokia 휴대전화에는 여러 공급업체의 UART 연결 Bluetooth 칩과 수정된 장치 API가 흔히 사용됩니다. 이 장치들은 Nokia가 H4+ 또는 h4p라고 부르는 프로토콜을 사용하며, 이는 Bluetooth 표준의 H4 프로토콜과 유사합니다.

H4+는 H4에 더해 전력 관리를 개선하도록 UART transceiver를 깨우는 UART status line 두 개와 UART 속도 협상에 쓰이는 몇 가지 새 packet type을 정의합니다.

Nokia H4+ 전력 관리 신호
Host processorbluetooth-wakeup-gpios
bluetooth-wakeup-gpiosBluetooth module
Bluetooth modulehost-wakeup-gpios
host-wakeup-gpiosHost processor

호스트와 Bluetooth 모듈이 별도 wakeup GPIO로 서로를 깨우고 UART로 H4+ 패킷을 교환합니다.

필수 속성과 선택 속성

11-25

`compatible`에는 `nokia,h4p-bluetooth`와 함께 `brcm,bcm2048-nokia` 또는 `ti,wl1271-bluetooth-nokia` 중 하나가 들어가야 합니다.

`reset-gpios`는 Bluetooth 모듈을 재설정하는 active-low GPIO입니다. `bluetooth-wakeup-gpios`는 모듈을 깨우는 active-high GPIO이고, `host-wakeup-gpios`는 host processor를 깨우는 active-high GPIO입니다.

`clock-names`는 `sysclk`여야 하며 `clocks`에는 `clock-names`의 각 이름에 해당하는 clock specifier가 있어야 합니다. 선택 속성은 없습니다.

WL1271 H4+ 예제

26-51

예제의 38.4MHz fixed clock은 Bluetooth 모듈이 직접 enable/disable합니다. UART2의 자식 노드는 TI WL1271과 Nokia H4+ 호환 문자열, reset 및 양방향 wakeup GPIO, `sysclk`를 지정합니다.

/ {
       /* 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 = "ti,wl1271-bluetooth-nokia", "nokia,h4p-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";
       };
};