Qualcomm Technologies Inc. DANIPC driver

This is a kernel driver which makes use of DAN IPC hardware module.
DAN IPC is an inter-processor communication network which provides facilities
for fast and reliable data passing between processors.

Required properties:
- compatible:	should be "qcom,danipc"
- reg-names:	"ipc_bufs" - Krait IPC buffers region
		"agent_table" - IPC global agent table region
		"krait_ipc_intr_en" - Krait IPC interrupt enable MUX region
		"cpu0_ipc" - CPU0 IPC region
		"cpu1_ipc" - CPU1 IPC region
		"cpu2_ipc" - CPU2 IPC region
		"cpu3_ipc" - CPU3 IPC region
		"dsp0_ipc" - DSP0 IPC region
		"dsp1_ipc" - DSP1 IPC region
		"dsp2_ipc" - DSP2 IPC region
		"krait_ipc" - Krait IPC region
		"qdsp6_0_ipc" - QDSP6 0 IPC region
		"qdsp6_1_ipc" - QDSP6 1 IPC region
		"qdsp6_2_ipc" - QDSP6 2 IPC region
		"qdsp6_3_ipc" - QDSP6 3 IPC region
- reg:		location and size of Krait IPC buffers
		location and size of IPC global agent table
		location and size of Krait IPC interrupt enable MUX
		location and size of CPU0 IPC region
		location and size of CPU1 IPC region
		location and size of CPU2 IPC region
		location and size of CPU3 IPC region
		location and size of DSP0 IPC region
		location and size of DSP1 IPC region
		location and size of DSP2 IPC region
		location and size of Krait IPC region
		location and size of QDSP6 0 IPC region
		location and size of QDSP6 1 IPC region
		location and size of QDSP6 2 IPC region
		location and size of QDSP6 3 IPC region
- interrupts:	IPC interrupt line

Optional properties:
-qcom,cpu0-shm-size: size of shared memory region for CPU0
-qcom,cpu1-shm-size: size of shared memory region for CPU1
-qcom,cpu2-shm-size: size of shared memory region for CPU2
-qcom,cpu3-shm-size: size of shared memory region for CPU3
-qcom,dsp0-shm-size: size of shared memory region for DSP0
-qcom,dsp1-shm-size: size of shared memory region for DSP1
-qcom,dsp2-shm-size: size of shared memory region for DSP2
-qcom,krait-shm-size: size of shared memory region for Krait
-qcom,qdsp6-0-shm-size: size of shared memory region for QDSP6 0
-qcom,qdsp6-1-shm-size: size of shared memory region for QDSP6 1
-qcom,qdsp6-2-shm-size: size of shared memory region for QDSP6 2
-qcom,qdsp6-3-shm-size: size of shared memory region for QDSP6 3

Examples:
	qcom,danipc@24200000 {
		compatible = "qcom,danipc";
		reg-names = "ipc_bufs", "agent_table", "krait_ipc_intr_en",
				"cpu0_ipc", "cpu1_ipc", "cpu2_ipc", "cpu3_ipc",
				"dsp0_ipc", "dsp1_ipc", "dsp2_ipc", "krait_ipc",
				"qdsp6_0_ipc", "qdsp6_1_ipc", "qdsp6_2_ipc",
				"qdsp6_3_ipc";
		reg = <0x24200000 0x80000>, /* ipc_bufs */
			<0x1cf60000 0x2000>, /* agent_table */
			<0xfd4a3500 0x100>, /* krait_ipc_intr_en */
			<0xf683a000 0x100>, /* cpu0_ipc */
			<0xf683a000 0x100>, /* cpu1_ipc */
			<0xf683c000 0x100>, /* cpu2_ipc */
			<0xf683c000 0x100>, /* cpu3_ipc */
			<0xf6862000 0x100>, /* dsp0_ipc */
			<0xf6862000 0x100>, /* dsp1_ipc */
			<0xf6878000 0x100>, /* dsp2_ipc */
			<0xfd490000 0x100>, /* krait_ipc */
			<0xfd491000 0x100>, /* qdsp6_0_ipc */
			<0xfd492000 0x100>, /* qdsp6_1_ipc */
			<0xfd496000 0x100>, /* qdsp6_2_ipc */
			<0xfd494000 0x100>; /* qdsp6_3_ipc */
		qcom,qdsp6-2-shm-size = <0x4000000>;
		interrupts = <0 202 0>;
	};
