On Fri, 13 May 2016 15:41:11 +0200 Arnd Bergmann <arnd@xxxxxxxx> wrote: > On Friday 13 May 2016 15:30:23 Alexander Shiyan wrote: > > Hello. > > > > > Пятница, 13 мая 2016, 15:00 +03:00 от Arnd Bergmann <arnd@xxxxxxxx>: > > > > > > On Friday 13 May 2016 14:26:28 Alexander Shiyan wrote: > > ... ... > > > > + clks: clks@80000000 { > > > > + #clock-cells = <1>; > > > > + compatible = "cirrus,clps711x-clk"; > > > > + reg = <0x80000000 0xc000>; > > > > + startup-frequency = <73728000>; > > > > + }; > > ... > > > > + intc: intc@80000000 { > > > > + compatible = "cirrus,clps711x-intc"; > > > > + reg = <0x80000000 0x4000>; > > > > + interrupt-controller; > > > > + #interrupt-cells = <1>; > > > > + }; > > > > > > Better make the register ranges non-overlapping. This appears > > > to start at the same place as the 'clks' node. > > > > CLK driver uses: > > #define CLPS711X_SYSCON1 (0x0100) > > #define CLPS711X_SYSCON2 (0x1100) > > ... > > #define CLPS711X_PLLR (0xa5a8) > > > > IRQCHIP driver uses: > > #define CLPS711X_INTSR1 (0x0240) > > ... > > #define CLPS711X_INTSR2 (0x1240) > > ... > > #define CLPS711X_INTMR3 (0x2280) > > > > So there is no way to do any else. > > It sounds like what you have is a large system controller that > has registers everywhere. Could you use syscon to access the > individual registers instead? There are several problems: - The syscon driver must be initialized before any other devices, including the interrupt controller and clk/clocksource subsystems. - A slight performance impact will be observed in the interrupt handler. - SYSCON (regmap) is designed to use with equal the width of registers, while we need to use different widths (8/16/32) for some subsystems. -- Alexander Shiyan <shc_work@xxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html