[U-Boot] [PATCH v2 4/5] i.MX6: add enable_spi_clk()
Jagan Teki
jagannadh.teki at gmail.com
Mon Jul 14 19:13:13 CEST 2014
On Sat, Jul 12, 2014 at 9:40 AM, Heiko Schocher <hs at denx.de> wrote:
> add enable_spi_clk(), so board code can enable spi clocks.
>
> Signed-off-by: Heiko Schocher <hs at denx.de>
> Cc: Eric Nelson <eric.nelson at boundarydevices.com>
> Cc: Stefano Babic <sbabic at denx.de>
>
> ---
> - changes for v2:
> - add comment from Stefano Babic:
> - add comment for spi_num range
> - add SPI_MAX_NUM in imx-regs.h
>
> arch/arm/cpu/armv7/mx6/clock.c | 18 ++++++++++++++++++
> arch/arm/include/asm/arch-mx6/clock.h | 1 +
> arch/arm/include/asm/arch-mx6/imx-regs.h | 1 +
> 3 files changed, 20 insertions(+)
>
> diff --git a/arch/arm/cpu/armv7/mx6/clock.c b/arch/arm/cpu/armv7/mx6/clock.c
> index bd65a08..799bd89 100644
> --- a/arch/arm/cpu/armv7/mx6/clock.c
> +++ b/arch/arm/cpu/armv7/mx6/clock.c
> @@ -71,6 +71,24 @@ int enable_i2c_clk(unsigned char enable, unsigned i2c_num)
> }
> #endif
>
> +/* spi_num can be from 0 - SPI_MAX_NUM */
> +int enable_spi_clk(unsigned char enable, unsigned spi_num)
> +{
> + u32 reg;
> + u32 mask;
> +
> + if (spi_num > SPI_MAX_NUM)
> + return -EINVAL;
> +
> + mask = MXC_CCM_CCGR_CG_MASK << (spi_num << 1);
> + reg = __raw_readl(&imx_ccm->CCGR1);
> + if (enable)
> + reg |= mask;
> + else
> + reg &= ~mask;
> + __raw_writel(reg, &imx_ccm->CCGR1);
> + return 0;
> +}
> static u32 decode_pll(enum pll_clocks pll, u32 infreq)
> {
> u32 div;
> diff --git a/arch/arm/include/asm/arch-mx6/clock.h b/arch/arm/include/asm/arch-mx6/clock.h
> index 1b4ded7..339c789 100644
> --- a/arch/arm/include/asm/arch-mx6/clock.h
> +++ b/arch/arm/include/asm/arch-mx6/clock.h
> @@ -57,6 +57,7 @@ void enable_usboh3_clk(unsigned char enable);
> int enable_sata_clock(void);
> int enable_pcie_clock(void);
> int enable_i2c_clk(unsigned char enable, unsigned i2c_num);
> +int enable_spi_clk(unsigned char enable, unsigned spi_num);
> void enable_ipu_clock(void);
> int enable_fec_anatop_clock(enum enet_freq freq);
> #endif /* __ASM_ARCH_CLOCK_H */
> diff --git a/arch/arm/include/asm/arch-mx6/imx-regs.h b/arch/arm/include/asm/arch-mx6/imx-regs.h
> index 2135051..aa5bc92 100644
> --- a/arch/arm/include/asm/arch-mx6/imx-regs.h
> +++ b/arch/arm/include/asm/arch-mx6/imx-regs.h
> @@ -405,6 +405,7 @@ struct cspi_regs {
> #define MXC_CSPICTRL_RXOVF (1 << 6)
> #define MXC_CSPIPERIOD_32KHZ (1 << 15)
> #define MAX_SPI_BYTES 32
> +#define SPI_MAX_NUM 4
>
> /* Bit position inside CTRL register to be associated with SS */
> #define MXC_CSPICTRL_CHAN 18
> --
> 1.8.3.1
Reviewed-by: Jagannadha Sutradharudu Teki <jaganna at xilinx.com>
I already picked the patch "spi_xchg_single" from this series,
Shall I pick this on my tree?
thanks!
--
Jagan.
More information about the U-Boot
mailing list