S905串口控制IO口操作.

 串口控制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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Keep Coding...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值