73 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 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-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.
 | 
