2482|0

86

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

PXA270关于CF host口的驱动 [复制链接]

开发板处理器是PXA270的,现在想在板子上装一个CF无线网卡(NETGEAR MA701),因为板子是自己做的,所以需要修改一下pcmcia的接口驱动。
我是在drivers/pcmcia/pxa2xx_mainstone.c基础上修改的。
现在问题:
1.CF卡在开放板启动起来以后,CF卡上的灯是亮的。说明加上电了,但是用cardctl status 查询确是
  NO CARD
2.难道是里面的GPIO没有设置对?
3.板子启动起来以后,再插上CF网线网卡,开发板没有任何检测到CF网卡的反应。
4.只有在程序中写上GPDR3 |= (1<<8);  // setup GPIO104 as output  对应的是RESET管脚,才能供上电。WHY? 我没有想清楚。
5。关于CF卡的这部分电路 我也放在附件中。
  请各位大侠看看。给点建议!


下面修改的程序pxa2xx_panther.c一部分。完整我放在附件中。
static struct pcmcia_irqs irqs[] = {
        { 0, PANTHER_CF_DETECT_IRQ, "PCMCIA0 CD" },
};
static int pather_pcmcia_hw_init(struct soc_pcmcia_socket *skt)
{
        /* After clear RDH bit we can reset codec and read out ID now */
        PSSR |= PSSR_RDH;
       
        GPDR3 |= (1<<5); // setup GPIO101 as output  对应是我板子原理图上pcmcia电路上的一个锁存器
             GPCR3 |= (1<<5); // GPIO101 to output low

        GPDR3 |= (1<<8);  // setup GPIO104 as output  对应的是RESET管脚

        /*
         * Setup default state of GPIO level before we enable them as outputs.
         */
        GPSR(GPIO48_nPOE) = GPIO_bit(GPIO48_nPOE)          | GPIO_bit(GPIO49_nPWE)  |
                                                GPIO_bit(GPIO50_nPIOR)         | GPIO_bit(GPIO51_nPIOW);
#if 0       
        GPSR(GPIO79_pSKTSEL_MD) = GPIO_bit(GPIO79_pSKTSEL_MD);
        GPCR(GPIO79_pSKTSEL_MD) = GPIO_bit(GPIO79_pSKTSEL_MD);
#endif       
       
        GPSR(GPIO85_nPCE_1) = GPIO_bit(GPIO85_nPCE_1)| GPIO_bit(GPIO54_nPCE_2);

        pxa_gpio_mode(GPIO48_nPOE_MD);
        GPCR1 |= (1<<16); //OE to output low

        pxa_gpio_mode(GPIO49_nPWE_MD);
        pxa_gpio_mode(GPIO50_nPIOR_MD);
        pxa_gpio_mode(GPIO51_nPIOW_MD);
        pxa_gpio_mode(GPIO55_nPREG_MD);
        pxa_gpio_mode(GPIO56_nPWAIT_MD);
        pxa_gpio_mode(GPIO57_nIOIS16_MD);
        //pSKTSEL to output low
        pxa_gpio_mode(GPIO79_pSKTSEL_MD);
        GPCR2 |= (1<<15);

        //pxa_gpio_mode(GPIO102_nPCE_1_MD        );
        //pxa_gpio_mode(GPIO105_nPCE_2_MD        );

        pxa_gpio_mode(GPIO85_nPCE_1_MD);
        GPCR2 |= (1<<21); //CE1 to output low

        pxa_gpio_mode(GPIO54_nPCE_2_MD);
        GPCR1 |= (1<<22); //CE2 to output low


        skt->irq = IRQ_GPIO(107);  //GPIO107是对应的IREQ
        return soc_pcmcia_request_irqs(skt, irqs, ARRAY_SIZE(irqs));
}
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表