完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
static int sc_open(struct inode *inode, struct file *filp)
{ int ret, intf; for(intf = 0; intf < SC_INTF; intf++) if(MINOR(inode->i_rdev) == sc[intf].minor) { break; } mutex_lock(&sc[intf].lock); if(sc->open == 1) { mutex_unlock(&sc[intf].lock); return -EBUSY; } filp->private_data = (void *)&sc[intf]; if(intf == 0) { sc[intf].clk = clk_get(NULL, "smc0"); sc[intf].eclk = clk_get(NULL, "smc0_eclk"); } else { sc[intf].clk = clk_get(NULL, "smc1"); sc[intf].eclk = clk_get(NULL, "smc1_eclk"); } if (IS_ERR(sc[intf].clk)) { printk("failed to get sc clock\n"); ret = PTR_ERR(sc[intf].clk); goto out2; } if (IS_ERR(sc[intf].eclk)) { printk("failed to get sc eclock\n"); ret = PTR_ERR(sc[intf].eclk); goto out2; } clk_prepare(sc[intf].clk); clk_enable(sc[intf].clk); clk_prepare(sc[intf].eclk); clk_enable(sc[intf].eclk); clk_set_rate(sc[intf].eclk, 4000000); // Set SC clock to 4MHz if(sc[intf].pwrinv) { __raw_writel(__raw_readl(sc[intf].base + REG_SC_PINCTL) | SC_PINCTL_PWRINV, sc[intf].base + REG_SC_PINCTL); } if(sc[intf].cdlvl == 0) { __raw_writel(__raw_readl(sc[intf].base + REG_SC_CTL) | SC_CTL_CDLV, sc[intf].base + REG_SC_CTL); } // enable SC engine __raw_writel(__raw_readl(sc[intf].base + REG_SC_CTL) | SC_CTL_SCEN, sc[intf].base + REG_SC_CTL); if (request_irq(sc[intf].irq, nuc970_sc_interrupt, 0x0, "nuc970-sc", (void *)&sc[intf])) { printk("register irq failed %d\n", sc[intf].irq); ret = -EAGAIN; goto out1; } sc[intf].open = 1; mutex_unlock(&sc[intf].lock); return 0; out1: free_irq(sc[intf].irq, (void *)&sc[intf]); out2: mutex_unlock(&sc[intf].lock); return ret; } |
|
相关推荐
1个回答
|
|
在上述代码中,有一个语法错误,即“<”应该是“<”,表示小于符号。修改后的代码如下:
static int sc_open(struct inode *inode, struct file *filp){ int ret, intf; for(intf = 0; intf < SC_INTF; intf++) if(MINOR(inode->i_rdev) == sc.minor) { break; } // TODO: 添加其他代码 } |
|
|
|
只有小组成员才能发言,加入小组>>
3311 浏览 9 评论
2994 浏览 16 评论
3493 浏览 1 评论
9058 浏览 16 评论
4087 浏览 18 评论
1178浏览 3评论
605浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
599浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2335浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1896浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 00:37 , Processed in 1.495789 second(s), Total 78, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号