* [PATCH 1/2] dt-bindings: mailbox: ti,secure-proxy: Add TDA54 variant compatible
2026-09-30 17:29 [PATCH 0/2] Add support for TDA54 variant secproxy controllers Beleswar Padhi
@ 2026-09-30 17:29 ` Beleswar Padhi
2026-09-30 21:17 ` Conor Dooley
2026-09-30 17:29 ` [PATCH 2/2] mailbox: ti-msgmgr: Add ti,tda54-main-secure-proxy support Beleswar Padhi
1 sibling, 1 reply; 4+ messages in thread
From: Beleswar Padhi @ 2026-09-30 17:29 UTC (permalink / raw)
To: jassisinghbrar, nm, afd, u-kumar1
Cc: linux-kernel, b-padhi, vigneshr, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, devicetree
Add the ti,tda54-main-secure-proxy compatible for the secure proxy
mailbox controller integrated in the MAIN voltage domain of the TI TDA54
SoC, which features up to 444 threads with 60-byte messages per
thread.
The number of threads is fixed at SoC integration and cannot be
discovered at runtime, therefore a separate compatible is needed.
Signed-off-by: Beleswar Padhi <b-padhi@ti.com>
---
Cc: Jassi Brar <jassisinghbrar@gmail.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Nishanth Menon <nm@ti.com>
Cc: linux-kernel@vger.kernel.org
Cc: devicetree@vger.kernel.org
.../devicetree/bindings/mailbox/ti,secure-proxy.yaml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/mailbox/ti,secure-proxy.yaml b/Documentation/devicetree/bindings/mailbox/ti,secure-proxy.yaml
index c321b69f0ccd3..525266953c974 100644
--- a/Documentation/devicetree/bindings/mailbox/ti,secure-proxy.yaml
+++ b/Documentation/devicetree/bindings/mailbox/ti,secure-proxy.yaml
@@ -22,7 +22,9 @@ properties:
pattern: "^mailbox@[0-9a-f]+$"
compatible:
- const: ti,am654-secure-proxy
+ enum:
+ - ti,am654-secure-proxy
+ - ti,tda54-main-secure-proxy
"#mbox-cells":
const: 1
--
2.34.1
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH 2/2] mailbox: ti-msgmgr: Add ti,tda54-main-secure-proxy support
2026-09-30 17:29 [PATCH 0/2] Add support for TDA54 variant secproxy controllers Beleswar Padhi
2026-09-30 17:29 ` [PATCH 1/2] dt-bindings: mailbox: ti,secure-proxy: Add TDA54 variant compatible Beleswar Padhi
@ 2026-09-30 17:29 ` Beleswar Padhi
1 sibling, 0 replies; 4+ messages in thread
From: Beleswar Padhi @ 2026-09-30 17:29 UTC (permalink / raw)
To: jassisinghbrar, nm, afd, u-kumar1; +Cc: linux-kernel, b-padhi, vigneshr
Add support for the TDA54 secure proxy mailbox controller integrated in
the MAIN voltage domain. This instance supports up to 444 threads with
60-byte messages per thread. Add the corresponding device data for the
ti,tda54-main-secure-proxy compatible.
While at it, update some internal variable types from u8 to u16 to hold
values up to 444.
Signed-off-by: Beleswar Padhi <b-padhi@ti.com>
---
drivers/mailbox/ti-msgmgr.c | 33 ++++++++++++++++++++++++++-------
1 file changed, 26 insertions(+), 7 deletions(-)
diff --git a/drivers/mailbox/ti-msgmgr.c b/drivers/mailbox/ti-msgmgr.c
index 8eb8df8d95a4c..7ab0d07fe7a28 100644
--- a/drivers/mailbox/ti-msgmgr.c
+++ b/drivers/mailbox/ti-msgmgr.c
@@ -44,8 +44,8 @@
* @is_tx: Is this a receive path?
*/
struct ti_msgmgr_valid_queue_desc {
- u8 queue_id;
- u8 proxy_id;
+ u16 queue_id;
+ u16 proxy_id;
bool is_tx;
};
@@ -71,7 +71,7 @@ struct ti_msgmgr_valid_queue_desc {
* for a specific compatible SoC is done.
*/
struct ti_msgmgr_desc {
- u8 queue_count;
+ u16 queue_count;
u8 max_message_size;
u8 max_messages;
u8 data_first_reg;
@@ -105,8 +105,8 @@ struct ti_msgmgr_desc {
*/
struct ti_queue_inst {
char name[30];
- u8 queue_id;
- u8 proxy_id;
+ u16 queue_id;
+ u16 proxy_id;
int irq;
bool is_tx;
void __iomem *queue_buff_start;
@@ -138,7 +138,7 @@ struct ti_msgmgr_inst {
void __iomem *queue_proxy_region;
void __iomem *queue_state_debug_region;
void __iomem *queue_ctrl_region;
- u8 num_valid_queues;
+ u16 num_valid_queues;
struct ti_queue_inst *qinsts;
struct mbox_controller mbox;
struct mbox_chan *chans;
@@ -466,7 +466,11 @@ static int ti_msgmgr_queue_rx_irq_req(struct device *dev,
struct mbox_chan *chan)
{
int ret = 0;
- char of_rx_irq_name[7];
+ /*
+ * To keep compiler happy about u16 proxy_id:
+ * "rx_" + up to 5 digits of u16 id + NULL
+ */
+ char of_rx_irq_name[9];
struct device_node *np;
snprintf(of_rx_irq_name, sizeof(of_rx_irq_name),
@@ -799,9 +803,24 @@ static const struct ti_msgmgr_desc am654_desc = {
.is_sproxy = true,
};
+static const struct ti_msgmgr_desc tda54_main_desc = {
+ .queue_count = 444,
+ .num_valid_queues = 444,
+ .max_message_size = 60,
+ .data_region_name = "target_data",
+ .status_region_name = "rt",
+ .ctrl_region_name = "scfg",
+ .data_first_reg = 0,
+ .data_last_reg = 14,
+ .status_cnt_mask = SPROXY_THREAD_STATUS_COUNT_MASK,
+ .tx_polled = false,
+ .is_sproxy = true,
+};
+
static const struct of_device_id ti_msgmgr_of_match[] = {
{.compatible = "ti,k2g-message-manager", .data = &k2g_desc},
{.compatible = "ti,am654-secure-proxy", .data = &am654_desc},
+ {.compatible = "ti,tda54-main-secure-proxy", .data = &tda54_main_desc},
{ /* Sentinel */ }
};
--
2.34.1
^ permalink raw reply [flat|nested] 4+ messages in thread