全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 控制/MCU >

学技术|SemiDrive X9H GPIO 驱动学习篇

时间:2023-01-13 10:42

人气:

作者:admin

标签: 驱动  GPIO  控制器 

导读:一、概述SemiDriveX9H拥有不同的domain域,例如AP,Safety,Secure等等。对于GPIO资源,不同domain之间gpio控制器是不同的,本次主要是使用的AP使用的是gpio4控制器。除了GPIO控制器在不同domain之...

一、概述

SemiDrive X9H 拥有不同的 domain 域,例如 AP,Safety,Secure 等等。对于 GPIO 资源,不同 domain 之间 gpio 控制器是不同的,本次主要是使用的 AP 使用的是 gpio4 控制器。除了GPIO 控制器在不同 domain 之间不同以外,pin 也是有各自不同的 domain 的,但是当它作为 gpio 使用时,可以通过设置挂靠到对应域下的 gpio 控制器上来在对应 domain 下使用。具体 pin 的 gpio 控制器的设置是通过 PC 工具 SDConfigTool 来进行。

本文主要是讲述将 pin 作为 GPIO 使用,之后编写字符设备驱动,测试。

二、适用环境

硬件:SemiDrive SD003_X9H REF_A03 DEMO Board

软件:X9 PTG3.9

三、设备树匹配

1、复用管脚为 GPIO

路径:

/buildsystem/yocto/source/linux/arch/arm64/boot/dts/semidrive/x9_high_ref_native_serdes_nobt.dts

在上面 dts 文件的 &pinctrl 的 sdx9-evk 中添加管脚复用,主要是将 GPIO_C1 管脚复用成 GPIO。

pinctrl_gpio_learning: gpiogrp_learning {

kunlun,pins = <

X9_PINCTRL_GPIO_C1__GPIO_MUX2_IO1_1 0x00

>;

};

2、配置一个新节点

路径:

/buildsystem/yocto/source/linux/arch/arm64/boot/dts/semidrive/x9_high_ref_native_serdes_nobt.dts

在上面 dts 文件里面的根节点 / 下新建一个节点,添加属性,获取 gpio 编号。

gpio_learning {

#address-cells = <1>;

#size-cells = <1>;

compatible = "gpioled_learning";

pinctrl-0 = <&pinctrl_gpio_learning>;

gpio = <&port4b 17 GPIO_ACTIVE_HIGH>;

status = "okay";

};

四、驱动编写

1、模块出/入口函数

其中 module_init 是驱动入口函数,主要进行 platform 平台驱动注册,module_exit 是驱动出口函数,主要是进行 platform 平台驱动注销;

其中 MODULE_LICENSE 主要是声明模块许可证,一般为 GPL。

/*设备入口函数*/

static int __init gpio_learning_init(void)

{

return platform_driver_register(&gpio_learning_driver);

}

/*设备出口函数*/

static void __exit gpio_learning_exit(void)

{

platform_driver_unregister(&gpio_learning_driver);

}

/*指定上面的入口和出口函数*/

module_init(gpio_learning_init);

module_exit(gpio_learning_exit);

MODULE_LICENSE("GPL"); //LICENSE 采用 GPL 协议

2、platform 平台驱动结构体

主要是通过 match 函数和对应的设备树里面节点匹配,只要 compatible 属性匹配成功即可,匹配成功就执行 probe 函数。

/*匹配列表*/

static const struct of_device_id gpio_learning_of_match[] = {

{ .compatible = "gpioled_learning" },

{ /*sentinel*

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信