요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/usb/qcom,pmic-typec.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm PMIC based USB Type-C block
maintainers:
- Bryan O'Donoghue <bryan.odonoghue@linaro.org>
description:
Qualcomm PMIC Type-C block
properties:
compatible:
oneOf:
- enum:
- qcom,pmi632-typec
- qcom,pm8150b-typec
- items:
- enum:
- qcom,pm6150-typec
- qcom,pm7250b-typec
- const: qcom,pm8150b-typec
- items:
- enum:
- qcom,pm4125-typec
- const: qcom,pmi632-typec
connector:
type: object
$ref: /schemas/connector/usb-connector.yaml#
unevaluatedProperties: false
reg:
description: Type-C port and pdphy SPMI register base offsets
minItems: 1
maxItems: 2
interrupts:
minItems: 8
items:
- description: Type-C CC attach notification, VBUS error, tCCDebounce done
- description: Type-C VCONN powered
- description: Type-C CC state change
- description: Type-C VCONN over-current
- description: Type-C VBUS state change
- description: Type-C Attach/detach notification
- description: Type-C Legacy cable detect
- description: Type-C Try.Src Try.Snk state change
- description: Power Domain Signal TX - HardReset or CableReset signal TX
- description: Power Domain Signal RX - HardReset or CableReset signal RX
- description: Power Domain TX complete
- description: Power Domain RX complete
- description: Power Domain TX fail
- description: Power Domain TX message discard
- description: Power Domain RX message discard
- description: Power Domain Fast Role Swap event
interrupt-names:
minItems: 8
items:
- const: or-rid-detect-change
- const: vpd-detect
- const: cc-state-change
- const: vconn-oc
- const: vbus-change
- const: attach-detach
- const: legacy-cable-detect
- const: try-snk-src-detect
- const: sig-tx
- const: sig-rx
- const: msg-tx
- const: msg-rx
- const: msg-tx-failed
- const: msg-tx-discarded
- const: msg-rx-discarded
- const: fr-swap
vdd-vbus-supply:
description: VBUS power supply.
vdd-pdphy-supply:
description: VDD regulator supply to the PDPHY.
port:
$ref: /schemas/graph.yaml#/properties/port
description:
Contains a port which produces data-role switching messages.
required:
- compatible
- reg
- interrupts
- interrupt-names
- vdd-vbus-supply
allOf:
- if:
properties:
compatible:
contains:
enum:
- qcom,pmi632-typec
then:
properties:
reg:
maxItems: 1
interrupts:
maxItems: 8
interrupt-names:
maxItems: 8
vdd-pdphy-supply: false
else:
properties:
reg:
maxItems: 2
interrupts:
minItems: 16
interrupt-names:
maxItems: 16
required:
- vdd-pdphy-supply
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/usb/pd.h>
pmic {
#address-cells = <1>;
#size-cells = <0>;
pm8150b_typec: typec@1500 {
compatible = "qcom,pm8150b-typec";
reg = <0x1500>,
<0x1700>;
interrupts = <0x2 0x15 0x00 IRQ_TYPE_EDGE_RISING>,
<0x2 0x15 0x01 IRQ_TYPE_EDGE_BOTH>,
<0x2 0x15 0x02 IRQ_TYPE_EDGE_RISING>,
<0x2 0x15 0x03 IRQ_TYPE_EDGE_BOTH>,
<0x2 0x15 0x04 IRQ_TYPE_EDGE_RISING>,
<0x2 0x15 0x05 IRQ_TYPE_EDGE_RISING>,
<0x2 0x15 0x06 IRQ_TYPE_EDGE_BOTH>,
<0x2 0x15 0x07 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x00 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x01 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x02 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x03 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x04 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x05 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x06 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x07 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "or-rid-detect-change",
"vpd-detect",
"cc-state-change",
"vconn-oc",
"vbus-change",
"attach-detach",
"legacy-cable-detect",
"try-snk-src-detect",
"sig-tx",
"sig-rx",
"msg-tx",
"msg-rx",
"msg-tx-failed",
"msg-tx-discarded",
"msg-rx-discarded",
"fr-swap";
vdd-vbus-supply = <&pm8150b_vbus>;
vdd-pdphy-supply = <&vreg_l2a_3p1>;
connector {
compatible = "usb-c-connector";
power-role = "source";
data-role = "dual";
self-powered;
source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_DUAL_ROLE |
PDO_FIXED_USB_COMM | PDO_FIXED_DATA_SWAP)>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
pmic_typec_hs_in: endpoint {
remote-endpoint = <&usb_hs_out>;
};
};
port@1 {
reg = <1>;
pmic_typec_ss_in: endpoint {
remote-endpoint = <&usb_phy_typec_ss_out>;
};
};
port@2 {
reg = <2>;
pmic_typec_sbu: endpoint {
remote-endpoint = <&usb_mux_sbu>;
};
};
};
};
};
};
usb {
dr_mode = "otg";
usb-role-switch;
port {
usb_hs_out: endpoint {
remote-endpoint = <&pmic_typec_hs_in>;
};
};
};
usb-phy {
orientation-switch;
port {
usb_phy_typec_ss_out: endpoint {
remote-endpoint = <&pmic_typec_ss_in>;
};
};
};
usb-mux {
orientation-switch;
mode-switch;
port {
usb_mux_sbu: endpoint {
remote-endpoint = <&pmic_typec_sbu>;
};
};
};
...
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Qualcomm PMIC USB Type-C block
1-14GPL-2.0-only 또는 BSD-2-Clause로 배포되는 이 schema는 Qualcomm PMIC 기반 USB Type-C block을 정의합니다. 관리자는 Bryan O'Donoghue입니다.
PMIC compatible, connector와 register
15-40직접 호환 variant는 `qcom,pmi632-typec`와 `qcom,pm8150b-typec`입니다. PM6150·PM7250B는 각각 SoC-specific 문자열 뒤에 `qcom,pm8150b-typec` fallback을 사용하고, PM4125는 `qcom,pm4125-typec`, `qcom,pmi632-typec` 순서입니다.
`connector` child는 공통 `usb-connector.yaml`을 따르며 평가되지 않은 추가 속성을 허용하지 않습니다. `reg`는 Type-C port와 PDPHY의 SPMI register base offset을 1~2개 지정합니다.
properties:
compatible:
oneOf:
- enum:
- qcom,pmi632-typec
- qcom,pm8150b-typec
- items:
- enum:
- qcom,pm6150-typec
- qcom,pm7250b-typec
- const: qcom,pm8150b-typec
- items:
- enum:
- qcom,pm4125-typec
- const: qcom,pmi632-typec
connector:
type: object
$ref: /schemas/connector/usb-connector.yaml#
unevaluatedProperties: false
reg:
description: Type-C port and pdphy SPMI register base offsets
minItems: 1
maxItems: 2
Type-C·Power Delivery 16개 event
41-80interrupt는 최소 8개입니다. 앞의 여덟 event는 CC attach/VBUS error/tCCDebounce, VCONN powered, CC state change, VCONN over-current, VBUS state change, attach/detach, legacy cable detect, Try.Src/Try.Snk state change입니다.
뒤의 여덟 event는 HardReset 또는 CableReset signal TX·RX, PD message TX·RX complete, TX fail, TX·RX discard, Fast Role Swap입니다.
이름은 `or-rid-detect-change`, `vpd-detect`, `cc-state-change`, `vconn-oc`, `vbus-change`, `attach-detach`, `legacy-cable-detect`, `try-snk-src-detect`, `sig-tx`, `sig-rx`, `msg-tx`, `msg-rx`, `msg-tx-failed`, `msg-tx-discarded`, `msg-rx-discarded`, `fr-swap` 순서입니다.
interrupts:
minItems: 8
items:
- description: Type-C CC attach notification, VBUS error, tCCDebounce done
- description: Type-C VCONN powered
- description: Type-C CC state change
- description: Type-C VCONN over-current
- description: Type-C VBUS state change
- description: Type-C Attach/detach notification
- description: Type-C Legacy cable detect
- description: Type-C Try.Src Try.Snk state change
- description: Power Domain Signal TX - HardReset or CableReset signal TX
- description: Power Domain Signal RX - HardReset or CableReset signal RX
- description: Power Domain TX complete
- description: Power Domain RX complete
- description: Power Domain TX fail
- description: Power Domain TX message discard
- description: Power Domain RX message discard
- description: Power Domain Fast Role Swap event
interrupt-names:
minItems: 8
items:
- const: or-rid-detect-change
- const: vpd-detect
- const: cc-state-change
- const: vconn-oc
- const: vbus-change
- const: attach-detach
- const: legacy-cable-detect
- const: try-snk-src-detect
- const: sig-tx
- const: sig-rx
- const: msg-tx
- const: msg-rx
- const: msg-tx-failed
- const: msg-tx-discarded
- const: msg-rx-discarded
- const: fr-swap
VBUS·PDPHY supply와 필수 속성
81-99`vdd-vbus-supply`는 VBUS 전원이고 `vdd-pdphy-supply`는 PDPHY의 VDD regulator입니다. graph `port`는 data-role switching message를 생성합니다.
공통 필수 속성은 `compatible`, `reg`, `interrupts`, `interrupt-names`, `vdd-vbus-supply`의 다섯 개입니다.
vdd-vbus-supply:
description: VBUS power supply.
vdd-pdphy-supply:
description: VDD regulator supply to the PDPHY.
port:
$ref: /schemas/graph.yaml#/properties/port
description:
Contains a port which produces data-role switching messages.
required:
- compatible
- reg
- interrupts
- interrupt-names
- vdd-vbus-supply
PMI632 8-IRQ와 PD-capable 16-IRQ
100-128`compatible`에 `qcom,pmi632-typec`가 포함되면 register는 하나, interrupt와 이름은 최대 8개이고 `vdd-pdphy-supply`를 둘 수 없습니다.
그 밖의 PM8150B 계열은 register 최대 두 개, interrupt 최소 16개, 이름 최대 16개이며 `vdd-pdphy-supply`가 추가로 필수입니다. 정의되지 않은 추가 속성은 허용하지 않습니다.
allOf:
- if:
properties:
compatible:
contains:
enum:
- qcom,pmi632-typec
then:
properties:
reg:
maxItems: 1
interrupts:
maxItems: 8
interrupt-names:
maxItems: 8
vdd-pdphy-supply: false
else:
properties:
reg:
maxItems: 2
interrupts:
minItems: 16
interrupt-names:
maxItems: 16
required:
- vdd-pdphy-supply
additionalProperties: false
PM8150B register·interrupt와 source PDO
129-189예제 `typec@1500`은 `qcom,pm8150b-typec`, Type-C 0x1500과 PDPHY 0x1700 register base를 사용합니다. SPMI peripheral 0x15의 여덟 Type-C interrupt와 0x17의 여덟 PD interrupt를 정의하고 이름도 같은 16개 순서로 지정합니다.
VBUS는 `pm8150b_vbus`, PDPHY는 `vreg_l2a_3p1` regulator에서 공급받습니다. USB-C connector는 source power role, dual data role, self-powered입니다.
source PDO는 5 V 3 A fixed PDO이며 dual-role power, USB communication, data swap capability를 광고합니다.
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/usb/pd.h>
pmic {
#address-cells = <1>;
#size-cells = <0>;
pm8150b_typec: typec@1500 {
compatible = "qcom,pm8150b-typec";
reg = <0x1500>,
<0x1700>;
interrupts = <0x2 0x15 0x00 IRQ_TYPE_EDGE_RISING>,
<0x2 0x15 0x01 IRQ_TYPE_EDGE_BOTH>,
<0x2 0x15 0x02 IRQ_TYPE_EDGE_RISING>,
<0x2 0x15 0x03 IRQ_TYPE_EDGE_BOTH>,
<0x2 0x15 0x04 IRQ_TYPE_EDGE_RISING>,
<0x2 0x15 0x05 IRQ_TYPE_EDGE_RISING>,
<0x2 0x15 0x06 IRQ_TYPE_EDGE_BOTH>,
<0x2 0x15 0x07 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x00 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x01 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x02 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x03 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x04 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x05 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x06 IRQ_TYPE_EDGE_RISING>,
<0x2 0x17 0x07 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "or-rid-detect-change",
"vpd-detect",
"cc-state-change",
"vconn-oc",
"vbus-change",
"attach-detach",
"legacy-cable-detect",
"try-snk-src-detect",
"sig-tx",
"sig-rx",
"msg-tx",
"msg-rx",
"msg-tx-failed",
"msg-tx-discarded",
"msg-rx-discarded",
"fr-swap";
vdd-vbus-supply = <&pm8150b_vbus>;
vdd-pdphy-supply = <&vreg_l2a_3p1>;
connector {
compatible = "usb-c-connector";
power-role = "source";
data-role = "dual";
self-powered;
source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_DUAL_ROLE |
PDO_FIXED_USB_COMM | PDO_FIXED_DATA_SWAP)>;
HS·SS·SBU graph 연결
190-249connector `port@0`의 HS endpoint는 USB controller의 `usb_hs_out`, `port@1`의 SS endpoint는 PHY의 `usb_phy_typec_ss_out`, `port@2`의 SBU endpoint는 mux의 `usb_mux_sbu`에 각각 연결됩니다.
USB controller는 OTG mode와 `usb-role-switch`를 사용합니다. USB PHY는 `orientation-switch`, USB mux는 `orientation-switch`와 `mode-switch`를 제공하며 각 graph endpoint가 PMIC Type-C block으로 되돌아갑니다.
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
pmic_typec_hs_in: endpoint {
remote-endpoint = <&usb_hs_out>;
};
};
port@1 {
reg = <1>;
pmic_typec_ss_in: endpoint {
remote-endpoint = <&usb_phy_typec_ss_out>;
};
};
port@2 {
reg = <2>;
pmic_typec_sbu: endpoint {
remote-endpoint = <&usb_mux_sbu>;
};
};
};
};
};
};
usb {
dr_mode = "otg";
usb-role-switch;
port {
usb_hs_out: endpoint {
remote-endpoint = <&pmic_typec_hs_in>;
};
};
};
usb-phy {
orientation-switch;
port {
usb_phy_typec_ss_out: endpoint {
remote-endpoint = <&pmic_typec_ss_in>;
};
};
};
usb-mux {
orientation-switch;
mode-switch;
port {
usb_mux_sbu: endpoint {
remote-endpoint = <&pmic_typec_sbu>;
};
};
};
...
요약과 해설
qcom,pmic-typec.yaml:1-249Qualcomm PMIC Type-C의 variant별 register·interrupt, PDO와 HS·SS·SBU graph를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, interrupt, regulator, PDO, graph endpoint, source path와 원문 줄 좌표를 원형대로 보존합니다.