On Friday, April 19, 2013 11:02:03 AM, Benoît Thébaudeau wrote: > Dear Marek Vasut, > > On Friday, April 19, 2013 6:10:54 AM, Marek Vasut wrote: > > Augment the MX5 clock code with function to enable and configure > > NFC clock. This is necessary to get NFC working on MX5. > > > > Signed-off-by: Marek Vasut <ma...@denx.de> > > Cc: Albert ARIBAUD <albert.u.b...@aribaud.net> > > Cc: Benoît Thébaudeau <benoit.thebaud...@advansee.com> > > Cc: Fabio Estevam <fabio.este...@freescale.com> > > Cc: Scott Wood <scottw...@freescale.com> > > Cc: Stefano Babic <sba...@denx.de> > > Cc: Tom Rini <tr...@ti.com> > > --- > > arch/arm/cpu/armv7/mx5/clock.c | 14 ++++++++++++-- > > arch/arm/include/asm/arch-mx5/clock.h | 1 + > > 2 files changed, 13 insertions(+), 2 deletions(-) > > > > diff --git a/arch/arm/cpu/armv7/mx5/clock.c > > b/arch/arm/cpu/armv7/mx5/clock.c > > index 76c2c52..431756e 100644 > > --- a/arch/arm/cpu/armv7/mx5/clock.c > > +++ b/arch/arm/cpu/armv7/mx5/clock.c > > @@ -739,10 +739,11 @@ static int config_core_clk(u32 ref, u32 freq) > > static int config_nfc_clk(u32 nfc_clk) > > { > > u32 parent_rate = get_emi_slow_clk(); > > - u32 div = parent_rate / nfc_clk; > > + u32 div; > > > > - if (nfc_clk <= 0) > > + if (nfc_clk == 0) > > return -EINVAL; > > + div = parent_rate / nfc_clk; > > if (div == 0) > > div++; > > if (parent_rate / div > NFC_CLK_MAX) > > @@ -755,6 +756,15 @@ static int config_nfc_clk(u32 nfc_clk) > > return 0; > > } > > > > +void enable_nfc_clk(unsigned char enable) > > +{ > > + unsigned int cg = enable ? MXC_CCM_CCGR_CG_ON : MXC_CCM_CCGR_CG_OFF; > > + > > + clrsetbits_le32(&mxc_ccm->CCGR5, > > + MXC_CCM_CCGR5_EMI_ENFC(MXC_CCM_CCGR_CG_MASK), > > + MXC_CCM_CCGR5_EMI_ENFC(cg)); > > +} > > + > > /* Config main_bus_clock for periphs */ > > static int config_periph_clk(u32 ref, u32 freq) > > { > > diff --git a/arch/arm/include/asm/arch-mx5/clock.h > > b/arch/arm/include/asm/arch-mx5/clock.h > > index 9cdfb48..6910192 100644 > > --- a/arch/arm/include/asm/arch-mx5/clock.h > > +++ b/arch/arm/include/asm/arch-mx5/clock.h > > @@ -68,5 +68,6 @@ void set_usboh3_clk(void); > > void enable_usboh3_clk(unsigned char enable); > > void mxc_set_sata_internal_clock(void); > > int enable_i2c_clk(unsigned char enable, unsigned i2c_num); > > +void enable_nfc_clk(unsigned char enable); > > > > #endif /* __ASM_ARCH_CLOCK_H */ > > -- > > 1.7.11.7 > > Reviewed-by: Benoît Thébaudeau <benoit.thebaud...@advansee.com>
Actually, this code is correct, but why is it needed? Indeed, this clock is already ungated by arch/arm/cpu/armv7/mx5/lowlevel_init.S. Also, your board seems to be hardware-bootable only from NAND, so in this case the boot ROM also ungates this clock itself. Best regards, Benoît _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot