linux2.6.38到tiny6410的移植手册(连载4)USB设备(U盘,摄像头,wifi).docVIP

linux2.6.38到tiny6410的移植手册(连载4)USB设备(U盘,摄像头,wifi).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux2.6.38到tiny6410的移植手册(连载4)USB设备(U盘,摄像头,wifi)

linux-2.6.38到tiny6410的移植手册(连载4)__USB设备(U盘,摄像头,wifi) 今天来讲讲一些USB设备(U盘,摄像头,wifi)的驱动吧,它的特点是内核已经带非常完善的驱动了, 我们需要的就是配置而已,和很少的修改而已。 一、首先是U盘得支持。 1、vi arch/arm/mach-s3c64xx/mach-mini6410.c 124行增加 /* Initializes OTG Phy. to output 48M clock */ void s3c_otg_phy_config(int enable) { ????????u32 val; ????????if (enable) { ????????????????__raw_writel(0x0, S3C_PHYPWR);??/* Power up */ ????????????????val = __raw_readl(S3C_PHYCLK); ????????????????val = ~S3C_PHYCLK_CLKSEL_MASK; ????????????????__raw_writel(val, S3C_PHYCLK); ????????????????__raw_writel(0x1, S3C_RSTCON); ????????????????udelay(5); ????????????????__raw_writel(0x0, S3C_RSTCON);??/* Finish the reset */ ????????????????udelay(5); ????????} else { ????????????????__raw_writel(0x19, S3C_PHYPWR); /* Power down */ ????????} } 2、vi drivers/usb/host/ohci-s3c2410.c 修改方法 @@ -25,10 +25,14 @@ #define valid_port(idx) ((idx) == 1 || (idx) == 2) +#ifdef CONFIG_MACH_MINI6410 +extern void s3c_otg_phy_config(int enable); +#endif + /* clock device associated with the hcd */ static struct clk *clk; -static struct clk *usb_clk; +static struct clk *otg_clk, *usb_clk; /* forward definitions */ @@ -47,6 +51,11 @@ ???? dev_dbg(dev-dev, s3c2410_start_hc:\n); +????clk_enable(otg_clk); +#ifdef CONFIG_MACH_MINI6410 +????s3c_otg_phy_config(1); +#endif + ???? clk_enable(usb_clk); ???? mdelay(2);????????????/* let the bus clock stabilise */ @@ -79,6 +88,7 @@ ???? clk_disable(clk); ???? clk_disable(usb_clk); +????clk_disable(otg_clk); } /* ohci_s3c2410_hub_status_data @@ -375,6 +385,13 @@ ???????? goto err_clk; ???? } +????otg_clk = clk_get(dev-dev, otg); +????if (IS_ERR(otg_clk)) { +????????dev_err(dev-dev, cannot get otg clock\n); +????????retval = -ENOENT; +????????goto err_otg; +????} + ???? s3c2410_start_hc(dev, hcd); ???? hcd-regs = ioremap(hcd-rsrc_start, hcd-rsrc_len); @@ -395,6 +412,10 @@ ??err_ioremap: ???? s3c2410_stop_hc(dev); ???? iounmap(hcd-regs); + +????clk_put(otg_clk); + + err_otg: ???? clk_put(usb_clk); ??err_c

文档评论(0)

aicencen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档