> Date: Tue, 06 Feb 2024 22:37:50 +0900
> From: SASANO Takayoshi <u...@mx5.nisiq.net>
> 
> Hello,
> 
> I am working for H616 since OrangePi Zero2...
> 
> Here's the diff. sximmc.c is reconstructed.

Hi Takayoshi,

Apologies; seems I have missed your earlier mails about H616.

I'd like to take a closer look at the ehci(4) changes; will come back
to you on those soon.

The sxiccmu(4) and sxisyscon(4) diffs are ok kettenis@

The sxipio(4) diff is missing a const but is otherwise identical to
mine.  Shall I commit mine?

The sximmc(4) diff isn't quite correct.  We need to restrict the
maximum segment size for the "allwinner,sun50i-a100-emmc" ones
otherwise large reads and writes will fail.  Also, we can actually
remove the handling of the "allwinner,sun20i-d1-emmc" compatible since
the Allwinner D1 device trees include "allwinner,sun50i-a100-emmc" as
well.

ok?


Index: dev/fdt/sximmc.c
===================================================================
RCS file: /cvs/src/sys/dev/fdt/sximmc.c,v
retrieving revision 1.13
diff -u -p -r1.13 sximmc.c
--- dev/fdt/sximmc.c    2 Feb 2024 12:02:26 -0000       1.13
+++ dev/fdt/sximmc.c    6 Feb 2024 20:40:48 -0000
@@ -299,9 +299,10 @@ sximmc_match(struct device *parent, void
            OF_is_compatible(faa->fa_node, "allwinner,sun7i-a20-mmc") ||
            OF_is_compatible(faa->fa_node, "allwinner,sun9i-a80-mmc") ||
            OF_is_compatible(faa->fa_node, "allwinner,sun20i-d1-mmc") ||
-           OF_is_compatible(faa->fa_node, "allwinner,sun20i-d1-emmc") ||
            OF_is_compatible(faa->fa_node, "allwinner,sun50i-a64-mmc") ||
-           OF_is_compatible(faa->fa_node, "allwinner,sun50i-a64-emmc"));
+           OF_is_compatible(faa->fa_node, "allwinner,sun50i-a64-emmc") ||
+           OF_is_compatible(faa->fa_node, "allwinner,sun50i-a100-mmc") ||
+           OF_is_compatible(faa->fa_node, "allwinner,sun50i-a100-emmc"));
 }
 
 int
@@ -398,7 +399,8 @@ sximmc_attach(struct device *parent, str
                sc->sc_dma_ftrglevel = SXIMMC_DMA_FTRGLEVEL_A20;
 
        if (OF_is_compatible(faa->fa_node, "allwinner,sun20i-d1-mmc") ||
-           OF_is_compatible(faa->fa_node, "allwinner,sun20i-d1-emmc"))
+           OF_is_compatible(faa->fa_node, "allwinner,sun50i-a100-mmc") ||
+           OF_is_compatible(faa->fa_node, "allwinner,sun50i-a100-emmc"))
                sc->sc_idma_shift = 2;
 
        if (sc->sc_use_dma) {
@@ -451,8 +453,8 @@ sximmc_attach(struct device *parent, str
 
        if (OF_is_compatible(sc->sc_node, "allwinner,sun4i-a10-mmc") ||
            OF_is_compatible(sc->sc_node, "allwinner,sun20i-d1-mmc") ||
-           OF_is_compatible(sc->sc_node, "allwinner,sun20i-d1-emmc") ||
-           OF_is_compatible(sc->sc_node, "allwinner,sun50i-a64-emmc")) {
+           OF_is_compatible(sc->sc_node, "allwinner,sun50i-a64-emmc") ||
+           OF_is_compatible(sc->sc_node, "allwinner,sun50i-a100-emmc")) {
                saa.max_seg = 0x2000;
        } else {
                saa.max_seg = 0x10000;

Reply via email to