我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 932|回复: 2

[技术文章] mstar安卓电视方案kernel控制GPIO的方法

[复制链接]

该用户从未签到

46

主题

44

回帖

0

积分

二级逆天

积分
0

终身成就奖

QQ
发表于 2017-3-20 00:16:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
关于kernel控制GPIO的方法往往比较复杂,这里介绍一种在mstar平台实际写过的一种简单方法。
Kernel是往往没有现成的GPIO控制接口,所以得自己造。
这里以在kernel控制PAD_GPIO_PM1,PAD_GPIO_PM5这两个IO口为例。例子中出现的寄存器要在你所用平台的CHIP资料上找。

#if defined(CONFIG_ARM) || defined(CONFIG_MIPS)
#define REG_MIPS_BASE               0xFD000000      //Use 8 bit addressing
#elif defined(CONFIG_ARM64)
extern ptrdiff_t mstar_pm_base;
#define REG_MIPS_BASE           (mstar_pm_base)
#endif

#define MHal_GPIO_REG(addr)         (*(volatile U8*)(REG_MIPS_BASE + (((addr) & ~1) << 1) + (addr & 1)))

#define PAD_GPIO_PM1 11
#define PAD_GPIO_PM1_ADDR  0x0f02UL
#define PAD_GPIO_PM1_OEN BIT0
#define PAD_GPIO_PM1_OUT BIT1
#define PAD_GPIO_PM1_IN BIT2

#define PAD_GPIO_PM5 15
#define PAD_GPIO_PM5_ADDR  0x0f0AUL
#define PAD_GPIO_PM5_OEN BIT0
#define PAD_GPIO_PM5_OUT BIT1
#define PAD_GPIO_PM5_IN BIT2

void GPIO_PM1_Set_High()
{
        MHal_GPIO_REG(PAD_GPIO_PM1_ADDR) &= ~PAD_GPIO_PM1_OEN;
        MHal_GPIO_REG(PAD_GPIO_PM1_ADDR) |= PAD_GPIO_PM1_OUT;
}

void GPIO_PM1_Set_Low()
{
        MHal_GPIO_REG(PAD_GPIO_PM1_ADDR) &= ~PAD_GPIO_PM1_OEN;
        MHal_GPIO_REG(PAD_GPIO_PM1_ADDR) &= ~PAD_GPIO_PM1_OUT;
}

void GPIO_PM5_Set_High()
{
        MHal_GPIO_REG(PAD_GPIO_PM5_ADDR) &= ~PAD_GPIO_PM1_OEN;
        MHal_GPIO_REG(PAD_GPIO_PM5_ADDR) |= PAD_GPIO_PM1_OUT;
}

void GPIO_PM5_Set_Low()
{
        MHal_GPIO_REG(PAD_GPIO_PM5_ADDR) &= ~PAD_GPIO_PM1_OEN;
        MHal_GPIO_REG(PAD_GPIO_PM5_ADDR) &= ~PAD_GPIO_PM1_OUT;
}
回复

使用道具 举报

该用户从未签到

0

主题

5178

回帖

2062

积分

二级逆天

积分
2062

社区居民忠实会员社区劳模特殊贡献奖最爱沙发终身成就奖优秀斑竹奖原创先锋奖

QQ
发表于 2017-3-20 08:49:32 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

0

主题

72

回帖

0

积分

二级逆天

积分
0

终身成就奖

QQ
发表于 2017-3-20 09:20:48 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

每日签到,有金币领取。


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

平平安安
TOP
快速回复 返回顶部 返回列表