Commit d0e28641 authored by MaJun's avatar MaJun Committed by Thomas Gleixner

irqchip/mbigen: Adjust DT bindings to handle multiple devices in a module

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: default avatarMark Rutland <mark.rutland@arm.com>
Signed-off-by: default avatarMa 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.comSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 46f920d8
...@@ -21,6 +21,8 @@ Mbigen main node required properties: ...@@ -21,6 +21,8 @@ Mbigen main node required properties:
- reg: Specifies the base physical address and size of the Mbigen - reg: Specifies the base physical address and size of the Mbigen
registers. registers.
Mbigen sub node required properties:
------------------------------------------
- interrupt controller: Identifies the node as an interrupt controller - interrupt controller: Identifies the node as an interrupt controller
- msi-parent: Specifies the MSI controller this mbigen use. - msi-parent: Specifies the MSI controller this mbigen use.
...@@ -45,15 +47,25 @@ Mbigen main node required properties: ...@@ -45,15 +47,25 @@ Mbigen main node required properties:
Examples: Examples:
mbigen_device_gmac:intc { mbigen_chip_dsa {
compatible = "hisilicon,mbigen-v2"; compatible = "hisilicon,mbigen-v2";
reg = <0x0 0xc0080000 0x0 0x10000>; reg = <0x0 0xc0080000 0x0 0x10000>;
mbigen_gmac:intc_gmac {
interrupt-controller; interrupt-controller;
msi-parent = <&its_dsa 0x40b1c>; msi-parent = <&its_dsa 0x40b1c>;
num-pins = <9>; num-pins = <9>;
#interrupt-cells = <2>; #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: Devices connect to mbigen required properties:
---------------------------------------------------- ----------------------------------------------------
-interrupt-parent: Specifies the mbigen device node which device connected. -interrupt-parent: Specifies the mbigen device node which device connected.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment