S905串口控制IO口操作.

来源:互联网 发布:汽车产销数据平台 编辑:程序博客网 时间:2024/06/03 11:00
 串口控制IO口操作.
#su
mount -t debugfs debugfs /sys/kernel/debug
cd /sys/kernel/debug/aml_reg/

read reg:
echo abs_physical_addr > paddr
cat paddr

write reg:
echo abs_physical_addr value > paddr     //  value should be hex but do not have 0x head

dump reg:
echo abs_physical_addr cnt > dump

abs_physical_addr 的物理地址计算方法:
 通过查看uboot/arch/arm/include/asm/arch-gxb/secure_apb.h 文件
比如GPIOY_9 对应的是reg1,  #define PREG_PAD_GPIO1_EN_N      (0xc8834400 + (0x0f << 2))
 对应的物理地址是: 0xc8834400+0x0f*4=0xc883443c

GPIOY_9代码修改:uboot里面
     clrbits_le32(PERIPHS_PIN_MUX_1, 1 << 6);//清除pinmux reg1_6
     clrbits_le32(PERIPHS_PIN_MUX_2, 1 << 16);//清除pinmux reg2_16
     clrbits_le32(PERIPHS_PIN_MUX_3, 1 << 5);//清除pinmux reg3_5
     clrbits_le32(PREG_PAD_GPIO1_EN_N, 1 << 9);//设置为输出模式
     clrbits_le32(PREG_PAD_GPIO1_O, 1 << 9);//输出0

内核里面的控制:
     void __iomem          *base;
      host->base = ioremap(0xc8834400, 0x200);//0x200 表示长度
      u32 ret;
       ret= readl(host->base + (0x10 << 2));
        ret |= (1 << 9);
        writel(ret, host->base + (0x10 << 2));        writel(ret, host->base + (0x10 << 2));

0 0
原创粉丝点击