^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) * Generic Mailbox Controller and client driver bindings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) Generic binding to provide a way for Mailbox controller drivers to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) assign appropriate mailbox channel to client drivers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * Mailbox Controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) Required property:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) - #mbox-cells: Must be at least 1. Number of cells in a mailbox
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) specifier.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) Example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) mailbox: mailbox {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #mbox-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) * Mailbox Client
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) Required property:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) - mboxes: List of phandle and mailbox channel specifiers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) Optional property:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) - mbox-names: List of identifier strings for each mailbox channel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) - shmem : List of phandle pointing to the shared memory(SHM) area between the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) users of these mailboxes for IPC, one for each mailbox. This shared
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) memory can be part of any memory reserved for the purpose of this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) communication between the mailbox client and the remote.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) Example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) pwr_cntrl: power {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) mbox-names = "pwr-ctrl", "rpc";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) mboxes = <&mailbox 0 &mailbox 1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) Example with shared memory(shmem):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) sram: sram@50000000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) compatible = "mmio-sram";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) reg = <0x50000000 0x10000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) #address-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) #size-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) ranges = <0 0x50000000 0x10000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) cl_shmem: shmem@0 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) compatible = "client-shmem";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) reg = <0x0 0x200>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) client@2e000000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) mboxes = <&mailbox 0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) shmem = <&cl_shmem>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) ..
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) };