[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20241219-mbox_request_channel_by_args-v1-0-617a6910f842@linaro.org>
Date: Thu, 19 Dec 2024 13:07:45 +0000
From: Tudor Ambarus <tudor.ambarus@...aro.org>
To: Jassi Brar <jassisinghbrar@...il.com>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>
Cc: linux-kernel@...r.kernel.org, devicetree@...r.kernel.org,
linux-samsung-soc@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
andre.draszik@...aro.org, peter.griffin@...aro.org, kernel-team@...roid.com,
willmcvicker@...gle.com, daniel.lezcano@...aro.org,
vincent.guittot@...aro.org, ulf.hansson@...aro.org, arnd@...db.de,
Tudor Ambarus <tudor.ambarus@...aro.org>
Subject: [PATCH 0/2] mailbox: add support for clients to request channels
by arguments
There are clients that can discover channel identifiers at runtime by
parsing a shared memory for example, as in the ACPM interface's case.
For such cases passing the channel identifiers via DT is redundant.
Supply a new framework API: mbox_request_channel_by_args().
It works by supplying the usual client pointer as the first argument and
a pointer to a ``const struct mbox_xlate_args`` as a second. The newly
introduced struct is modeled after ``struct of_phandle_args``. The API
will search the client's node for a ``mbox`` phandle, identify the
controller's device node, and then call that controller's xlate() method
that will return a pointer to a mbox_chan or a ERR_PTR. The binding
between the channel and the client is done in the typical way.
This allows clients to reference the controller node as following:
firmware {
acpm_ipc: power-management {
compatible = "google,gs101-acpm-ipc";
- mboxes = <&ap2apm_mailbox 0 0
- &ap2apm_mailbox 0 1
- &ap2apm_mailbox 0 2
- &ap2apm_mailbox 0 3
- &ap2apm_mailbox 0 4
- &ap2apm_mailbox 0 5
- &ap2apm_mailbox 0 6
- &ap2apm_mailbox 0 7
- &ap2apm_mailbox 0 8
- &ap2apm_mailbox 0 9
- &ap2apm_mailbox 0 10
- &ap2apm_mailbox 0 11
- &ap2apm_mailbox 0 12
- &ap2apm_mailbox 0 13
- &ap2apm_mailbox 0 14>;
+ mbox = <&ap2apm_mailbox>;
shmem = <&apm_sram>;
};
};
Signed-off-by: Tudor Ambarus <tudor.ambarus@...aro.org>
---
Tudor Ambarus (2):
dt-bindings: mailbox: add support for referencing controllers solely by node
mailbox: add support for clients to request channels by arguments
.../devicetree/bindings/mailbox/mailbox.txt | 19 ++++++--
drivers/mailbox/mailbox.c | 57 ++++++++++++++++++++++
include/linux/mailbox.h | 17 +++++++
include/linux/mailbox_client.h | 3 ++
include/linux/mailbox_controller.h | 4 ++
5 files changed, 96 insertions(+), 4 deletions(-)
---
base-commit: 78d4f34e2115b517bcbfe7ec0d018bbbb6f9b0b8
change-id: 20241219-mbox_request_channel_by_args-7115089ed492
Best regards,
--
Tudor Ambarus <tudor.ambarus@...aro.org>
Powered by blists - more mailing lists