从长计议 发表于 2015-10-27 16:14:54

请教智龙V2如何使用引脚复用

请教智龙V2如何使用引脚复用

内核/arch/mips/include/asm/mach-loongson/ls1x/regs-mux.h中定义了引脚复用地址
#define LS1X_CBUS_FIRST0                ((void __iomem *)0xbfd011c0)
#define LS1X_CBUS_SECOND0                ((void __iomem *)0xbfd011d0)
#define LS1X_CBUS_THIRD0                ((void __iomem *)0xbfd011e0)
#define LS1X_CBUS_FOURTHT0                ((void __iomem *)0xbfd011f0)

......

#define LS1X_CBUS_FIRST3                ((void __iomem *)0xbfd011cc)
#define LS1X_CBUS_SECOND3                ((void __iomem *)0xbfd011dc)
#define LS1X_CBUS_THIRD3                ((void __iomem *)0xbfd011ec)
#define LS1X_CBUS_FOURTHT3                ((void __iomem *)0xbfd011fc)

查阅《Loongson1C300_user_manual_v1.3》 《Loongson1C300_datasheet_v1.2》有关复用的说明
对这些寄存器写入值后,读出的总是0,引脚复用也没有实现,怎么样才能启用引脚复用呢?


从长计议 发表于 2015-11-13 09:51:45

查龙芯1c的datasheet,复用的pad就是指gpio。比如使用UAR1,复用GPIO2,3
       __raw_writel(readl(LS1X_CBUS_FOURTHT0) | ( 1 << (2)) ,LS1X_CBUS_FOURTHT0);
       __raw_writel(readl(LS1X_CBUS_FOURTHT0) | ( 1 << (3)) ,LS1X_CBUS_FOURTHT0);

比如使用I2C-2,gpio 50 51的第四复用
        __raw_writel(readl(LS1X_CBUS_FOURTHT1) |( 1 << (50 -32)) ,LS1X_CBUS_FOURTHT1);
        __raw_writel(readl(LS1X_CBUS_FOURTHT1) |( 1 << (51 -32)) ,LS1X_CBUS_FOURTHT1);

哈罗 发表于 2016-11-16 11:00:33

你好请问引脚复用在哪里添加啊   具体怎么添加能举个完整的例子么不理解上面的( 1 << (50 -32)), ( 1 << (51 -32))是什么意思

简单平安 发表于 2016-11-16 14:35:03

智龙V2通过I2C连接DS3231时钟模块
http://www.openloongson.org/forum.php?mod=viewthread&tid=149&extra=page%3D1

这是个很好的例子
页: [1]
查看完整版本: 请教智龙V2如何使用引脚复用