요약·해설, 영어 원문, 전체 번역을 구분해 실었습니다. API 이름, 코드 심벌, 소스 경로는 원문 표기를 유지합니다.
1. 요약·해설
원문의 핵심 내용을 정리하고 커널 프로그래밍에 필요한 설명을 덧붙였습니다. 아래의 전체 번역과는 별도로 작성한 해설입니다.
2. 영어 원문 전체
번역에 사용한 Linux v6.18.37 원문입니다. 줄 번호는 해당 버전의 소스 파일을 기준으로 합니다.
원문 전체 펼치기
* UCTL USB controller glue
Properties:
- compatible: "cavium,octeon-6335-uctl"
Compatibility with all cn6XXX SOCs.
- reg: The base address of the UCTL register bank.
- #address-cells: Must be <2>.
- #size-cells: Must be <2>.
- ranges: Empty to signify direct mapping of the children.
- refclk-frequency: A single cell containing the reference clock
frequency in Hz.
- refclk-type: A string describing the reference clock connection
either "crystal" or "external".
Example:
uctl@118006f000000 {
compatible = "cavium,octeon-6335-uctl";
reg = <0x11800 0x6f000000 0x0 0x100>;
ranges; /* Direct mapping */
#address-cells = <2>;
#size-cells = <2>;
/* 12MHz, 24MHz and 48MHz allowed */
refclk-frequency = <24000000>;
/* Either "crystal" or "external" */
refclk-type = "crystal";
ehci@16f0000000000 {
compatible = "cavium,octeon-6335-ehci","usb-ehci";
reg = <0x16f00 0x00000000 0x0 0x100>;
interrupts = <0 56>;
big-endian-regs;
};
ohci@16f0000000400 {
compatible = "cavium,octeon-6335-ohci","usb-ohci";
reg = <0x16f00 0x00000400 0x0 0x100>;
interrupts = <0 56>;
big-endian-regs;
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미에 맞춰 전체 내용을 번역했습니다. 코드, 함수명, 코드 심벌, URL은 원문 표기를 유지합니다.
USB UCTL clock과 주소
1-21USB UCTL의 `compatible`은 `cavium,octeon-6335-uctl`이며 모든 cn6XXX SoC와 호환됩니다. `reg`는 UCTL register bank base address입니다.
`#address-cells`와 `#size-cells`는 모두 `<2>`입니다. 빈 `ranges`는 child direct mapping을 뜻합니다. `refclk-frequency`는 Hz 단위 reference clock frequency를 담는 단일 cell이고, `refclk-type`은 `crystal` 또는 `external` 연결을 나타내는 문자열입니다.
공통 reference clock과 direct-mapped 주소 공간 아래에 EHCI와 OHCI를 배치합니다.
EHCI·OHCI direct-map 예제
22-46예제는 UCTL 주소 `0x118006f000000`, direct mapping, 24MHz crystal reference clock을 사용합니다. 허용 reference clock은 12MHz, 24MHz, 48MHz입니다.
EHCI는 `cavium,octeon-6335-ehci`와 `usb-ehci`, OHCI는 `cavium,octeon-6335-ohci`와 `usb-ohci`에 호환됩니다. 두 child 모두 CIU interrupt `<0 56>`과 `big-endian-regs`를 사용합니다.
uctl@118006f000000 {
compatible = "cavium,octeon-6335-uctl";
reg = <0x11800 0x6f000000 0x0 0x100>;
ranges; /* Direct mapping */
#address-cells = <2>;
#size-cells = <2>;
/* 12MHz, 24MHz and 48MHz allowed */
refclk-frequency = <24000000>;
/* Either "crystal" or "external" */
refclk-type = "crystal";
ehci@16f0000000000 {
compatible = "cavium,octeon-6335-ehci","usb-ehci";
reg = <0x16f00 0x00000000 0x0 0x100>;
interrupts = <0 56>;
big-endian-regs;
};
ohci@16f0000000400 {
compatible = "cavium,octeon-6335-ohci","usb-ohci";
reg = <0x16f00 0x00000400 0x0 0x100>;
interrupts = <0 56>;
big-endian-regs;
};
};
요약과 해설
uctl.txt:1-46Direct mapping, crystal·external clock과 shared interrupt를 설명합니다.