Hi Stefano, > On 14/08/2012 22:33, Benoît Thébaudeau wrote: > > Each eSDHC instance has a dedicated clock. > > > > Signed-off-by: Benoît Thébaudeau <benoit.thebaud...@advansee.com> > > Cc: Stefano Babic <sba...@denx.de> > > --- > > Hi Benoît, > > > .../arch/arm/cpu/arm1136/mx35/generic.c | 14 > > ++++++++++++-- > > .../arch/arm/include/asm/arch-mx35/clock.h | 4 +++- > > 2 files changed, 15 insertions(+), 3 deletions(-) > > > > diff --git u-boot-4d3c95f.orig/arch/arm/cpu/arm1136/mx35/generic.c > > u-boot-4d3c95f/arch/arm/cpu/arm1136/mx35/generic.c > > index 4af052c..15a0098 100644 > > --- u-boot-4d3c95f.orig/arch/arm/cpu/arm1136/mx35/generic.c > > +++ u-boot-4d3c95f/arch/arm/cpu/arm1136/mx35/generic.c > > @@ -368,8 +368,12 @@ unsigned int mxc_get_clock(enum mxc_clock clk) > > return get_ipg_per_clk(); > > case MXC_UART_CLK: > > return imx_get_uartclk(); > > - case MXC_ESDHC_CLK: > > + case MXC_ESDHC1_CLK: > > return mxc_get_peri_clock(ESDHC1_CLK); > > + case MXC_ESDHC2_CLK: > > + return mxc_get_peri_clock(ESDHC2_CLK); > > + case MXC_ESDHC3_CLK: > > + return mxc_get_peri_clock(ESDHC3_CLK); > > case MXC_USB_CLK: > > return mxc_get_main_clock(USB_CLK); > > case MXC_FEC_CLK: > > Your change let understand that we can have different clocks among > the > ESDHC controllers.
Indeed. > One thing is not clear to me is that the MX35 have > two ESDHC controllers, and you define here a thitd one. Where is it ? No, there are 3. See the reference manual. It's referenced in the memory map, in the interrupts, in the pin multiplexing and in the clocks. > Even if the two controllers can have different clocks, this is not > supported by the driver. In fact, in drivers/mmc/fsl_esdhc.c: > > int sdhc_clk = gd->sdhc_clk; > > The driver uses always the same clock, stored in the global > structure. > Before extending the code as in this patch, the driver should be > modified to handle separate clocks. Currently the driver supports > multiple controller, but they share the same clock or at least the > same > frequency. Indeed, I had seen that. I didn't know what to decide as to the driver clocks, so I made this change to select the correct clock if a single clock or frequency is used. If several clock frequencies are to be supported at once, what kind of API would you like? gd->sdhc_clk could be changed to an array, then the corresponding index could be passed to the init function through the fsl_esdhc_cfg struct. Best regards, Benoît _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot