← Documents Documentation/devicetree/bindings/mailbox/hisilicon,hi3660-mailbox.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

HiSilicon Hi3660 Mailbox

Hi3660의 32-channel, 8-word mailbox와 세 cell specifier를 설명합니다.

Source pathDocumentation/devicetree/bindings/mailbox/hisilicon,hi3660-mailbox.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약과 해설

hisilicon,hi3660-mailbox.txt:1-51

Channel, remote IRQ, local acknowledgement IRQ의 순서를 보존합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 Hisilicon Hi3660 Mailbox Controller
2
3 Hisilicon Hi3660 mailbox controller supports up to 32 channels. Messages
4 are passed between processors, including application & communication
5 processors, MCU, HIFI, etc. Each channel is unidirectional and accessed
6 by using MMIO registers; it supports maximum to 8 words message.
7
8 Controller
9 ----------
10
11 Required properties:
12 - compatible: : Shall be "hisilicon,hi3660-mbox"
13 - reg: : Offset and length of the device's register set
14 - #mbox-cells: : Must be 3
15 <&phandle channel dst_irq ack_irq>
16 phandle : Label name of controller
17 channel : Channel number
18 dst_irq : Remote interrupt vector
19 ack_irq : Local interrupt vector
20
21 - interrupts: : Contains the two IRQ lines for mailbox.
22
23 Example:
24
25 mailbox: mailbox@e896b000 {
26 compatible = "hisilicon,hi3660-mbox";
27 reg = <0x0 0xe896b000 0x0 0x1000>;
28 interrupts = <0x0 0xc0 0x4>,
29 <0x0 0xc1 0x4>;
30 #mbox-cells = <3>;
31 };
32
33 Client
34 ------
35
36 Required properties:
37 - compatible : See the client docs
38 - mboxes : Standard property to specify a Mailbox (See ./mailbox.txt)
39 Cells must match 'mbox-cells' (See Controller docs above)
40
41 Optional properties
42 - mbox-names : Name given to channels seen in the 'mboxes' property.
43
44 Example:
45
46 stub_clock: stub_clock@e896b500 {
47 compatible = "hisilicon,hi3660-stub-clk";
48 reg = <0x0 0xe896b500 0x0 0x0100>;
49 #clock-cells = <1>;
50 mboxes = <&mailbox 13 3 0>;
51 };
52

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

Hi3660 mailbox controller

1-22

HiSilicon Hi3660 mailbox controller는 최대 32개 channel을 지원하고 application processor, communication processor, MCU, HIFI 등 processor 사이에서 message를 전달합니다. 각 channel은 단방향이며 MMIO register로 접근하고 최대 8-word message를 지원합니다.

필수 `compatible`은 `hisilicon,hi3660-mbox`, `reg`는 device register set의 offset과 길이입니다. `#mbox-cells`는 3이어야 하며 specifier는 `<&phandle channel dst_irq ack_irq>` 형식입니다. `phandle`은 controller label, `channel`은 channel 번호, `dst_irq`는 remote interrupt vector, `ack_irq`는 local interrupt vector입니다. `interrupts`에는 mailbox의 두 IRQ line을 기록합니다.

Hi3660 mailbox specifier
순서Cell의미
phandle&mailboxController label
1channelChannel 번호
2dst_irqRemote interrupt vector
3ack_irqLocal interrupt vector

`#mbox-cells = <3>` 뒤의 세 cell 의미를 순서대로 정리합니다.

Controller 예제

23-32

예제 controller는 `0xe896b000`의 0x1000-byte register region과 두 IRQ line `0xc0`, `0xc1`을 사용합니다.

mailbox: mailbox@e896b000 {
        compatible = "hisilicon,hi3660-mbox";
        reg = <0x0 0xe896b000 0x0 0x1000>;
        interrupts = <0x0 0xc0 0x4>,
                     <0x0 0xc1 0x4>;
        #mbox-cells = <3>;
};

Hi3660 client 속성

33-43

Client의 `compatible`은 해당 client 문서를 따릅니다. 필수 `mboxes`는 `./mailbox.txt`의 표준 mailbox 속성이며 cell 수와 순서는 controller의 `#mbox-cells` 정의와 일치해야 합니다. 선택적인 `mbox-names`는 `mboxes`에 나열한 channel에 이름을 붙입니다.

Stub clock client 예제

44-51

예제 `hisilicon,hi3660-stub-clk` client는 mailbox channel 13, remote interrupt vector 3, local acknowledgement vector 0을 `<&mailbox 13 3 0>`으로 지정합니다.

stub_clock: stub_clock@e896b500 {
        compatible = "hisilicon,hi3660-stub-clk";
        reg = <0x0 0xe896b500 0x0 0x0100>;
        #clock-cells = <1>;
        mboxes = <&mailbox 13 3 0>;
};