新路程------imx6 内核层读写寄存器

   从watchdog驱动中提取出来的代码

        u16 mattval;

       void _iomem * matt;

      resource_size_t mattstart;


mattstart = MX6Q_WDOG1_BASE_ADDR ;


matt = ioremap_nocache(mattstart, 0x00004000); //后面这个是size,这里是SZ_16K


mattval = __raw_readw(matt + IMX2_WDT_WCR);


       __raw_writew(val, imx2_wdt.base + IMX2_WDT_WCR);


这里的MX6Q_WDOG1_BASE_ADDR定义在Mx6.h中


#define MX6Q_WDOG1_BASE_ADDR(AIPS1_OFF_BASE_ADDR + 0x3C000)

如果读写32bit的寄存器的话

mattval = __raw_readl(matt + IMX2_WDT_WCR);
printk("mattval=0x%lx\n",mattval);
mattval |= IMX2_WDT_WCR_WDZST;
printk("mattval=0x%lx\n",mattval);
__raw_writel(mattval, matt + IMX2_WDT_WCR);


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值