irqchip/mbigen: Adjust DT bindings to handle multiple devices in a module
authorMaJun <majun258@huawei.com>
Thu, 17 Mar 2016 08:34:00 +0000 (16:34 +0800)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 21 Mar 2016 10:24:10 +0000 (11:24 +0100)
A mbigen hardware module can contain more than one device node. These device
nodes contain the same register definition.

mbigen_dev1:intc_dev1 {
...
reg = <0x0 0xc0080000 0x0 0x10000>;
...
};

mbigen_dev2:intc_dev2 {
...
reg = <0x0 0xc0080000 0x0 0x10000>;
...
};

In this case both devices try to request the same resource resulting in a
resource conflict.

To address this problem the devices need to be subnodes of the mbigen hardware
module, which then contains the unique register space.

[ tglx: Massaged changelog ]

Suggested-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Ma Jun <majun258@huawei.com>
Cc: jason@lakedaemon.net
Cc: marc.zyngier@arm.com
Cc: Catalin.Marinas@arm.com
Cc: guohanjun@huawei.com
Cc: Will.Deacon@arm.com
Cc: huxinwei@huawei.com
Cc: lizefan@huawei.com
Cc: dingtianhong@huawei.com
Cc: zhaojunhua@hisilicon.com
Cc: liguozhu@hisilicon.com
Cc: linux-arm-kernel@lists.infradead.org
Link: http://lkml.kernel.org/r/20160203111602.GA1234@leverpostej
Link: http://lkml.kernel.org/r/1458203641-17172-2-git-send-email-majun258@huawei.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Documentation/devicetree/bindings/interrupt-controller/hisilicon,mbigen-v2.txt

index 720f7c9..3b2f4c4 100644 (file)
@@ -21,6 +21,8 @@ Mbigen main node required properties:
 - reg: Specifies the base physical address and size of the Mbigen
   registers.
 
+Mbigen sub node required properties:
+------------------------------------------
 - interrupt controller: Identifies the node as an interrupt controller
 
 - msi-parent: Specifies the MSI controller this mbigen use.
@@ -45,13 +47,23 @@ Mbigen main node required properties:
 
 Examples:
 
-       mbigen_device_gmac:intc {
+       mbigen_chip_dsa {
                        compatible = "hisilicon,mbigen-v2";
                        reg = <0x0 0xc0080000 0x0 0x10000>;
-                       interrupt-controller;
-                       msi-parent = <&its_dsa 0x40b1c>;
-                       num-pins = <9>;
-                       #interrupt-cells = <2>;
+
+                       mbigen_gmac:intc_gmac {
+                               interrupt-controller;
+                               msi-parent = <&its_dsa 0x40b1c>;
+                               num-pins = <9>;
+                               #interrupt-cells = <2>;
+                       };
+
+                       mbigen_i2c:intc_i2c {
+                               interrupt-controller;
+                               msi-parent = <&its_dsa 0x40b0e>;
+                               num-pins = <2>;
+                               #interrupt-cells = <2>;
+                       };
        };
 
 Devices connect to mbigen required properties: