78 lines
2.4 KiB
Plaintext
78 lines
2.4 KiB
Plaintext
|
Qualcomm SMSM Point-to-Point (SMP2P) GPIO Driver
|
||
|
|
||
|
Used to map an SMP2P entry and remote processor ID to a virtual GPIO controller
|
||
|
and virtual interrupt controller.
|
||
|
|
||
|
Required properties:
|
||
|
-compatible : should be "qcom,smp2pgpio";
|
||
|
-qcom,entry-name : name of the SMP2P entry
|
||
|
-qcom,remote-pid : the SMP2P remote processor ID (see smp2p_private_api.h)
|
||
|
-gpio-controller : specifies that this is a GPIO controller
|
||
|
-#gpio-cells : number of GPIO cells (should always be <2>)
|
||
|
-interrupt-controller : specifies that this is an interrupt controller
|
||
|
-#interrupt-cells : number of interrupt cells (should always be <2>)
|
||
|
|
||
|
Optional properties:
|
||
|
-qcom,is-inbound : specifies that this is an inbound entry (default is outbound)
|
||
|
|
||
|
Comments:
|
||
|
All device tree entries must be unique. Therefore to prevent naming collisions
|
||
|
between clients, it is recommended that the DT nodes should be named using the
|
||
|
format:
|
||
|
smp2pgpio_<ENTRY_NAME>_<REMOTE PID>_<in|out>
|
||
|
|
||
|
Example:
|
||
|
/* Maps inbound "smp2p" entry on remote PID 7 to GPIO controller. */
|
||
|
smp2pgpio_smp2p_7_in: qcom,smp2pgpio-smp2p-7-in {
|
||
|
compatible = "qcom,smp2pgpio";
|
||
|
qcom,entry-name = "smp2p";
|
||
|
qcom,remote-pid = <7>;
|
||
|
qcom,is-inbound;
|
||
|
gpio-controller;
|
||
|
#gpio-cells = <2>;
|
||
|
interrupt-controller;
|
||
|
#interrupt-cells = <2>;
|
||
|
};
|
||
|
|
||
|
/*
|
||
|
* Maps inbound "smp2p" entry on remote PID 7 to client driver
|
||
|
* "qcom,smp2pgpio_test_smp2p_7_in".
|
||
|
*
|
||
|
* Note: If all 32-pins are used by this client, then you
|
||
|
* can just list pin 0 here as a shortcut.
|
||
|
*/
|
||
|
qcom,smp2pgpio_test_smp2p_7_in {
|
||
|
compatible = "qcom,smp2pgpio_test_smp2p_7_in";
|
||
|
gpios = <&smp2pgpio_smp2p_7_in 0 0>, /* pin 0 */
|
||
|
<&smp2pgpio_smp2p_7_in 1 0>,
|
||
|
. . .
|
||
|
<&smp2pgpio_smp2p_7_in 31 0>; /* pin 31 */
|
||
|
};
|
||
|
|
||
|
|
||
|
/* Maps outbound "smp2p" entry on remote PID 7 to GPIO controller. */
|
||
|
smp2pgpio_smp2p_7_out: qcom,smp2pgpio-smp2p-7-out {
|
||
|
compatible = "qcom,smp2pgpio";
|
||
|
qcom,entry-name = "smp2p";
|
||
|
qcom,remote-pid = <7>;
|
||
|
gpio-controller;
|
||
|
#gpio-cells = <2>;
|
||
|
interrupt-controller;
|
||
|
#interrupt-cells = <2>;
|
||
|
};
|
||
|
|
||
|
/*
|
||
|
* Maps outbound "smp2p" entry on remote PID 7 to client driver
|
||
|
* "qcom,smp2pgpio_test_smp2p_7_out".
|
||
|
*
|
||
|
* Note: If all 32-pins are used by this client, then you
|
||
|
* can just list pin 0 here as a shortcut.
|
||
|
*/
|
||
|
qcom,smp2pgpio_test_smp2p_7_out {
|
||
|
compatible = "qcom,smp2pgpio_test_smp2p_7_out";
|
||
|
gpios = <&smp2pgpio_smp2p_7_out 0 0>, /* pin 0 */
|
||
|
<&smp2pgpio_smp2p_7_out 1 0>,
|
||
|
. . .
|
||
|
<&smp2pgpio_smp2p_7_out 31 0>; /* pin 31 */
|
||
|
};
|