设备树之pinctrl(itop4412平台)

重要结构步骤:

在设备树中添加信息

在驱动中调用系统提供的相关的函数

可参考官方文档

注意:pinctrl子系统不仅仅只是包括gpio,引入pinctrl最大的好处是标准化pin初始化。

1 pinctrl子系统提供给驱动的API接口
  参考文档:doc "Documentation/driver-api/pinctl.rst"

2 使用pinctrl完成初始化的步骤
    A:pinctrl设备树文件中,添加描述
    B:设备树中添加引用
    C:驱动中使用:
    三步:获取一个pinctrl句柄,获取其中一个状态,选取其中一个状态设置
    
3 设备树中添加引用代码

    &leds_test_node {
        status = "okay";
        pinctrl-names = "itop-leds1-on","itop-leds1-off";
        pinctrl-0 = <&leds_gpios1_on>;
        pinctrl-1 = <&leds_gpios1_off>;
    };

4 驱动代码分析和测试

#include <linux/pinctrl/consumer.h> 
xxx_probe(struct platform_device *pdev){
    ...
    struct pinctrl *leds_pin_ctrl;
    struct pinctrl_state *leds_state;
        
    leds_pin_ctrl = devm_pinctrl_get(&pdev->dev);    ---返回句柄
        
    leds_state = pinctrl_lookup_state(leds_pin_ctrl,"itop-leds1-on");    ---获取状态
    pinctrl_select_state(leds_pin_ctrl, leds_state);    ---设置状态
        
    devm_pinctrl_put(leds_pin_ctrl);    ---释放句柄
}

GPIO子系统和设备树pinctrl子系统:GPIO在设备树中的写法、驱动中GPIO的调用、管脚设备树配置等等
PS:设备树的引入是为了节省代码,平台文件中,对应pin的管理是很糟糕的,在设备树中添加了pinctrl子系统;pinctrl和原来的GPIO子系统同时存在,大家先有这个概念。

文档

linux的GPIO系统官方文档:
    Documentation/devicetree/bindings/gpio/gpio.txt

三星的GPIO系统官方文档:
    Documentation/devicetree/bindings/gpio/gpio-samsung.txt

1.2 pinctrl文档
linux的pinctrl系统官方文档:
    Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt

三星的pinctrl系统官方文档:
    Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
    
源码文件:
    dt-bindings/pinctrl/samsung.h
    arch/arm/boot/dts/exynos4412-pinctrl.dtsi

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
itop4412上移植SSH,你可以按照以下步骤进行操作: 1. 首先,将SSH源代码拷贝到itop4412的开发环境中。你可以使用SCP命令将源代码从本地计算机复制到itop4412上的指定目录。例如,将源代码复制到itop4412的`/home/project/ssh-arm/openssh-4.6p1`目录下: ```shell scp /path/to/openssh-4.6p1.tar.gz root@itop4412:/home/project/ssh-arm/ ``` 2. 解压源代码文件。在itop4412上的开发环境中,使用以下命令解压源代码文件: ```shell tar -zxvf openssh-4.6p1.tar.gz ``` 3. 进入解压后的源代码目录: ```shell cd openssh-4.6p1 ``` 4. 配置编译选项。运行以下命令以配置SSH的编译选项: ```shell ./configure --host=arm-linux-gnueabihf --prefix=/usr/local/ssh ``` 这里的`--host`选项指定了目标平台为arm-linux-gnueabihf,`--prefix`选项指定了安装目录为`/usr/local/ssh`。 5. 编译源代码。运行以下命令以编译SSH源代码: ```shell make ``` 6. 安装SSH。运行以下命令以将编译后的SSH安装到指定目录: ```shell make install ``` 这将把SSH安装到`/usr/local/ssh`目录下。 7. 配置SSH服务器。在itop4412上的开发环境中,编辑SSH服务器的配置文件`/usr/local/ssh/etc/sshd_config`,根据你的需求进行配置。 8. 启动SSH服务器。运行以下命令以启动SSH服务器: ```shell /usr/local/ssh/sbin/sshd ``` 现在,你已经成功在itop4412上移植了SSH,并启动了SSH服务器。你可以使用SSH客户端连接到itop4412并进行远程操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值