[PATCH 3/6] dt-bindings: Add Bao I/O dispatcher driver binding

João Peixoto jpeixoto at osyx.tech
Fri Aug 7 00:43:08 PDT 2026


On 1/7/26 16:47, Krzysztof Kozlowski wrote:
> On 07/01/2026 17:28,joaopeixoto at osyx.tech wrote:
>> From: João Peixoto<joaopeixoto at osyx.tech>
>>
>> This patch introduces a device tree binding for the Bao I/O Dispatcher,
>> a device used in backend VMs running virtualized devices (e.g., VirtIO).
>>
>> Signed-off-by: João Peixoto<joaopeixoto at osyx.tech>
>> ---
>>   .../bindings/bao/bao,io-dispatcher.yaml       | 75 +++++++++++++++++++
>>   1 file changed, 75 insertions(+)
>>   create mode 100644 Documentation/devicetree/bindings/bao/bao,io-dispatcher.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/bao/bao,io-dispatcher.yaml b/Documentation/devicetree/bindings/bao/bao,io-dispatcher.yaml
>> new file mode 100644
>> index 000000000000..8ca450e4b9d5
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/bao/bao,io-dispatcher.yaml
>> @@ -0,0 +1,75 @@
>> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
>> +%YAML 1.2
>> +---
>> +$id:http://devicetree.org/schemas/bao/bao,io-dispatcher.yaml#
>> +$schema:http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Bao I/O Dispatcher Device
> No, you don't get multiple devices per every driver.
>
> Look at gunyah or Mediatek Genio. Come back when you solve ENTIRE
> FEEDBACK given to them first. And then say how you solved that feedback
> because so far I see you only ignoring review of your LLM slop or other
> Microslop product.
>
> Best regards,
> Krzysztof
Thanks for the pointers, and sorry for the earlier churn. I looked at how
gunyah and the Mediatek Genio bindings model this and reworked the 
dispatcher
the same way: there is no longer a single node describing N devices. Each
backend device is its own node with one reg region and one interrupt:

   shmem at 50000000 {
       compatible = "bao,io-dispatcher";
       reg = <0x50000000 0x01000000>;
       interrupts = <0x0 0x08 0x1>;
       bao,id = <0>;
   };

A backend guest that services several frontends instantiates several such
nodes. reg and interrupts therefore have maxItems: 1. The driver was
rewritten to match (one platform device -> one device model -> one
/dev/bao-dmX) dropping the internal N-device array, the global DM list and
the indirection ioctl.

I have also gone through the rest of the feedback on the series (the 
ipcshmem
binding, the misc-device conversion, commit messages, changelog, threading)
and addressed each item; the cover letter enumerates them. The binding 
passes
`make dt_binding_check`.



More information about the linux-arm-kernel mailing list