← Documents Documentation/devicetree/bindings/timer/nxp,tpm-timer.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / Timer

NXP Low Power Timer/PWM Module

NXP TPM의 input capture·PWM과 ipg·per clock 구성을 설명합니다.

Source pathDocumentation/devicetree/bindings/timer/nxp,tpm-timer.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

nxp,tpm-timer.yaml:1-65

NXP TPM의 input capture·PWM과 ipg·per clock 구성을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며 compatible, interrupt, clock, register, phandle, 수치와 줄 좌표를 원형대로 보존합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/timer/nxp,tpm-timer.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: NXP Low Power Timer/Pulse Width Modulation Module (TPM)
8
9 maintainers:
10 - Dong Aisheng <[email protected]>
11
12 description: |
13 The Timer/PWM Module (TPM) supports input capture, output compare,
14 and the generation of PWM signals to control electric motor and power
15 management applications. The counter, compare and capture registers
16 are clocked by an asynchronous clock that can remain enabled in low
17 power modes. TPM can support global counter bus where one TPM drives
18 the counter bus for the others, provided bit width is the same.
19
20 properties:
21 compatible:
22 oneOf:
23 - const: fsl,imx7ulp-tpm
24 - items:
25 - const: fsl,imx8ulp-tpm
26 - const: fsl,imx7ulp-tpm
27
28 reg:
29 maxItems: 1
30
31 interrupts:
32 maxItems: 1
33
34 clocks:
35 items:
36 - description: SoC TPM ipg clock
37 - description: SoC TPM per clock
38
39 clock-names:
40 items:
41 - const: ipg
42 - const: per
43
44 required:
45 - compatible
46 - reg
47 - interrupts
48 - clocks
49 - clock-names
50
51 additionalProperties: false
52
53 examples:
54 - |
55 #include <dt-bindings/clock/imx7ulp-clock.h>
56 #include <dt-bindings/interrupt-controller/arm-gic.h>
57
58 timer@40260000 {
59 compatible = "fsl,imx7ulp-tpm";
60 reg = <0x40260000 0x1000>;
61 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
62 clocks = <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>,
63 <&pcc2 IMX7ULP_CLK_LPTPM5>;
64 clock-names = "ipg", "per";
65 };
66

3. 한국어 전문 번역

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

NXP Low Power Timer/PWM Module

1-19

GPL-2.0-only 또는 BSD-2-Clause 라이선스의 이 스키마는 NXP Low Power Timer/Pulse Width Modulation Module(TPM)을 정의합니다. TPM은 input capture, output compare와 전기 모터 및 전력 관리 응용을 제어하는 PWM signal 생성을 지원합니다. Counter, compare, capture register는 low power mode에서도 활성 상태를 유지할 수 있는 asynchronous clock으로 구동됩니다. Bit width가 같다면 한 TPM이 나머지 TPM을 위한 global counter bus를 구동할 수도 있습니다. Maintainer는 Dong Aisheng입니다.

i.MX7ULP·i.MX8ULP와 두 clock

20-52

`fsl,imx7ulp-tpm`은 단독 compatible이고, i.MX8ULP는 `fsl,imx8ulp-tpm` 뒤에 `fsl,imx7ulp-tpm` fallback을 둡니다. `reg`와 `interrupts`는 각각 최대 한 항목입니다. `clocks`는 SoC TPM ipg clock과 per clock 두 개이며 `clock-names`도 `ipg`, `per` 순서입니다. `compatible`, `reg`, `interrupts`, `clocks`, `clock-names`가 필수이고 추가 속성은 허용되지 않습니다.

properties:
  compatible:
    oneOf:
      - const: fsl,imx7ulp-tpm
      - items:
          - const: fsl,imx8ulp-tpm
          - const: fsl,imx7ulp-tpm

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    items:
      - description: SoC TPM ipg clock
      - description: SoC TPM per clock

  clock-names:
    items:
      - const: ipg
      - const: per

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names

additionalProperties: false

i.MX7ULP LPTPM5 예제

53-65

예제는 `timer@40260000`에 0x1000-byte register 영역과 GIC SPI 22 level-high interrupt를 지정합니다. `scg1`의 `IMX7ULP_CLK_NIC1_BUS_DIV`를 `ipg`, `pcc2`의 `IMX7ULP_CLK_LPTPM5`를 `per` clock으로 연결합니다.

examples:
  - |
    #include <dt-bindings/clock/imx7ulp-clock.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    timer@40260000 {
        compatible = "fsl,imx7ulp-tpm";
        reg = <0x40260000 0x1000>;
        interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>,
                 <&pcc2 IMX7ULP_CLK_LPTPM5>;
        clock-names = "ipg", "per";
    };