요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/usb/st,typec-stm32g0.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: STMicroelectronics STM32G0 USB Type-C PD controller
description: |
The STM32G0 MCU can be programmed to control Type-C connector(s) through I2C
typically using the UCSI protocol over I2C, with a dedicated alert
(interrupt) pin.
maintainers:
- Fabrice Gasnier <fabrice.gasnier@foss.st.com>
properties:
compatible:
const: st,stm32g0-typec
reg:
maxItems: 1
interrupts:
maxItems: 1
connector:
type: object
$ref: /schemas/connector/usb-connector.yaml#
unevaluatedProperties: false
firmware-name:
description: |
Should contain the name of the default firmware image
file located on the firmware search path
wakeup-source: true
power-domains:
maxItems: 1
required:
- compatible
- reg
- interrupts
- connector
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
typec@53 {
compatible = "st,stm32g0-typec";
reg = <0x53>;
/* Alert pin on GPIO PE12 */
interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
interrupt-parent = <&gpioe>;
/* Example with one type-C connector */
connector {
compatible = "usb-c-connector";
label = "USB-C";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
con_usb_c_ep: endpoint {
remote-endpoint = <&usb_ep>;
};
};
};
};
};
};
usb {
usb-role-switch;
port {
usb_ep: endpoint {
remote-endpoint = <&con_usb_c_ep>;
};
};
};
...
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
STM32G0 USB Type-C PD controller
1-16GPL-2.0 또는 BSD-2-Clause로 배포되는 이 스키마는 STMicroelectronics STM32G0 USB Type-C PD controller를 정의합니다. STM32G0 MCU는 전용 alert interrupt pin과 보통 I2C상의 UCSI protocol을 이용해 하나 이상의 Type-C connector를 제어하도록 programming할 수 있습니다. 관리자는 Fabrice Gasnier입니다.
connector, firmware와 wakeup
17-41compatible은 `st,stm32g0-typec`이고 register와 interrupt는 각각 하나입니다. `connector` child는 공통 USB connector schema를 따릅니다. `firmware-name`은 firmware search path에 있는 기본 image 파일 이름입니다. wakeup source와 power domain 하나를 사용할 수 있습니다.
properties:
compatible:
const: st,stm32g0-typec
reg:
maxItems: 1
interrupts:
maxItems: 1
connector:
type: object
$ref: /schemas/connector/usb-connector.yaml#
unevaluatedProperties: false
firmware-name:
description: |
Should contain the name of the default firmware image
file located on the firmware search path
wakeup-source: true
power-domains:
maxItems: 1
필수 속성
42-49필수 속성은 `compatible`, `reg`, `interrupts`, `connector`이며 추가 속성은 허용하지 않습니다.
required:
- compatible
- reg
- interrupts
- connector
additionalProperties: false
STM32G0 alert와 role-switch graph
50-91예제 `typec@53`은 I2C 주소 0x53과 GPIOE 12 falling-edge alert interrupt를 사용합니다. USB-C connector의 `port@0` endpoint `con_usb_c_ep`는 USB controller의 `usb-role-switch` port endpoint `usb_ep`와 상호 연결됩니다.
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
typec@53 {
compatible = "st,stm32g0-typec";
reg = <0x53>;
/* Alert pin on GPIO PE12 */
interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
interrupt-parent = <&gpioe>;
/* Example with one type-C connector */
connector {
compatible = "usb-c-connector";
label = "USB-C";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
con_usb_c_ep: endpoint {
remote-endpoint = <&usb_ep>;
};
};
};
};
};
};
usb {
usb-role-switch;
port {
usb_ep: endpoint {
remote-endpoint = <&con_usb_c_ep>;
};
};
};
...
요약과 해설
st,typec-stm32g0.yaml:1-91STM32G0의 UCSI-over-I2C, firmware, alert와 role-switch graph를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, interrupt, clock, reset, regulator, graph endpoint, source path와 원문 줄 좌표를 원형대로 보존합니다.