On Wed, Jul 23, 2025 at 3:21 AM Ivaylo Ivanov
[off-list ref] wrote:
On 7/23/25 11:15, Krzysztof Kozlowski wrote:
quoted
On Tue, Jul 22, 2025 at 03:10:36PM +0300, Ivaylo Ivanov wrote:
quoted
Some device trees, like the exynos2200 one, configure the root node
with #address-cells and #size-cells set to 2. However, the usi binding
expects 32 bit address space only. Allow these determining properties to
So if USI expects 32 bit, then why do we allow 64?
Switching this to 2 means you use 64-bit addressing for children
I don't, but the main point was to avoid defining ranges for every single usi
node, because they are a lot.
If all MMIO addresses in your SoC are 32-bit (they probably are), I
think it'd be neater to just make the entire "soc" bus 32-bit (so both
address and size cells = <1>), and map it to the root node's address
space with "ranges", like this:
soc: soc@0 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x0 0x0 0x20000000>;
...
That's how it's done in exynos850 and gs101 dts for example. This way
you could drop all those extra "reg = <0x0 ...>" in the child nodes,
also avoid declaring "ranges" arrays in each USI node (just "ranges;"
would be enough), and this patch won't be needed. Maybe I'm missing
some details though?
Best regards,
Ivaylo
quoted
and
allowing DMA for >32 bit. This should be the true reason - what is the
address space and DMA range for children?
Best regards,
Krzysztof