Re: How to describe a device that sits across two busses.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Nov 28, 2020 at 11:00 AM Daniel Palmer <daniel@xxxxxxxx> wrote:
>
> Hi all,
>
> I have a driver for a SPI flash controller that I want to mainline
> soon and I'm cleaning up the device tree part for it at the moment.
>
> This device has registers that are children in a "simple bus" and a
> memory mapped area that is in the soc simple bus because it's not
> connected via the same bus as the registers.
>
> Right now I have the driver's node in the soc simple bus like this:
>
> isp: isp@1f001000 {
>   compatible = "mstar,msc313-isp";
>   reg = <0x1f001000 0x400>,
>            <0x1f002c00 0x200>,
>            <0x1f002e00 0x200>,
>            <0x14000000 0x1000000>;
> };
>
> Really the first 3 reg values belong to this simple bus:
>
> riu: bus@1f000000 {
>   compatible = "simple-bus";
>   reg = <0x1f000000 0x00400000>;

If it's 'simple', then it shouldn't have regs...

> };
>
> Is there a good way to describe this? I think maybe the memory mapped
> area should be another node (syscon?) and that should be referenced in
> the driver node and the driver node itself nested in the riu simple
> bus where the registers are.

There's not really a better way. I would stick with 'reg' and not a
syscon. Unless you restrict the address space with 'ranges' nothing
prevents having the above. The main thing we want to avoid is having
the same address used (in 'reg') by multiple nodes.

Rob



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux