高通 MSM8953 SoC 上使用 DTS GPIO输出
时间: 2024-03-20 18:44:28 浏览: 18
在使用高通 MSM8953 SoC 上的 DTS 文件中,您可以使用以下代码来定义 GPIO 输出:
```
gpio {
compatible = "qcom,gpio";
gpio-controller;
#gpio-cells = <2>;
gpio-leds {
compatible = "gpio-leds";
led0 {
label = "led0";
gpios = <&msmgpio 3 0 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
};
};
```
在上面的代码中,我们定义了一个 "gpio" 节点,它是一个 GPIO 控制器。我们还定义了一个名为 "gpio-leds" 的子节点,它是一个 GPIO LED 控制器。在这个子节点中,我们定义了一个名为 "led0" 的 LED,它连接到 MSM8953 SoC 上的 GPIO3_0 引脚上。
您可以根据自己的需求修改上面的代码来定义其他 GPIO 输出。注意,您需要查看 MSM8953 SoC 的数据手册以确定每个 GPIO 引脚的编号和功能。
相关问题
高通 MSM8953 SoC 上的 DTS 文件配置完GPIO为输出,怎么才能是系统对应的GPIO上电输出为高电平?
在 DTS 文件中,可以通过设置 `gpio-default` 属性来配置 GPIO 的初始状态。如果您希望 GPIO 在系统启动时输出高电平,可以将 `gpio-default` 设置为 `high`。例如:
```
gpio@123 {
// GPIO 的其他属性配置
gpio-default = <1>; // 输出高电平
};
```
如果您已经进行了这样的配置,但是 GPIO 没有输出高电平,可能是因为引脚复用的设置不正确,或者是硬件电路连接问题。您可以检查一下这些方面的配置和连接是否正确。
高通msm8953 dts gpio驱动实例
以下是高通 MSM8953 SoC 上使用 DTS(Device Tree Source)描述的 GPIO 驱动实例:
```
&tlmm {
gpio_keys: gpio-keys {
compatible = "gpio-keys";
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&button_pins>;
status = "okay";
button@4 {
label = "power";
gpios = <&tlmm 4 GPIO_ACTIVE_LOW>;
linux,code = <KEY_POWER>;
debounce-interval = <50>;
gpio-key,wakeup;
gpio-key,wakeup-source;
};
button@3 {
label = "volume_up";
gpios = <&tlmm 3 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEUP>;
debounce-interval = <50>;
};
button@2 {
label = "volume_down";
gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEDOWN>;
debounce-interval = <50>;
};
};
button_pins: button_pins {
pins = "gpio4", "gpio3", "gpio2";
function = "gpio_in";
drive-strength = <2>;
bias-disable;
};
};
```
在上面的示例中,我们定义了一个名为“gpio_keys”的节点,它表示一个 GPIO 按键设备。在该节点下,我们定义了三个名为“button@*”(*表示数字)的子节点,它们分别表示三个按键。每个按键节点都指定了其使用的 GPIO 引脚编号,所以我们需要在该文件中定义一个名为“button_pins”的节点,它表示我们将使用哪些 GPIO 引脚。在“button_pins”节点中,我们指定了使用 GPIO 引脚 2、3 和 4,它们的功能为“gpio_in”,表示我们将使用它们作为输入引脚,而不是输出引脚。最后,我们指定了每个按键的 Linux 按键代码(即在 Linux 内核中定义的按键码)、抖动时间和唤醒源等属性。
当系统启动时,内核会根据设备树中的 GPIO 配置自动加载相应的 GPIO 驱动程序。在本例中,内核将加载“gpio-keys”驱动程序,并将其绑定到我们定义的“gpio_keys”节点上。这样,我们就可以在 Linux 系统中使用这三个按键了。