Skip to content
Snippets Groups Projects
Commit a0ae0091 authored by Heiko Schocher's avatar Heiko Schocher Committed by Stefano Babic
Browse files

i.MX6: add enable_spi_clk()


add enable_spi_clk(), so board code can enable spi clocks.

Signed-off-by: default avatarHeiko Schocher <hs@denx.de>
Reviewed-by: default avatarJagannadha Sutradharudu Teki <jaganna@xilinx.com>
Cc: Eric Nelson <eric.nelson@boundarydevices.com>
Cc: Stefano Babic <sbabic@denx.de>
parent b2f97cf2
Branches
Tags
No related merge requests found
...@@ -71,6 +71,24 @@ int enable_i2c_clk(unsigned char enable, unsigned i2c_num) ...@@ -71,6 +71,24 @@ int enable_i2c_clk(unsigned char enable, unsigned i2c_num)
} }
#endif #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) static u32 decode_pll(enum pll_clocks pll, u32 infreq)
{ {
u32 div; u32 div;
......
...@@ -57,6 +57,7 @@ void enable_usboh3_clk(unsigned char enable); ...@@ -57,6 +57,7 @@ void enable_usboh3_clk(unsigned char enable);
int enable_sata_clock(void); int enable_sata_clock(void);
int enable_pcie_clock(void); int enable_pcie_clock(void);
int enable_i2c_clk(unsigned char enable, unsigned i2c_num); 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); void enable_ipu_clock(void);
int enable_fec_anatop_clock(enum enet_freq freq); int enable_fec_anatop_clock(enum enet_freq freq);
#endif /* __ASM_ARCH_CLOCK_H */ #endif /* __ASM_ARCH_CLOCK_H */
...@@ -505,6 +505,7 @@ struct cspi_regs { ...@@ -505,6 +505,7 @@ struct cspi_regs {
#define MXC_CSPICTRL_RXOVF (1 << 6) #define MXC_CSPICTRL_RXOVF (1 << 6)
#define MXC_CSPIPERIOD_32KHZ (1 << 15) #define MXC_CSPIPERIOD_32KHZ (1 << 15)
#define MAX_SPI_BYTES 32 #define MAX_SPI_BYTES 32
#define SPI_MAX_NUM 4
/* Bit position inside CTRL register to be associated with SS */ /* Bit position inside CTRL register to be associated with SS */
#define MXC_CSPICTRL_CHAN 18 #define MXC_CSPICTRL_CHAN 18
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment