← Documents Documentation/devicetree/bindings/watchdog/aspeed,ast2400-wdt.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / Watchdog

Aspeed Watchdog Timer Controllers

AST2400·2500·2600의 reset 종류, 외부 신호, polarity와 reset mask를 설명합니다.

Source pathDocumentation/devicetree/bindings/watchdog/aspeed,ast2400-wdt.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

aspeed,ast2400-wdt.yaml:1-142

AST2400·2500·2600의 reset 종류, 외부 신호, polarity와 reset mask를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, clock, interrupt, reset, 예제와 원문 줄 좌표를 원형대로 보존합니다.

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/watchdog/aspeed,ast2400-wdt.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Aspeed watchdog timer controllers
8
9 maintainers:
10 - Andrew Jeffery <[email protected]>
11
12 properties:
13 compatible:
14 enum:
15 - aspeed,ast2400-wdt
16 - aspeed,ast2500-wdt
17 - aspeed,ast2600-wdt
18
19 reg:
20 maxItems: 1
21
22 clocks:
23 maxItems: 1
24 description: >
25 The clock used to drive the watchdog counter. From the AST2500 no source
26 other than the 1MHz clock can be selected, so the clocks property is
27 optional.
28
29 aspeed,reset-type:
30 $ref: /schemas/types.yaml#/definitions/string
31 enum:
32 - cpu
33 - soc
34 - system
35 - none
36 default: system
37 description: >
38 The watchdog can be programmed to generate one of three different types of
39 reset when a timeout occcurs.
40
41 Specifying 'cpu' will only reset the processor on a timeout event.
42
43 Specifying 'soc' will reset a configurable subset of the SoC's controllers
44 on a timeout event. Controllers critical to the SoC's operation may remain
45 untouched. The set of SoC controllers to reset may be specified via the
46 aspeed,reset-mask property if the node has the aspeed,ast2500-wdt or
47 aspeed,ast2600-wdt compatible.
48
49 Specifying 'system' will reset all controllers on a timeout event, as if
50 EXTRST had been asserted.
51
52 Specifying 'none' will cause the timeout event to have no reset effect.
53 Another watchdog engine on the chip must be used for chip reset operations.
54
55 aspeed,alt-boot:
56 $ref: /schemas/types.yaml#/definitions/flag
57 description: >
58 Direct the watchdog to configure the SoC to boot from the alternative boot
59 region if a timeout occurs.
60
61 aspeed,external-signal:
62 $ref: /schemas/types.yaml#/definitions/flag
63 description: >
64 Assert the timeout event on an external signal pin associated with the
65 watchdog controller instance. The pin must be muxed appropriately.
66
67 aspeed,ext-pulse-duration:
68 $ref: /schemas/types.yaml#/definitions/uint32
69 description: >
70 The duration, in microseconds, of the pulse emitted on the external signal
71 pin.
72
73 aspeed,ext-push-pull:
74 $ref: /schemas/types.yaml#/definitions/flag
75 description: >
76 If aspeed,external-signal is specified in the node, set the external
77 signal pin's drive type to push-pull. If aspeed,ext-push-pull is not
78 specified then the pin is configured as open-drain.
79
80 aspeed,ext-active-high:
81 $ref: /schemas/types.yaml#/definitions/flag
82 description: >
83 If both aspeed,external-signal and aspeed,ext-push-pull are specified in
84 the node, set the pulse polarity to active-high. If aspeed,ext-active-high
85 is not specified then the pin is configured as active-low.
86
87 aspeed,reset-mask:
88 $ref: /schemas/types.yaml#/definitions/uint32-array
89 minItems: 1
90 maxItems: 2
91 description: >
92 A bitmask indicating which peripherals will be reset if the watchdog
93 timer expires. On AST2500 SoCs this should be a single word defined using
94 the AST2500_WDT_RESET_* macros; on AST2600 SoCs this should be a two-word
95 array with the first word defined using the AST2600_WDT_RESET1_* macros,
96 and the second word defined using the AST2600_WDT_RESET2_* macros.
97
98 required:
99 - compatible
100 - reg
101
102 allOf:
103 - if:
104 anyOf:
105 - required:
106 - aspeed,ext-push-pull
107 - required:
108 - aspeed,ext-active-high
109 - required:
110 - aspeed,reset-mask
111 then:
112 properties:
113 compatible:
114 enum:
115 - aspeed,ast2500-wdt
116 - aspeed,ast2600-wdt
117 - if:
118 required:
119 - aspeed,ext-active-high
120 then:
121 required:
122 - aspeed,ext-push-pull
123
124 additionalProperties: false
125
126 examples:
127 - |
128 watchdog@1e785000 {
129 compatible = "aspeed,ast2400-wdt";
130 reg = <0x1e785000 0x1c>;
131 aspeed,reset-type = "system";
132 aspeed,external-signal;
133 };
134 - |
135 #include <dt-bindings/watchdog/aspeed-wdt.h>
136 watchdog@1e785040 {
137 compatible = "aspeed,ast2600-wdt";
138 reg = <0x1e785040 0x40>;
139 aspeed,reset-type = "soc";
140 aspeed,reset-mask = <AST2600_WDT_RESET1_DEFAULT
141 (AST2600_WDT_RESET2_DEFAULT & ~AST2600_WDT_RESET2_LPC)>;
142 };
143

3. 한국어 전문 번역

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

Aspeed 워치독 컨트롤러

1-11

GPL-2.0-only 또는 BSD-2-Clause로 배포되는 이 스키마는 Aspeed AST2400, AST2500, AST2600 워치독 타이머 컨트롤러를 정의합니다. 관리자는 Andrew Jeffery입니다.

호환 기종과 counter 클록

12-28

`compatible`은 `aspeed,ast2400-wdt`, `aspeed,ast2500-wdt`, `aspeed,ast2600-wdt` 중 하나이고 `reg`는 하나의 영역입니다. `clocks`는 watchdog counter를 구동하는 클록 하나를 가리킵니다.

AST2500부터는 1MHz 클록 이외의 source를 선택할 수 없으므로 `clocks` 속성은 선택 사항입니다.

properties:
  compatible:
    enum:
      - aspeed,ast2400-wdt
      - aspeed,ast2500-wdt
      - aspeed,ast2600-wdt

  reg:
    maxItems: 1

  clocks:
    maxItems: 1
    description: >
      The clock used to drive the watchdog counter. From the AST2500 no source
      other than the 1MHz clock can be selected, so the clocks property is
      optional.

CPU·SoC·system·none reset

29-54

`aspeed,reset-type`은 timeout 때 생성할 reset 종류를 정하며 기본값은 `system`입니다. `cpu`는 processor만 reset합니다. `soc`는 설정 가능한 SoC controller 일부를 reset하되 SoC 동작에 필수적인 controller는 유지할 수 있고, AST2500·AST2600에서는 `aspeed,reset-mask`로 대상을 지정할 수 있습니다.

`system`은 `EXTRST`가 assert된 것처럼 모든 controller를 reset합니다. `none`은 timeout이 reset을 일으키지 않게 하므로 chip reset에는 다른 watchdog engine을 사용해야 합니다.

aspeed,reset-type:
  $ref: /schemas/types.yaml#/definitions/string
  enum:
    - cpu
    - soc
    - system
    - none
  default: system
  description: >
    The watchdog can be programmed to generate one of three different types of
    reset when a timeout occcurs.

    Specifying 'cpu' will only reset the processor on a timeout event.

    Specifying 'soc' will reset a configurable subset of the SoC's controllers
    on a timeout event. Controllers critical to the SoC's operation may remain
    untouched. The set of SoC controllers to reset may be specified via the
    aspeed,reset-mask property if the node has the aspeed,ast2500-wdt or
    aspeed,ast2600-wdt compatible.

    Specifying 'system' will reset all controllers on a timeout event, as if
    EXTRST had been asserted.

    Specifying 'none' will cause the timeout event to have no reset effect.
    Another watchdog engine on the chip must be used for chip reset operations.

대체 boot와 외부 pulse 신호

55-86

`aspeed,alt-boot`는 timeout 발생 시 SoC가 alternative boot region에서 부팅하도록 설정합니다. `aspeed,external-signal`은 해당 watchdog instance의 외부 신호 pin에 timeout event를 assert하며 pin mux도 알맞게 설정되어야 합니다.

`aspeed,ext-pulse-duration`은 외부 pin에 출력하는 pulse 길이를 microsecond 단위로 정합니다. `aspeed,ext-push-pull`을 지정하면 drive type이 push-pull이고, 생략하면 open-drain입니다. external signal과 push-pull을 모두 사용할 때 `aspeed,ext-active-high`을 지정하면 active-high, 생략하면 active-low polarity가 됩니다.

aspeed,alt-boot:
  $ref: /schemas/types.yaml#/definitions/flag
  description: >
    Direct the watchdog to configure the SoC to boot from the alternative boot
    region if a timeout occurs.

aspeed,external-signal:
  $ref: /schemas/types.yaml#/definitions/flag
  description: >
    Assert the timeout event on an external signal pin associated with the
    watchdog controller instance. The pin must be muxed appropriately.

aspeed,ext-pulse-duration:
  $ref: /schemas/types.yaml#/definitions/uint32
  description: >
    The duration, in microseconds, of the pulse emitted on the external signal
    pin.

aspeed,ext-push-pull:
  $ref: /schemas/types.yaml#/definitions/flag
  description: >
    If aspeed,external-signal is specified in the node, set the external
    signal pin's drive type to push-pull. If aspeed,ext-push-pull is not
    specified then the pin is configured as open-drain.

aspeed,ext-active-high:
  $ref: /schemas/types.yaml#/definitions/flag
  description: >
    If both aspeed,external-signal and aspeed,ext-push-pull are specified in
    the node, set the pulse polarity to active-high. If aspeed,ext-active-high
    is not specified then the pin is configured as active-low.

세대별 reset mask와 조건

87-124

`aspeed,reset-mask`는 watchdog timer 만료 시 reset할 peripheral을 나타내는 bitmask입니다. AST2500은 `AST2500_WDT_RESET_*` macro로 만든 word 하나를 사용합니다. AST2600은 첫 word에 `AST2600_WDT_RESET1_*`, 둘째 word에 `AST2600_WDT_RESET2_*` macro를 쓰는 2-word 배열을 사용합니다.

`compatible`과 `reg`가 필수입니다. `aspeed,ext-push-pull`, `aspeed,ext-active-high`, `aspeed,reset-mask` 중 하나라도 쓰면 compatible은 AST2500 또는 AST2600이어야 합니다. `aspeed,ext-active-high`을 쓰려면 `aspeed,ext-push-pull`도 반드시 필요합니다. 정의되지 않은 추가 속성은 허용하지 않습니다.

  aspeed,reset-mask:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 1
    maxItems: 2
    description: >
      A bitmask indicating which peripherals will be reset if the watchdog
      timer expires. On AST2500 SoCs this should be a single word defined using
      the AST2500_WDT_RESET_* macros; on AST2600 SoCs this should be a two-word
      array with the first word defined using the AST2600_WDT_RESET1_* macros,
      and the second word defined using the AST2600_WDT_RESET2_* macros.

required:
  - compatible
  - reg

allOf:
  - if:
      anyOf:
        - required:
            - aspeed,ext-push-pull
        - required:
            - aspeed,ext-active-high
        - required:
            - aspeed,reset-mask
    then:
      properties:
        compatible:
          enum:
            - aspeed,ast2500-wdt
            - aspeed,ast2600-wdt
  - if:
      required:
        - aspeed,ext-active-high
    then:
      required:
        - aspeed,ext-push-pull

additionalProperties: false

AST2400·AST2600 reset 예제

125-142

첫 예제는 주소 `0x1e785000`의 AST2400에서 `system` reset과 external signal을 사용합니다. 둘째 예제는 주소 `0x1e785040`의 AST2600에서 `soc` reset을 선택하고, 기본 RESET1 mask와 LPC를 제외한 RESET2 mask를 조합합니다.


examples:
  - |
    watchdog@1e785000 {
        compatible = "aspeed,ast2400-wdt";
        reg = <0x1e785000 0x1c>;
        aspeed,reset-type = "system";
        aspeed,external-signal;
    };
  - |
    #include <dt-bindings/watchdog/aspeed-wdt.h>
    watchdog@1e785040 {
        compatible = "aspeed,ast2600-wdt";
        reg = <0x1e785040 0x40>;
        aspeed,reset-type = "soc";
        aspeed,reset-mask = <AST2600_WDT_RESET1_DEFAULT
                            (AST2600_WDT_RESET2_DEFAULT & ~AST2600_WDT_RESET2_LPC)>;
    };