On Tue, Aug 22, 2017 at 09:03:41PM +0100, Marc Zyngier wrote: > On Tue, Aug 22 2017 at 8:02:18 pm BST, Marc Gonzalez <marc_gonzalez@xxxxxxxxxxxxxxxx> wrote: > > On 22/08/2017 18:29, Marc Zyngier wrote: > > > >> On 22/08/17 15:56, Marc Gonzalez wrote: > >> > >>> #define SMP8759_MUX 0x48 > >>> #define SMP8759_TEST_OUT 0x74 > >>> +#define SMP8759_STATUS 0x80 > >>> +#define SMP8759_ENABLE 0xa0 > >>> +#define SMP8759_DOORBELL 0xa002e07c > >> > >> Why is this hardcoded and not coming from the device-tree, just like any > >> other address property? > > > > Since this bus address is software-configurable, I didn't think > > it belonged in the DT. Also, I didn't see anything similar in > > other binding docs, especially > > > > Documentation/devicetree/bindings/interrupt-controller/msi.txt > > If that's software configurable, how on Earth did you pick the address? > How do you ensure that it doesn't conflict with DMA? How is it > configured into the RC? But we *do* need to resolve this. This does seem like an address that shouldn't be hard-coded into the driver. Since this driver is programming the address into an MSI message, but not into the receiver of that message, there's a coordination issue between this driver and whatever other software does that receiver configuration. Bjorn