PDC interrupt controller

Qualcomm Technologies Inc. SoCs based on the RPM Hardened architecture have a
Power Domain Controller (PDC) that is on always-on domain. In addition to
providing power control for the power domains, the hardware also has an
interrupt controller that can be used to help detect edge low interrupts as
well detect interrupts when the GIC is non-operational.

GIC is parent interrupt controller at the highest level. Platform interrupt
controller PDC is next in hierarchy, followed by others. Drivers requiring
wakeup capabilities of their device interrupts routed through the PDC, must
specify PDC as their interrupt controller and request the PDC port associated
with the GIC interrupt. See example below.

Properties:

- compatible:
	Usage: required
	Value type: <string>
	Definition: Should contain "qcom,<soc>-pdc"
		    - "qcom,sdm845-pdc": For SDM845

- reg:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: Specifies the base physical address for PDC hardware.

- interrupt-cells:
	Usage: required
	Value type: <u32>
	Definition: Specifies the number of cells needed to encode an interrupt
		    source.
		    Must be 2.
		    The first element of the tuple is the PDC pin for the
		    interrupt.
		    The second element is the trigger type.

- interrupt-parent:
	Usage: required
	Value type: <phandle>
	Definition: Specifies the interrupt parent necessary for hierarchical
		    domain to operate.

- interrupt-controller:
	Usage: required
	Value type: <bool>
	Definition: Identifies the node as an interrupt controller.

- qcom,pdc-ranges:
	Usage: required
	Value type: <u32 array>
	Definition: Specifies the PDC pin offset and the number of PDC ports.
		    The tuples indicates the valid mapping of valid PDC ports
		    and their hwirq mapping.
		    The first element of the tuple is the starting PDC port.
		    The second element is the GIC hwirq number for the PDC port.
		    The third element is the number of interrupts in sequence.

Example:

	pdc: interrupt-controller@b220000 {
		compatible = "qcom,sdm845-pdc";
		reg = <0xb220000 0x30000>;
		qcom,pdc-ranges = <0 512 94>, <94 641 15>, <115 662 7>;
		#interrupt-cells = <2>;
		interrupt-parent = <&intc>;
		interrupt-controller;
	};

DT binding of a device that wants to use the GIC SPI 514 as a wakeup
interrupt, must do -

	wake-device {
		interrupts-extended = <&pdc 2 IRQ_TYPE_LEVEL_HIGH>;
	};

In this case interrupt 514 would be mapped to port 2 on the PDC as defined by
the qcom,pdc-ranges property.
