WhyCan Forum(哇酷论坛)

人过留名,雁过留声,感谢各位朋友不离不弃地支持。 QQ: 516333132, 微信: whycan_cn (哇酷网/挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 2020-01-10 09:50:41

wenfengtou
会员
注册时间: 2019-12-28
累计积分: 25

求教荔枝派nano的F1C100s的GPIO在驱动端一般的操作方法

想问下大家在驱动端是怎么操作GPIO的(不是直接在用户空间操作sys/class的方法),例如让特定GPIO输出高低电平。在dts里面看到大多数是使用
pinctrl的方法,例如spi,串口等,但是貌似都没有让gpio设置高低电平的方法,不知道要怎么配置dts才能完成高低电平的配置。

spi0_pins_a: spi0-pins-pc {
	pins = "PC0", "PC1", "PC2", "PC3";
	function = "spi0";
};

&spi0 {
	pinctrl-names = "default";
	pinctrl-0 = <&spi0_pins_a>;
	status = "okay";
	flash@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "winbond,xt25f128b", "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <50000000>;
	  };

};

或者说有什么推荐的操作GPIO的方法或者资料网站?诚意求教,因为看到网上很多都是其他平台的或者太久了,对于新手来说无法操作,所以才来求助的。

离线

#2 2020-01-10 10:08:58

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,866

Re: 求教荔枝派nano的F1C100s的GPIO在驱动端一般的操作方法

#include <linux/gpio.h>

//PG0 = 6*32+0 = 192

gpio_direction_output(192, 0); //设置为输出状态, 默认输出低电平

gpio_set_value(192, 1); //高电平

gpio_set_value(192, 0); //低电平

离线

#3 2020-01-10 10:37:38

wenfengtou
会员
注册时间: 2019-12-28
累计积分: 25

Re: 求教荔枝派nano的F1C100s的GPIO在驱动端一般的操作方法

感谢晕哥,请问PG0 =  6*32+0 = 192 是怎么来的?是每个GPIO组默认都是32个吗,例如PA0 = 1, PB0 = 32?跟datasheet里面的pin num是同一个东西吗,为什么貌似对不上呢?
gpio.jpg

离线

#4 2020-01-10 10:47:57

wenfengtou
会员
注册时间: 2019-12-28
累计积分: 25

Re: 求教荔枝派nano的F1C100s的GPIO在驱动端一般的操作方法

找到v3s的一个类似的贴子, https://whycan.cn/t_1853.html ,GPIO号跟Nano是一样的吗?

离线

#5 2020-01-10 11:12:14

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,866

Re: 求教荔枝派nano的F1C100s的GPIO在驱动端一般的操作方法

不用管引脚是否引出, 就按这个公式就行, 因为 soc和driver就是这么设计的:

A = 0
B = 1
C = 2
D = 3
E = 4
F = 5
G = 6

PG6 = 6 * 32 + 6 = 198


PINNUM 应该指的是引脚吧?

离线

#6 2020-01-10 12:21:13

wenfengtou
会员
注册时间: 2019-12-28
累计积分: 25

Re: 求教荔枝派nano的F1C100s的GPIO在驱动端一般的操作方法

感谢晕哥指点迷津!

离线

页脚