(ARM Cortex-A7) H3 (NanoPi M1)

如何初始化R_GPIO


參考資料:
1. ar100
2. u-boot
3. armbian
4. nanopi m1

似乎每次遇到抄襲別人東西的時候就會缺少說明文件,Allwinner的R_GPIO(R_PIO)就是一個例子,在使用Allwinner H3 R_GPIO之前,PIO_GATING(BUS_CLK_GATING_REG2)必須先開啟,接著初始化PRCM相關暫存器,可惜,這部份並沒有說明文件,因此,只能去看U-Boot如何做的,然後照抄一遍

  .equ PRCM,      0x01f01400
  .equ CCU,       0x01c20000
  .equ PIO,       0x01c20800

  .equ BUS_CLK_GATING_REG2,  (CCU + 0x68)
  .equ PRCM_APB0_GATE,       (PRCM + 0x28)
  .equ PRCM_APB0_RESET,      (PRCM + 0xb0)
  .equ PRCM_SEC_SWITCH,      (PRCM + 0x1d0)

reset:
  ldr r0, =BUS_CLK_GATING_REG2
  ldr r1, [r0]
  orr r1, #(1 << 5)
  str r1, [r0]

  ldr r0, =PRCM_SEC_SWITCH
  ldr r1, =(1 << 2) | (1 << 1) | (1 << 0)
  str r1, [r0]

  ldr r0, =PRCM_APB0_GATE
  ldr r1, [r0]
  orr r1, #(1 << 0)
  str r1, [r0]

  ldr r0, =PRCM_APB0_RESET
  ldr r1, =(1 << 0)
  str r1, [r0]


返回上一頁