19fa32b12SVikas Manocha /* 29fa32b12SVikas Manocha * (C) Copyright 2014 39fa32b12SVikas Manocha * Vikas Manocha, ST Micoelectronics, vikas.manocha@st.com. 49fa32b12SVikas Manocha * 59fa32b12SVikas Manocha * SPDX-License-Identifier: GPL-2.0+ 69fa32b12SVikas Manocha */ 79fa32b12SVikas Manocha 89fa32b12SVikas Manocha #include <asm/io.h> 99fa32b12SVikas Manocha #include <asm/arch/hardware.h> 109fa32b12SVikas Manocha #include <asm/arch/stv0991_cgu.h> 119fa32b12SVikas Manocha #include<asm/arch/stv0991_periph.h> 129fa32b12SVikas Manocha 139fa32b12SVikas Manocha static struct stv0991_cgu_regs *const stv0991_cgu_regs = \ 149fa32b12SVikas Manocha (struct stv0991_cgu_regs *) (CGU_BASE_ADDR); 159fa32b12SVikas Manocha enable_pll1(void)162ce4eaf4SVikas Manochavoid enable_pll1(void) 172ce4eaf4SVikas Manocha { 182ce4eaf4SVikas Manocha /* pll1 already configured for 1000Mhz, just need to enable it */ 192ce4eaf4SVikas Manocha writel(readl(&stv0991_cgu_regs->pll1_ctrl) & ~(0x01), 202ce4eaf4SVikas Manocha &stv0991_cgu_regs->pll1_ctrl); 212ce4eaf4SVikas Manocha } 222ce4eaf4SVikas Manocha clock_setup(int peripheral)239fa32b12SVikas Manochavoid clock_setup(int peripheral) 249fa32b12SVikas Manocha { 259fa32b12SVikas Manocha switch (peripheral) { 269fa32b12SVikas Manocha case UART_CLOCK_CFG: 279fa32b12SVikas Manocha writel(UART_CLK_CFG, &stv0991_cgu_regs->uart_freq); 289fa32b12SVikas Manocha break; 299fa32b12SVikas Manocha case ETH_CLOCK_CFG: 302ce4eaf4SVikas Manocha enable_pll1(); 312ce4eaf4SVikas Manocha writel(ETH_CLK_CFG, &stv0991_cgu_regs->eth_freq); 322ce4eaf4SVikas Manocha 332ce4eaf4SVikas Manocha /* Clock selection for ethernet tx_clk & rx_clk*/ 342ce4eaf4SVikas Manocha writel((readl(&stv0991_cgu_regs->eth_ctrl) & ETH_CLK_MASK) 352ce4eaf4SVikas Manocha | ETH_CLK_CTRL, &stv0991_cgu_regs->eth_ctrl); 36*54afb500SVikas Manocha break; 37*54afb500SVikas Manocha case QSPI_CLOCK_CFG: 38*54afb500SVikas Manocha writel(QSPI_CLK_CTRL, &stv0991_cgu_regs->qspi_freq); 399fa32b12SVikas Manocha break; 409fa32b12SVikas Manocha default: 419fa32b12SVikas Manocha break; 429fa32b12SVikas Manocha } 439fa32b12SVikas Manocha } 44