| 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 */ |
| }; |