mbox series

[0/6] rockchip: rk3328: sync dts and add ROC-RK3328-CC board

Message ID 20200327044130.8763-1-wens@kernel.org
Headers show
Series rockchip: rk3328: sync dts and add ROC-RK3328-CC board | expand

Message

Chen-Yu Tsai March 27, 2020, 4:41 a.m. UTC
From: Chen-Yu Tsai <wens at csie.org>

Hi everyone,

This series adds proper support for Firefly / Libre Computer ROC-RK3328-CC
single board computer.

The ROC-RK3328-CC from Firefly and Libre Computer Project is a credit
card size development board based on the Rockchip RK3328 SoC, with:

  - 1/2/4 GB DDR4 DRAM
  - eMMC connector for optional module
  - micro SD card slot
  - 1 x USB 3.0 host port
  - 2 x USB 2.0 host port
  - 1 x USB 2.0 OTG port
  - HDMI video output
  - TRRS connector with audio and composite video output
  - gigabit Ethernet
  - consumer IR receiver
  - debug UART pins

Originally I started with Loic's patches, and syncing the device tree
files from Linux. That didn't get very far, with SPL failing to detect
the SD card. Examining the schematics and internal state of GRF and
GPIOs, I realized that the logic for the SD card power enable switch
is opposite that of what the SD card controller's SDMMC0_PWREN pin
would use. Instead, directly using the GPIO is required.

Thus this series creates a special target for this board to handle
muxing this specific pin to GPIO state. The GPIO is left in input mode,
letting the external pull-down work its magic.

Along the way, there are some clean-ups of existing dts files, moving
U-boot only features to -u-boot.dtsi files, and then a wholesale sync
from Linux. Only boards already existing in U-boot are synced. DT
binding header files are synced separately as there is already one
patch floating around. The DT sync also includes clean-up changes only
recently posted, and likely won't make it in for at least a few weeks.

Please have a look, and test if possible. I cc-ed a couple people that
showed interest in this board on mailing lists recently.

Regards
ChenYu


Chen-Yu Tsai (6):
  rockchip: dts: rk3328-evb: Move vcc5v0-host-xhci-drv to -u-boot.dtsi
  rockchip: dts: rk3328-evb: Move gmac2io related nodes to -u-boot.dtsi
  dt-bindings: clock: rk3328: sync from upstream Linux kernel
  dt-bindings: power: rk3328-power: sync from upstream Linux kernel
  rockchip: dts: rk3328: Sync device tree files from Linux
  rockchip: rk3328: Add support for ROC-RK3328-CC board

 arch/arm/dts/Makefile                         |    1 +
 arch/arm/dts/rk3328-evb-u-boot.dtsi           |   39 +
 arch/arm/dts/rk3328-evb.dts                   |  220 +--
 arch/arm/dts/rk3328-roc-cc-u-boot.dtsi        |   17 +
 .../{rk3328-rock64.dts => rk3328-roc-cc.dts}  |  135 +-
 arch/arm/dts/rk3328-rock64.dts                |  132 +-
 arch/arm/dts/rk3328.dtsi                      | 1420 +++++++++++------
 arch/arm/mach-rockchip/rk3328/Kconfig         |    8 +
 board/firefly/roc-cc-rk3328/Kconfig           |   24 +
 board/firefly/roc-cc-rk3328/MAINTAINERS       |    7 +
 board/firefly/roc-cc-rk3328/Makefile          |    1 +
 board/firefly/roc-cc-rk3328/board.c           |   38 +
 configs/roc-cc-rk3328_defconfig               |   97 ++
 doc/README.rockchip                           |    4 +-
 include/dt-bindings/clock/rk3328-cru.h        |  212 +--
 include/dt-bindings/power/rk3328-power.h      |   19 +
 16 files changed, 1622 insertions(+), 752 deletions(-)
 create mode 100644 arch/arm/dts/rk3328-roc-cc-u-boot.dtsi
 copy arch/arm/dts/{rk3328-rock64.dts => rk3328-roc-cc.dts} (68%)
 create mode 100644 board/firefly/roc-cc-rk3328/Kconfig
 create mode 100644 board/firefly/roc-cc-rk3328/MAINTAINERS
 create mode 100644 board/firefly/roc-cc-rk3328/Makefile
 create mode 100644 board/firefly/roc-cc-rk3328/board.c
 create mode 100644 configs/roc-cc-rk3328_defconfig
 create mode 100644 include/dt-bindings/power/rk3328-power.h

Comments

Kurt Miller March 27, 2020, 3:07 p.m. UTC | #1
On Fri, 2020-03-27 at 12:41 +0800, Chen-Yu Tsai wrote:
> From: Chen-Yu Tsai <wens at csie.org>
> 
> Hi everyone,
> 
> This series adds proper support for Firefly / Libre Computer ROC-RK3328-CC
> single board computer.
> 
> The ROC-RK3328-CC from Firefly and Libre Computer Project is a credit
> card size development board based on the Rockchip RK3328 SoC, with:
> 
> ? - 1/2/4 GB DDR4 DRAM
> ? - eMMC connector for optional module
> ? - micro SD card slot
> ? - 1 x USB 3.0 host port
> ? - 2 x USB 2.0 host port
> ? - 1 x USB 2.0 OTG port
> ? - HDMI video output
> ? - TRRS connector with audio and composite video output
> ? - gigabit Ethernet
> ? - consumer IR receiver
> ? - debug UART pins
> 
> Originally I started with Loic's patches, and syncing the device tree
> files from Linux. That didn't get very far, with SPL failing to detect
> the SD card. Examining the schematics and internal state of GRF and
> GPIOs, I realized that the logic for the SD card power enable switch
> is opposite that of what the SD card controller's SDMMC0_PWREN pin
> would use. Instead, directly using the GPIO is required.
> 
> Thus this series creates a special target for this board to handle
> muxing this specific pin to GPIO state. The GPIO is left in input mode,
> letting the external pull-down work its magic.
> 
> Along the way, there are some clean-ups of existing dts files, moving
> U-boot only features to -u-boot.dtsi files, and then a wholesale sync
> from Linux. Only boards already existing in U-boot are synced. DT
> binding header files are synced separately as there is already one
> patch floating around. The DT sync also includes clean-up changes only
> recently posted, and likely won't make it in for at least a few weeks.
> 
> Please have a look, and test if possible. I cc-ed a couple people that
> showed interest in this board on mailing lists recently.
> 

Thank you for updating the dts for rk3328. I have Rock64 v2 and v3
boards and have tested your patchset with OpenBSD-current. The v2 board
is working and I have not noticed any regressions. The v3 board prior
to your patchset was not booting and continues to not boot.

U-Boot TPL 2020.04-rc3-00172-gaf827140e5-dirty (Mar 27 2020 - 09:44:24)
LPDDR3, 800MHz
BW=32 Col=11 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=4096MB
Trying to boot from BOOTROM
Returning to boot ROM...

U-Boot SPL 2020.04-rc3-00172-gaf827140e5-dirty (Mar 27 2020 - 09:44:24 -0400)
Trying to boot from MMC1
Card did not respond to voltage select!
spl: mmc init failed with error: -95
Trying to boot from MMC2
Card did not respond to voltage select!
spl: mmc init failed with error: -95
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

The Rock64 v3 board issues are unrelated to your patch set, but I
believe it needs a similar approach as?ROC-RK3328-CC. Here is some
info previously posted regarding this:

https://marc.info/?t=155751506500001&r=1&w=2

Regards,
-Kurt


> Regards
> ChenYu
> 
> 
> Chen-Yu Tsai (6):
> ? rockchip: dts: rk3328-evb: Move vcc5v0-host-xhci-drv to -u-boot.dtsi
> ? rockchip: dts: rk3328-evb: Move gmac2io related nodes to -u-boot.dtsi
> ? dt-bindings: clock: rk3328: sync from upstream Linux kernel
> ? dt-bindings: power: rk3328-power: sync from upstream Linux kernel
> ? rockchip: dts: rk3328: Sync device tree files from Linux
> ? rockchip: rk3328: Add support for ROC-RK3328-CC board
> 
> ?arch/arm/dts/Makefile?????????????????????????|????1 +
> ?arch/arm/dts/rk3328-evb-u-boot.dtsi???????????|???39 +
> ?arch/arm/dts/rk3328-evb.dts???????????????????|??220 +--
> ?arch/arm/dts/rk3328-roc-cc-u-boot.dtsi????????|???17 +
> ?.../{rk3328-rock64.dts => rk3328-roc-cc.dts}??|??135 +-
> ?arch/arm/dts/rk3328-rock64.dts????????????????|??132 +-
> ?arch/arm/dts/rk3328.dtsi??????????????????????| 1420 +++++++++++------
> ?arch/arm/mach-rockchip/rk3328/Kconfig?????????|????8 +
> ?board/firefly/roc-cc-rk3328/Kconfig???????????|???24 +
> ?board/firefly/roc-cc-rk3328/MAINTAINERS???????|????7 +
> ?board/firefly/roc-cc-rk3328/Makefile??????????|????1 +
> ?board/firefly/roc-cc-rk3328/board.c???????????|???38 +
> ?configs/roc-cc-rk3328_defconfig???????????????|???97 ++
> ?doc/README.rockchip???????????????????????????|????4 +-
> ?include/dt-bindings/clock/rk3328-cru.h????????|??212 +--
> ?include/dt-bindings/power/rk3328-power.h??????|???19 +
> ?16 files changed, 1622 insertions(+), 752 deletions(-)
> ?create mode 100644 arch/arm/dts/rk3328-roc-cc-u-boot.dtsi
> ?copy arch/arm/dts/{rk3328-rock64.dts => rk3328-roc-cc.dts} (68%)
> ?create mode 100644 board/firefly/roc-cc-rk3328/Kconfig
> ?create mode 100644 board/firefly/roc-cc-rk3328/MAINTAINERS
> ?create mode 100644 board/firefly/roc-cc-rk3328/Makefile
> ?create mode 100644 board/firefly/roc-cc-rk3328/board.c
> ?create mode 100644 configs/roc-cc-rk3328_defconfig
> ?create mode 100644 include/dt-bindings/power/rk3328-power.h
>
Chen-Yu Tsai March 27, 2020, 5:44 p.m. UTC | #2
Hi,

On Fri, Mar 27, 2020 at 11:07 PM Kurt Miller <kurt at intricatesoftware.com> wrote:
>
> On Fri, 2020-03-27 at 12:41 +0800, Chen-Yu Tsai wrote:
> > From: Chen-Yu Tsai <wens at csie.org>
> >
> > Hi everyone,
> >
> > This series adds proper support for Firefly / Libre Computer ROC-RK3328-CC
> > single board computer.
> >
> > The ROC-RK3328-CC from Firefly and Libre Computer Project is a credit
> > card size development board based on the Rockchip RK3328 SoC, with:
> >
> >   - 1/2/4 GB DDR4 DRAM
> >   - eMMC connector for optional module
> >   - micro SD card slot
> >   - 1 x USB 3.0 host port
> >   - 2 x USB 2.0 host port
> >   - 1 x USB 2.0 OTG port
> >   - HDMI video output
> >   - TRRS connector with audio and composite video output
> >   - gigabit Ethernet
> >   - consumer IR receiver
> >   - debug UART pins
> >
> > Originally I started with Loic's patches, and syncing the device tree
> > files from Linux. That didn't get very far, with SPL failing to detect
> > the SD card. Examining the schematics and internal state of GRF and
> > GPIOs, I realized that the logic for the SD card power enable switch
> > is opposite that of what the SD card controller's SDMMC0_PWREN pin
> > would use. Instead, directly using the GPIO is required.
> >
> > Thus this series creates a special target for this board to handle
> > muxing this specific pin to GPIO state. The GPIO is left in input mode,
> > letting the external pull-down work its magic.
> >
> > Along the way, there are some clean-ups of existing dts files, moving
> > U-boot only features to -u-boot.dtsi files, and then a wholesale sync
> > from Linux. Only boards already existing in U-boot are synced. DT
> > binding header files are synced separately as there is already one
> > patch floating around. The DT sync also includes clean-up changes only
> > recently posted, and likely won't make it in for at least a few weeks.
> >
> > Please have a look, and test if possible. I cc-ed a couple people that
> > showed interest in this board on mailing lists recently.
> >
>
> Thank you for updating the dts for rk3328. I have Rock64 v2 and v3
> boards and have tested your patchset with OpenBSD-current. The v2 board
> is working and I have not noticed any regressions. The v3 board prior
> to your patchset was not booting and continues to not boot.
>
> U-Boot TPL 2020.04-rc3-00172-gaf827140e5-dirty (Mar 27 2020 - 09:44:24)
> LPDDR3, 800MHz
> BW=32 Col=11 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=4096MB
> Trying to boot from BOOTROM
> Returning to boot ROM...
>
> U-Boot SPL 2020.04-rc3-00172-gaf827140e5-dirty (Mar 27 2020 - 09:44:24 -0400)
> Trying to boot from MMC1
> Card did not respond to voltage select!
> spl: mmc init failed with error: -95
> Trying to boot from MMC2
> Card did not respond to voltage select!
> spl: mmc init failed with error: -95
> SPL: failed to boot from all boot devices
> ### ERROR ### Please RESET the board ###
>
> The Rock64 v3 board issues are unrelated to your patch set, but I
> believe it needs a similar approach as ROC-RK3328-CC. Here is some
> info previously posted regarding this:
>
> https://marc.info/?t=155751506500001&r=1&w=2

So based on the changes from Pine64, it looks like v3 follows a similar
design as the ROC-RK3328-CC, that is use the SDMMC0_PWREN pin to control
power to the SD card. On the Rock64 v3, there's no external pull-down,
but the internal pull-down might be enough...

You could try setting the target to ROC-RK3328-CC through menuconfig
after you use the defconfig for rock64 and see if that works for you.


ChenYu

> Regards,
> -Kurt
>
>
> > Regards
> > ChenYu
> >
> >
> > Chen-Yu Tsai (6):
> >   rockchip: dts: rk3328-evb: Move vcc5v0-host-xhci-drv to -u-boot.dtsi
> >   rockchip: dts: rk3328-evb: Move gmac2io related nodes to -u-boot.dtsi
> >   dt-bindings: clock: rk3328: sync from upstream Linux kernel
> >   dt-bindings: power: rk3328-power: sync from upstream Linux kernel
> >   rockchip: dts: rk3328: Sync device tree files from Linux
> >   rockchip: rk3328: Add support for ROC-RK3328-CC board
> >
> >  arch/arm/dts/Makefile                         |    1 +
> >  arch/arm/dts/rk3328-evb-u-boot.dtsi           |   39 +
> >  arch/arm/dts/rk3328-evb.dts                   |  220 +--
> >  arch/arm/dts/rk3328-roc-cc-u-boot.dtsi        |   17 +
> >  .../{rk3328-rock64.dts => rk3328-roc-cc.dts}  |  135 +-
> >  arch/arm/dts/rk3328-rock64.dts                |  132 +-
> >  arch/arm/dts/rk3328.dtsi                      | 1420 +++++++++++------
> >  arch/arm/mach-rockchip/rk3328/Kconfig         |    8 +
> >  board/firefly/roc-cc-rk3328/Kconfig           |   24 +
> >  board/firefly/roc-cc-rk3328/MAINTAINERS       |    7 +
> >  board/firefly/roc-cc-rk3328/Makefile          |    1 +
> >  board/firefly/roc-cc-rk3328/board.c           |   38 +
> >  configs/roc-cc-rk3328_defconfig               |   97 ++
> >  doc/README.rockchip                           |    4 +-
> >  include/dt-bindings/clock/rk3328-cru.h        |  212 +--
> >  include/dt-bindings/power/rk3328-power.h      |   19 +
> >  16 files changed, 1622 insertions(+), 752 deletions(-)
> >  create mode 100644 arch/arm/dts/rk3328-roc-cc-u-boot.dtsi
> >  copy arch/arm/dts/{rk3328-rock64.dts => rk3328-roc-cc.dts} (68%)
> >  create mode 100644 board/firefly/roc-cc-rk3328/Kconfig
> >  create mode 100644 board/firefly/roc-cc-rk3328/MAINTAINERS
> >  create mode 100644 board/firefly/roc-cc-rk3328/Makefile
> >  create mode 100644 board/firefly/roc-cc-rk3328/board.c
> >  create mode 100644 configs/roc-cc-rk3328_defconfig
> >  create mode 100644 include/dt-bindings/power/rk3328-power.h
> >
>
Kurt Miller March 27, 2020, 10:03 p.m. UTC | #3
On Sat, 2020-03-28 at 01:44 +0800, Chen-Yu Tsai wrote:
> Hi,
> 
> On Fri, Mar 27, 2020 at 11:07 PM Kurt Miller <kurt at intricatesoftware.com> wrote:
> > 
> > 
> > On Fri, 2020-03-27 at 12:41 +0800, Chen-Yu Tsai wrote:
> > > 
> > > From: Chen-Yu Tsai <wens at csie.org>
> > > 
> > > Hi everyone,
> > > 
> > > This series adds proper support for Firefly / Libre Computer ROC-RK3328-CC
> > > single board computer.
> > > 
> > > The ROC-RK3328-CC from Firefly and Libre Computer Project is a credit
> > > card size development board based on the Rockchip RK3328 SoC, with:
> > > 
> > > ? - 1/2/4 GB DDR4 DRAM
> > > ? - eMMC connector for optional module
> > > ? - micro SD card slot
> > > ? - 1 x USB 3.0 host port
> > > ? - 2 x USB 2.0 host port
> > > ? - 1 x USB 2.0 OTG port
> > > ? - HDMI video output
> > > ? - TRRS connector with audio and composite video output
> > > ? - gigabit Ethernet
> > > ? - consumer IR receiver
> > > ? - debug UART pins
> > > 
> > > Originally I started with Loic's patches, and syncing the device tree
> > > files from Linux. That didn't get very far, with SPL failing to detect
> > > the SD card. Examining the schematics and internal state of GRF and
> > > GPIOs, I realized that the logic for the SD card power enable switch
> > > is opposite that of what the SD card controller's SDMMC0_PWREN pin
> > > would use. Instead, directly using the GPIO is required.
> > > 
> > > Thus this series creates a special target for this board to handle
> > > muxing this specific pin to GPIO state. The GPIO is left in input mode,
> > > letting the external pull-down work its magic.
> > > 
> > > Along the way, there are some clean-ups of existing dts files, moving
> > > U-boot only features to -u-boot.dtsi files, and then a wholesale sync
> > > from Linux. Only boards already existing in U-boot are synced. DT
> > > binding header files are synced separately as there is already one
> > > patch floating around. The DT sync also includes clean-up changes only
> > > recently posted, and likely won't make it in for at least a few weeks.
> > > 
> > > Please have a look, and test if possible. I cc-ed a couple people that
> > > showed interest in this board on mailing lists recently.
> > > 
> > Thank you for updating the dts for rk3328. I have Rock64 v2 and v3
> > boards and have tested your patchset with OpenBSD-current. The v2 board
> > is working and I have not noticed any regressions. The v3 board prior
> > to your patchset was not booting and continues to not boot.
> > 
> > U-Boot TPL 2020.04-rc3-00172-gaf827140e5-dirty (Mar 27 2020 - 09:44:24)
> > LPDDR3, 800MHz
> > BW=32 Col=11 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=4096MB
> > Trying to boot from BOOTROM
> > Returning to boot ROM...
> > 
> > U-Boot SPL 2020.04-rc3-00172-gaf827140e5-dirty (Mar 27 2020 - 09:44:24 -0400)
> > Trying to boot from MMC1
> > Card did not respond to voltage select!
> > spl: mmc init failed with error: -95
> > Trying to boot from MMC2
> > Card did not respond to voltage select!
> > spl: mmc init failed with error: -95
> > SPL: failed to boot from all boot devices
> > ### ERROR ### Please RESET the board ###
> > 
> > The Rock64 v3 board issues are unrelated to your patch set, but I
> > believe it needs a similar approach as ROC-RK3328-CC. Here is some
> > info previously posted regarding this:
> > 
> > https://marc.info/?t=155751506500001&r=1&w=2
> So based on the changes from Pine64, it looks like v3 follows a similar
> design as the ROC-RK3328-CC, that is use the SDMMC0_PWREN pin to control
> power to the SD card. On the Rock64 v3, there's no external pull-down,
> but the internal pull-down might be enough...
> 
> You could try setting the target to ROC-RK3328-CC through menuconfig
> after you use the defconfig for rock64 and see if that works for you.
> 

Yes, that works for both the v2 and v3 boards. Thank you.

Would you be able to create a patch 7 in your series to
apply this approch to the rock64?

Regards,
-Kurt
Chen-Yu Tsai March 30, 2020, 4:45 a.m. UTC | #4
On Sat, Mar 28, 2020 at 6:03 AM Kurt Miller <kurt at intricatesoftware.com> wrote:
>
> On Sat, 2020-03-28 at 01:44 +0800, Chen-Yu Tsai wrote:
> > Hi,
> >
> > On Fri, Mar 27, 2020 at 11:07 PM Kurt Miller <kurt at intricatesoftware.com> wrote:
> > >
> > >
> > > On Fri, 2020-03-27 at 12:41 +0800, Chen-Yu Tsai wrote:
> > > >
> > > > From: Chen-Yu Tsai <wens at csie.org>
> > > >
> > > > Hi everyone,
> > > >
> > > > This series adds proper support for Firefly / Libre Computer ROC-RK3328-CC
> > > > single board computer.
> > > >
> > > > The ROC-RK3328-CC from Firefly and Libre Computer Project is a credit
> > > > card size development board based on the Rockchip RK3328 SoC, with:
> > > >
> > > >   - 1/2/4 GB DDR4 DRAM
> > > >   - eMMC connector for optional module
> > > >   - micro SD card slot
> > > >   - 1 x USB 3.0 host port
> > > >   - 2 x USB 2.0 host port
> > > >   - 1 x USB 2.0 OTG port
> > > >   - HDMI video output
> > > >   - TRRS connector with audio and composite video output
> > > >   - gigabit Ethernet
> > > >   - consumer IR receiver
> > > >   - debug UART pins
> > > >
> > > > Originally I started with Loic's patches, and syncing the device tree
> > > > files from Linux. That didn't get very far, with SPL failing to detect
> > > > the SD card. Examining the schematics and internal state of GRF and
> > > > GPIOs, I realized that the logic for the SD card power enable switch
> > > > is opposite that of what the SD card controller's SDMMC0_PWREN pin
> > > > would use. Instead, directly using the GPIO is required.
> > > >
> > > > Thus this series creates a special target for this board to handle
> > > > muxing this specific pin to GPIO state. The GPIO is left in input mode,
> > > > letting the external pull-down work its magic.
> > > >
> > > > Along the way, there are some clean-ups of existing dts files, moving
> > > > U-boot only features to -u-boot.dtsi files, and then a wholesale sync
> > > > from Linux. Only boards already existing in U-boot are synced. DT
> > > > binding header files are synced separately as there is already one
> > > > patch floating around. The DT sync also includes clean-up changes only
> > > > recently posted, and likely won't make it in for at least a few weeks.
> > > >
> > > > Please have a look, and test if possible. I cc-ed a couple people that
> > > > showed interest in this board on mailing lists recently.
> > > >
> > > Thank you for updating the dts for rk3328. I have Rock64 v2 and v3
> > > boards and have tested your patchset with OpenBSD-current. The v2 board
> > > is working and I have not noticed any regressions. The v3 board prior
> > > to your patchset was not booting and continues to not boot.
> > >
> > > U-Boot TPL 2020.04-rc3-00172-gaf827140e5-dirty (Mar 27 2020 - 09:44:24)
> > > LPDDR3, 800MHz
> > > BW=32 Col=11 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=4096MB
> > > Trying to boot from BOOTROM
> > > Returning to boot ROM...
> > >
> > > U-Boot SPL 2020.04-rc3-00172-gaf827140e5-dirty (Mar 27 2020 - 09:44:24 -0400)
> > > Trying to boot from MMC1
> > > Card did not respond to voltage select!
> > > spl: mmc init failed with error: -95
> > > Trying to boot from MMC2
> > > Card did not respond to voltage select!
> > > spl: mmc init failed with error: -95
> > > SPL: failed to boot from all boot devices
> > > ### ERROR ### Please RESET the board ###
> > >
> > > The Rock64 v3 board issues are unrelated to your patch set, but I
> > > believe it needs a similar approach as ROC-RK3328-CC. Here is some
> > > info previously posted regarding this:
> > >
> > > https://marc.info/?t=155751506500001&r=1&w=2
> > So based on the changes from Pine64, it looks like v3 follows a similar
> > design as the ROC-RK3328-CC, that is use the SDMMC0_PWREN pin to control
> > power to the SD card. On the Rock64 v3, there's no external pull-down,
> > but the internal pull-down might be enough...
> >
> > You could try setting the target to ROC-RK3328-CC through menuconfig
> > after you use the defconfig for rock64 and see if that works for you.
> >
>
> Yes, that works for both the v2 and v3 boards. Thank you.
>
> Would you be able to create a patch 7 in your series to
> apply this approch to the rock64?

I took a look at the schematics again. The SDMMC0_PWREN pin is used to
toggle the I/O signalling voltage. There is no power cut for the SD card.
So configuring SDMMC0_PWREN to GPIO will get you through SPL, but why it
works is slightly different for the Rock64 compared to the ROC-RK3328-CC.

ChenYu