요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
Atmel SOC USB controllers
OHCI
Required properties:
- compatible: Should be "atmel,at91rm9200-ohci" for USB controllers
used in host mode.
- reg: Address and length of the register set for the device
- interrupts: Should contain ohci interrupt
- clocks: Should reference the peripheral, host and system clocks
- clock-names: Should contain three strings
"ohci_clk" for the peripheral clock
"hclk" for the host clock
"uhpck" for the system clock
- num-ports: Number of ports.
- atmel,vbus-gpio: If present, specifies a gpio that needs to be
activated for the bus to be powered.
- atmel,oc-gpio: If present, specifies a gpio that needs to be
activated for the overcurrent detection.
usb0: ohci@500000 {
compatible = "atmel,at91rm9200-ohci", "usb-ohci";
reg = <0x00500000 0x100000>;
clocks = <&uhphs_clk>, <&uhphs_clk>, <&uhpck>;
clock-names = "ohci_clk", "hclk", "uhpck";
interrupts = <20 4>;
num-ports = <2>;
};
EHCI
Required properties:
- compatible: Should be "atmel,at91sam9g45-ehci" for USB controllers
used in host mode.
- reg: Address and length of the register set for the device
- interrupts: Should contain ehci interrupt
- clocks: Should reference the peripheral and the UTMI clocks
- clock-names: Should contain two strings
"ehci_clk" for the peripheral clock
"usb_clk" for the UTMI clock
Optional properties:
- phy_type : For multi port host USB controllers, should be one of
"utmi", or "hsic".
usb1: ehci@800000 {
compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
reg = <0x00800000 0x100000>;
interrupts = <22 4>;
clocks = <&utmi>, <&uhphs_clk>;
clock-names = "usb_clk", "ehci_clk";
};
AT91 USB device controller
Required properties:
- compatible: Should be one of the following
"atmel,at91rm9200-udc"
"atmel,at91sam9260-udc"
"atmel,at91sam9261-udc"
"atmel,at91sam9263-udc"
- reg: Address and length of the register set for the device
- interrupts: Should contain macb interrupt
- clocks: Should reference the peripheral and the AHB clocks
- clock-names: Should contain two strings
"pclk" for the peripheral clock
"hclk" for the AHB clock
Optional properties:
- atmel,vbus-gpio: If present, specifies a gpio that needs to be
activated for the bus to be powered.
usb1: gadget@fffa4000 {
compatible = "atmel,at91rm9200-udc";
reg = <0xfffa4000 0x4000>;
interrupts = <10 4>;
clocks = <&udc_clk>, <&udpck>;
clock-names = "pclk", "hclk";
atmel,vbus-gpio = <&pioC 5 0>;
};
Atmel High-Speed USB device controller
Required properties:
- compatible: Should be one of the following
"atmel,at91sam9rl-udc"
"atmel,at91sam9g45-udc"
"atmel,sama5d3-udc"
"microchip,sam9x60-udc"
"microchip,lan9662-udc"
For "microchip,lan9662-udc" the fallback "atmel,sama5d3-udc"
is required.
- reg: Address and length of the register set for the device
- interrupts: Should contain usba interrupt
- clocks: Should reference the peripheral and host clocks
- clock-names: Should contain two strings
"pclk" for the peripheral clock
"hclk" for the host clock
Deprecated property:
- ep childnode: To specify the number of endpoints and their properties.
Optional properties:
- atmel,vbus-gpio: If present, specifies a gpio that allows to detect whether
vbus is present (USB is connected).
Deprecated child node properties:
- name: Name of the endpoint.
- reg: Num of the endpoint.
- atmel,fifo-size: Size of the fifo.
- atmel,nb-banks: Number of banks.
- atmel,can-dma: Boolean to specify if the endpoint support DMA.
- atmel,can-isoc: Boolean to specify if the endpoint support ISOC.
usb2: gadget@fff78000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "atmel,at91sam9rl-udc";
reg = <0x00600000 0x80000
0xfff78000 0x400>;
interrupts = <27 4 0>;
clocks = <&utmi>, <&udphs_clk>;
clock-names = "hclk", "pclk";
atmel,vbus-gpio = <&pioB 19 0>;
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Atmel OHCI host controller
1-29Atmel SoC OHCI controller를 host mode로 사용할 때 `compatible`은 `atmel,at91rm9200-ohci`여야 합니다. `reg`는 register set의 주소와 길이이고 `interrupts`에는 OHCI interrupt가 들어갑니다.
`clocks`는 peripheral, host, system clock을 참조하며 이름은 각각 `ohci_clk`, `hclk`, `uhpck`입니다. `num-ports`는 port 수입니다. `atmel,vbus-gpio`는 bus 전원을 켜는 GPIO이고 `atmel,oc-gpio`는 overcurrent 검출용 GPIO이며, 두 속성은 존재할 때 해당 GPIO를 활성화해야 함을 뜻합니다.
예제 `ohci@500000`은 Atmel OHCI와 일반 `usb-ohci` compatible을 함께 사용하고 0x100000-byte 영역, 세 clock, interrupt 20, port 2개를 지정합니다.
usb0: ohci@500000 {
compatible = "atmel,at91rm9200-ohci", "usb-ohci";
reg = <0x00500000 0x100000>;
clocks = <&uhphs_clk>, <&uhphs_clk>, <&uhpck>;
clock-names = "ohci_clk", "hclk", "uhpck";
interrupts = <20 4>;
num-ports = <2>;
};
Atmel EHCI host controller
30-53EHCI host controller의 `compatible`은 `atmel,at91sam9g45-ehci`입니다. `reg`는 register set, `interrupts`는 EHCI interrupt를 지정합니다. `clocks`는 peripheral clock과 UTMI clock을 참조하고 이름은 각각 `ehci_clk`, `usb_clk`입니다.
여러 port를 가진 host controller의 선택적 `phy_type`은 `utmi` 또는 `hsic`입니다. 예제 `ehci@800000`은 Atmel EHCI와 `usb-ehci`, interrupt 22, `utmi`와 `uhphs_clk`을 사용하며 clock 이름은 참조 순서에 맞춰 `usb_clk`, `ehci_clk`입니다.
usb1: ehci@800000 {
compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
reg = <0x00800000 0x100000>;
interrupts = <22 4>;
clocks = <&utmi>, <&uhphs_clk>;
clock-names = "usb_clk", "ehci_clk";
};
AT91 USB device controller
54-81일반 AT91 UDC의 `compatible`은 `atmel,at91rm9200-udc`, `atmel,at91sam9260-udc`, `atmel,at91sam9261-udc`, `atmel,at91sam9263-udc` 중 하나입니다. `reg`는 register set을 지정하고, 원문은 `interrupts`에 macb interrupt가 들어가야 한다고 명시합니다.
Clock은 peripheral과 AHB clock이며 이름은 각각 `pclk`, `hclk`입니다. 선택적 `atmel,vbus-gpio`는 bus 전원을 켜는 GPIO입니다. 예제 `gadget@fffa4000`은 RM9200 UDC, interrupt 10, `udc_clk`·`udpck`, PIOC 5번 VBUS GPIO를 사용합니다.
usb1: gadget@fffa4000 {
compatible = "atmel,at91rm9200-udc";
reg = <0xfffa4000 0x4000>;
interrupts = <10 4>;
clocks = <&udc_clk>, <&udpck>;
clock-names = "pclk", "hclk";
atmel,vbus-gpio = <&pioC 5 0>;
};
Atmel High-Speed USB device controller
82-114High-Speed UDC compatible은 `atmel,at91sam9rl-udc`, `atmel,at91sam9g45-udc`, `atmel,sama5d3-udc`, `microchip,sam9x60-udc`, `microchip,lan9662-udc` 중 하나입니다. LAN9662는 fallback `atmel,sama5d3-udc`도 반드시 함께 사용해야 합니다.
`reg`는 register set, `interrupts`는 USBA interrupt를 지정합니다. Clock은 peripheral과 host clock이고 이름은 `pclk`, `hclk`입니다. 선택적 `atmel,vbus-gpio`는 VBUS 존재 여부, 즉 USB 연결 여부를 검출합니다.
Endpoint 수와 속성을 지정하던 `ep` child node는 폐기되었습니다. 그 child의 `name`, endpoint 번호 `reg`, `atmel,fifo-size`, `atmel,nb-banks`, DMA 지원 boolean `atmel,can-dma`, isochronous 지원 boolean `atmel,can-isoc`도 모두 폐기된 속성입니다.
High-Speed UDC 예제
115-125예제 `gadget@fff78000`은 한 개의 address cell과 크기 cell 0개를 사용합니다. AT91SAM9RL UDC의 두 register 영역, interrupt 27, UTMI·UDPHS clock을 연결하고 이름은 `hclk`, `pclk` 순서입니다. VBUS 검출에는 PIOB 19번 GPIO를 사용합니다.
usb2: gadget@fff78000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "atmel,at91sam9rl-udc";
reg = <0x00600000 0x80000
0xfff78000 0x400>;
interrupts = <27 4 0>;
clocks = <&utmi>, <&udphs_clk>;
clock-names = "hclk", "pclk";
atmel,vbus-gpio = <&pioB 19 0>;
};
요약과 해설
atmel-usb.txt:1-125Atmel OHCI·EHCI host와 일반·High-Speed UDC의 compatible, clock, GPIO, 폐기 속성 및 예제를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, clock, interrupt, GPIO, PHY, endpoint, source path와 원문 줄 좌표를 원형대로 보존합니다.