🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
​ ## GPIO子系统 ### 驱动使用 定义设备树 ~~~ gpioled { #address-cells = <1>; #size-cells = <1>; compatible = "atkalpha-gpioled"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_led>; led-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>; status = "okay"; }; ~~~ ![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) 驱动使用 ~~~ of_get_named_gpio(leddev.node, "led-gpio", 0); gpio_request(leddev.led0, "led0"); gpio_direction_output(leddev.led0, 1); gpio_set_value(leddev.led0, 0); ~~~ ![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) ## pinctrl子系统 ### 驱动使用 定义设备树 ~~~ &pinctrl@11000000 { led_demo: led{ samsung,pins = "gpm4-0", "gpm4-1" ,"gpm4-2", "gpm4-3"; samsung,pin-function = <0x1>; //1为输出 samsung,pin-pud = <0x0>; //没有上拉 samsung,pin-drv = <0x0>; //驱动强度? }; }; led_pin { compatible = "tiny4412,led_demo"; pinctrl-names = "led_demo"; pinctrl-0 = <&led_demo>; tiny4412,int_gpio1 = <&gpm4 0 GPIO_ACTIVE_HIGH>; tiny4412,int_gpio2 = <&gpm4 1 GPIO_ACTIVE_HIGH>; tiny4412,int_gpio3 = <&gpm4 2 GPIO_ACTIVE_HIGH>; tiny4412,int_gpio4 = <&gpm4 3 GPIO_ACTIVE_HIGH>; }; ~~~ ![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) 驱动使用 如果 pinctrl-names 为 “default”,那么这种功能状态将设置为默认的引脚状态,代码中无需处理。 ~~~ pctrl = devm_pinctrl_get(dev); pstate = pinctrl_lookup_state(pctrl, "led_demo"); pinctrl_select_state(pctrl, pstate);//设置为输出模式 printk("enter %s\n",__func__); led1 = of_get_named_gpio(dev->of_node, "tiny4412,int_gpio1", 0);; led2 = of_get_named_gpio(dev->of_node, "tiny4412,int_gpio2", 0);; led3 = of_get_named_gpio(dev->of_node, "tiny4412,int_gpio3", 0);; led4 = of_get_named_gpio(dev->of_node, "tiny4412,int_gpio4", 0);; devm_gpio_request_one(dev, led1, GPIOF_OUT_INIT_HIGH, "LED1"); devm_gpio_request_one(dev, led2, GPIOF_OUT_INIT_HIGH, "LED2"); devm_gpio_request_one(dev, led3, GPIOF_OUT_INIT_HIGH, "LED3"); devm_gpio_request_one(dev, led4, GPIOF_OUT_INIT_HIGH, "LED4"); ~~~ ![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==) ​