MSM GPIO controller bindings Required properties: - compatible: - "qcom,msm-gpio" for MSM controllers - #gpio-cells : Should be two. - first cell is the pin number - second cell is used to specify optional parameters (unused) - gpio-controller : Marks the device node as a GPIO controller. - #interrupt-cells : Should be 2. - interrupt-controller: Mark the device node as an interrupt controller - interrupts : Specify the TLMM summary interrupt number - ngpio : Specify the number of MSM GPIOs - qcom,direct-connect-irqs : Specifies the number of GPIOs that can be used as direct connect interrupts Example: msmgpio: gpio@fd510000 { compatible = "qcom,msm-gpio"; gpio-controller; #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; reg = <0xfd510000 0x4000>; interrupts = <0 208 0>; ngpio = <150>; qcom,direct-connect-irqs = <8>; }; To specify gpios for a device: device1@f991f000 { compatible = "qcom,msm-device-v1"; reg = <0xf991f000 0x1000>; gpios = <&msmgpio 45 0>; cs-gpios = <&msmgpio 46 0>; }; 45, 46 - gpio numbers. The driver for device1 can call of_get_gpio() to extract the gpio45. In order to extract gpio46, the driver needs to call of_get_named_gpio with "cs-gpios" as the name parameter. Please refer to the file: include/linux/of_gpio.h for the complete list of APIs the driver can use to extract gpio information from the device tree.