요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/spmi/spmi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: System Power Management Interface (SPMI) Controller
maintainers:
- Stephen Boyd <sboyd@kernel.org>
description: |
The System Power Management (SPMI) controller is a 2-wire bus defined
by the MIPI Alliance for power management control to be used on SoC designs.
SPMI controllers are modelled in device tree using a generic set of
bindings defined here, plus any bus controller specific properties, if
needed.
Each SPMI controller has zero or more child nodes (up to 16 ones), each
one representing an unique slave at the bus.
properties:
$nodename:
pattern: "^spmi@.*"
"#address-cells":
const: 2
"#size-cells":
const: 0
patternProperties:
"@[0-9a-f]$":
description: up to 16 child PMIC nodes
type: object
properties:
reg:
items:
- minItems: 1
items:
- minimum: 0
maximum: 0xf
- enum: [ 0 ]
description:
0 means user ID address. 1 is reserved for group ID
address.
required:
- reg
required:
- reg
additionalProperties: true
examples:
- |
#include <dt-bindings/spmi/spmi.h>
spmi@0 {
reg = <0 0>;
#address-cells = <2>;
#size-cells = <0>;
child@0 {
reg = <0 SPMI_USID>;
};
child@7 {
reg = <7 SPMI_USID>;
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
공통 SPMI controller schema
1-22이 GPL-2.0 YAML schema는 System Power Management Interface(SPMI) Controller의 공통 binding을 정의합니다. Maintainer는 Stephen Boyd입니다.
SPMI controller는 MIPI Alliance가 SoC 설계의 power management control 용도로 정의한 2-wire bus입니다. Device tree에서는 여기 정의된 공통 binding에 필요한 경우 bus controller별 속성을 더해 표현합니다.
각 SPMI controller는 0개 이상, 최대 16개의 child node를 가지며 각 child는 bus에서 고유한 slave 하나를 나타냅니다.
Controller node와 주소 형식
23-32Controller node name은 `^spmi@.*` pattern을 따라야 합니다. `#address-cells`는 2이고 `#size-cells`는 0입니다.
Child PMIC와 USID reg
33-52이름이 `@[0-9a-f]$`로 끝나는 object는 최대 16개의 child PMIC node를 나타냅니다. 각 child에는 `reg`가 필수입니다.
`reg`의 첫 cell은 0~0xf 범위의 slave ID입니다. 두 번째 cell은 0만 허용하며 이는 user ID address를 뜻합니다. 값 1은 group ID address용으로 예약되어 있습니다.
Controller 필수 속성과 확장
53-57Controller 자체에도 `reg`가 필수입니다. `additionalProperties: true`이므로 controller별 schema가 필요한 추가 속성을 정의할 수 있습니다.
USID 0과 7의 child 예제
58-75예제는 `spmi@0` controller에 address cell 2개와 size cell 0개를 설정하고, `SPMI_USID` 주소 유형을 사용하는 USID 0과 USID 7의 child를 배치합니다.
#include <dt-bindings/spmi/spmi.h>
spmi@0 {
reg = <0 0>;
#address-cells = <2>;
#size-cells = <0>;
child@0 {
reg = <0 SPMI_USID>;
};
child@7 {
reg = <7 SPMI_USID>;
};
};
요약과 해설
spmi.yaml:1-75공통 SPMI controller와 최대 16개 slave의 USID 주소 형식을 설명합니다. 접을 수 있는 영어 원문 전체와 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·symbol·source path·수치·예제 코드를 원형대로 유지합니다.