> Date: Sun, 2 May 2021 14:21:29 +0000 > From: Visa Hankala <v...@hankala.org> > > Zynq-7000 has a variant of Arasan SD controller that is not recognized > by the fdt glue. The diff below fixes this. > > The controller's capabilities register lacks the base clock frequency. > The attachment glue has to provide this parameter. > > OK? > > Index: dev/fdt/sdhc_fdt.c > =================================================================== > RCS file: src/sys/dev/fdt/sdhc_fdt.c,v > retrieving revision 1.15 > diff -u -p -r1.15 sdhc_fdt.c > --- dev/fdt/sdhc_fdt.c 5 Apr 2021 09:31:45 -0000 1.15 > +++ dev/fdt/sdhc_fdt.c 2 May 2021 14:07:45 -0000 > @@ -126,6 +126,7 @@ sdhc_fdt_match(struct device *parent, vo > struct fdt_attach_args *faa = aux; > > return (OF_is_compatible(faa->fa_node, "arasan,sdhci-5.1") || > + OF_is_compatible(faa->fa_node, "arasan,sdhci-8.9a") || > OF_is_compatible(faa->fa_node, "brcm,bcm2711-emmc2") || > OF_is_compatible(faa->fa_node, "brcm,bcm2835-sdhci") || > OF_is_compatible(faa->fa_node, "marvell,armada-3700-sdhci") || > @@ -232,6 +233,11 @@ sdhc_fdt_attach(struct device *parent, s > sc->sc.sc_flags |= SDHC_F_NODDR50; > } > > + if (OF_is_compatible(faa->fa_node, "arasan,sdhci-8.9a")) { > + freq = clock_get_frequency(faa->fa_node, "clk_xin"); > + sc->sc.sc_clkbase = (freq + 500) / 1000;
Is there a particular reason why you are trying to round to the nearest kHz here? We don't do that for any of the other cases where we set sc_clkbase, and I'd prefer not to have any special cases that aren't necessary. > + } > + > if (OF_is_compatible(faa->fa_node, "brcm,bcm2711-emmc2")) > sc->sc.sc_flags |= SDHC_F_NOPWR0; >