![]() |
coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
|
#include <arch/hlt.h>
#include <console/console.h>
#include <device/mmio.h>
#include <soc/clk_rst.h>
#include <stdint.h>
Go to the source code of this file.
Macros | |
#define | CLK_SRC_DEV_ID(dev, src) CLK_SRC_##dev##_##src |
#define | CLK_SRC_FREQ_ID(dev, src) CLK_SRC_FREQ_##dev##_##src |
#define | CLK_SRC_DEVICE(dev, a, b, c, d, e, f, g, h) |
#define | CLOCK_PLL_STABLE_DELAY_US 300 |
#define | IO_STABILIZATION_DELAY (2) |
#define | LOGIC_STABILIZATION_DELAY (2) |
#define | CLK_DIVIDER(REF, FREQ) (DIV_ROUND_UP(((REF) * 2), (FREQ)) - 2) |
#define | CLK_FREQUENCY(REF, REG) (((REF) * 2) / ((REG) + 2)) |
#define | get_i2c_clk_div(src, freq) (DIV_ROUND_UP(src, (freq) * (0x19 + 1) * 8) - 1) |
#define | get_clk_div(src, freq) CLK_DIVIDER(src,freq) |
#define | CLK_DIV_MASK 0xff |
#define | CLK_DIV_MASK_I2C 0xffff |
#define | clock_configure_source(device, src, freq) |
#define | TEGRA_CLK_M_KHZ (clock_get_osc_khz()/2) |
#define | TEGRA_PLLX_KHZ CONFIG_PLLX_KHZ |
#define | TEGRA_PLLP_KHZ (408000) |
#define | TEGRA_PLLP_OUT3_KHZ (68000) |
#define | TEGRA_PLLC_KHZ (600000) |
#define | TEGRA_PLLD_KHZ (925000) |
#define | TEGRA_PLLD_OUT0_KHZ (TEGRA_PLLD_KHZ/2) |
#define | TEGRA_PLLU_KHZ (960000) |
#define | clock_enable(l, h, u, v, w, x, y) |
#define | clock_disable(l, h, u, v, w, x, y) |
#define | clock_set_reset(l, h, u, v, w, x, y) |
#define | clock_clr_reset(l, h, u, v, w, x, y) |
#define | clock_enable_l(l) clock_enable(l, 0, 0, 0, 0, 0, 0) |
#define | clock_enable_h(h) clock_enable(0, h, 0, 0, 0, 0, 0) |
#define | clock_enable_u(u) clock_enable(0, 0, u, 0, 0, 0, 0) |
#define | clock_enable_v(v) clock_enable(0, 0, 0, v, 0, 0, 0) |
#define | clock_enable_w(w) clock_enable(0, 0, 0, 0, w, 0, 0) |
#define | clock_enable_x(x) clock_enable(0, 0, 0, 0, 0, x, 0) |
#define | clock_enable_y(y) clock_enable(0, 0, 0, 0, 0, 0, y) |
#define | clock_disable_l(l) clock_disable(l, 0, 0, 0, 0, 0, 0) |
#define | clock_disable_h(h) clock_disable(0, h, 0, 0, 0, 0, 0) |
#define | clock_disable_u(u) clock_disable(0, 0, u, 0, 0, 0, 0) |
#define | clock_disable_v(v) clock_disable(0, 0, 0, v, 0, 0, 0) |
#define | clock_disable_w(w) clock_disable(0, 0, 0, 0, w, 0, 0) |
#define | clock_disable_x(x) clock_disable(0, 0, 0, 0, 0, x, 0) |
#define | clock_disable_y(y) clock_disable(0, 0, 0, 0, 0, 0, y) |
#define | clock_set_reset_l(l) clock_set_reset(l, 0, 0, 0, 0, 0, 0) |
#define | clock_set_reset_h(h) clock_set_reset(0, h, 0, 0, 0, 0, 0) |
#define | clock_set_reset_u(u) clock_set_reset(0, 0, u, 0, 0, 0, 0) |
#define | clock_set_reset_v(v) clock_set_reset(0, 0, 0, v, 0, 0, 0) |
#define | clock_set_reset_w(w) clock_set_reset(0, 0, 0, 0, w, 0, 0) |
#define | clock_set_reset_x(x) clock_set_reset(0, 0, 0, 0, 0, x, 0) |
#define | clock_set_reset_y(x) clock_set_reset(0, 0, 0, 0, 0, y, 0) |
#define | clock_clr_reset_l(l) clock_clr_reset(l, 0, 0, 0, 0, 0, 0) |
#define | clock_clr_reset_h(h) clock_clr_reset(0, h, 0, 0, 0, 0, 0) |
#define | clock_clr_reset_u(u) clock_clr_reset(0, 0, u, 0, 0, 0, 0) |
#define | clock_clr_reset_v(v) clock_clr_reset(0, 0, 0, v, 0, 0, 0) |
#define | clock_clr_reset_w(w) clock_clr_reset(0, 0, 0, 0, w, 0, 0) |
#define | clock_clr_reset_x(x) clock_clr_reset(0, 0, 0, 0, 0, x, 0) |
#define | clock_clr_reset_y(y) clock_clr_reset(0, 0, 0, 0, 0, 0, y) |
#define | clock_enable_clear_reset_l(l) clock_enable_clear_reset(l, 0, 0, 0, 0, 0, 0) |
#define | clock_enable_clear_reset_h(h) clock_enable_clear_reset(0, h, 0, 0, 0, 0, 0) |
#define | clock_enable_clear_reset_u(u) clock_enable_clear_reset(0, 0, u, 0, 0, 0, 0) |
#define | clock_enable_clear_reset_v(v) clock_enable_clear_reset(0, 0, 0, v, 0, 0, 0) |
#define | clock_enable_clear_reset_w(w) clock_enable_clear_reset(0, 0, 0, 0, w, 0, 0) |
#define | clock_enable_clear_reset_x(x) clock_enable_clear_reset(0, 0, 0, 0, 0, x, 0) |
#define | clock_enable_clear_reset_y(y) clock_enable_clear_reset(0, 0, 0, 0, 0, 0, y) |
Enumerations | |
enum | { CLK_L_CPU = 0x1 << 0 , CLK_L_COP = 0x1 << 1 , CLK_L_TRIG_SYS = 0x1 << 2 , CLK_L_RTC = 0x1 << 4 , CLK_L_TMR = 0x1 << 5 , CLK_L_UARTA = 0x1 << 6 , CLK_L_UARTB = 0x1 << 7 , CLK_L_GPIO = 0x1 << 8 , CLK_L_SDMMC2 = 0x1 << 9 , CLK_L_SPDIF = 0x1 << 10 , CLK_L_I2S2 = 0x1 << 11 , CLK_L_I2C1 = 0x1 << 12 , CLK_L_NDFLASH = 0x1 << 13 , CLK_L_SDMMC1 = 0x1 << 14 , CLK_L_SDMMC4 = 0x1 << 15 , CLK_L_PWM = 0x1 << 17 , CLK_L_I2S3 = 0x1 << 18 , CLK_L_EPP = 0x1 << 19 , CLK_L_VI = 0x1 << 20 , CLK_L_2D = 0x1 << 21 , CLK_L_USBD = 0x1 << 22 , CLK_L_ISP = 0x1 << 23 , CLK_L_3D = 0x1 << 24 , CLK_L_DISP2 = 0x1 << 26 , CLK_L_DISP1 = 0x1 << 27 , CLK_L_HOST1X = 0x1 << 28 , CLK_L_VCP = 0x1 << 29 , CLK_L_I2S1 = 0x1 << 30 , CLK_L_CACHE2 = 0x1 << 31 , CLK_H_MEM = 0x1 << 0 , CLK_H_AHBDMA = 0x1 << 1 , CLK_H_APBDMA = 0x1 << 2 , CLK_H_KBC = 0x1 << 4 , CLK_H_STAT_MON = 0x1 << 5 , CLK_H_PMC = 0x1 << 6 , CLK_H_FUSE = 0x1 << 7 , CLK_H_KFUSE = 0x1 << 8 , CLK_H_SBC1 = 0x1 << 9 , CLK_H_SNOR = 0x1 << 10 , CLK_H_JTAG2TBC = 0x1 << 11 , CLK_H_SBC2 = 0x1 << 12 , CLK_H_SBC3 = 0x1 << 14 , CLK_H_I2C5 = 0x1 << 15 , CLK_H_DSI = 0x1 << 16 , CLK_H_HSI = 0x1 << 18 , CLK_H_HDMI = 0x1 << 19 , CLK_H_CSI = 0x1 << 20 , CLK_H_I2C2 = 0x1 << 22 , CLK_H_UARTC = 0x1 << 23 , CLK_H_MIPI_CAL = 0x1 << 24 , CLK_H_EMC = 0x1 << 25 , CLK_H_USB2 = 0x1 << 26 , CLK_H_USB3 = 0x1 << 27 , CLK_H_MPE = 0x1 << 28 , CLK_H_VDE = 0x1 << 29 , CLK_H_BSEA = 0x1 << 30 , CLK_H_BSEV = 0x1 << 31 , CLK_U_UARTD = 0x1 << 1 , CLK_U_UARTE = 0x1 << 2 , CLK_U_I2C3 = 0x1 << 3 , CLK_U_SBC4 = 0x1 << 4 , CLK_U_SDMMC3 = 0x1 << 5 , CLK_U_PCIE = 0x1 << 6 , CLK_U_OWR = 0x1 << 7 , CLK_U_AFI = 0x1 << 8 , CLK_U_CSITE = 0x1 << 9 , CLK_U_PCIEXCLK = 0x1 << 10 , CLK_U_AVPUCQ = 0x1 << 11 , CLK_U_TRACECLKIN = 0x1 << 13 , CLK_U_SOC_THERM = 0x1 << 14 , CLK_U_DTV = 0x1 << 15 , CLK_U_NAND_SPEED = 0x1 << 16 , CLK_U_I2C_SLOW = 0x1 << 17 , CLK_U_DSIB = 0x1 << 18 , CLK_U_TSEC = 0x1 << 19 , CLK_U_IRAMA = 0x1 << 20 , CLK_U_IRAMB = 0x1 << 21 , CLK_U_IRAMC = 0x1 << 22 , CLK_U_EMUCIF = 0x1 << 23 , CLK_U_IRAMD = 0x1 << 23 , CLK_U_CRAM2 = 0x2 << 24 , CLK_U_XUSB_HOST = 0x1 << 25 , CLK_U_MSENC = 0x1 << 27 , CLK_U_SUS_OUT = 0x1 << 28 , CLK_U_DEV2_OUT = 0x1 << 29 , CLK_U_DEV1_OUT = 0x1 << 30 , CLK_U_XUSB_DEV = 0x1 << 31 , CLK_V_CPUG = 0x1 << 0 , CLK_V_CPULP = 0x1 << 1 , CLK_V_3D2 = 0x1 << 2 , CLK_V_MSELECT = 0x1 << 3 , CLK_V_I2S4 = 0x1 << 5 , CLK_V_I2S5 = 0x1 << 6 , CLK_V_I2C4 = 0x1 << 7 , CLK_V_SBC5 = 0x1 << 8 , CLK_V_SBC6 = 0x1 << 9 , CLK_V_AHUB = 0x1 << 10 , CLK_V_APB2APE = 0x1 << 11 , CLK_V_HDA2CODEC_2X = 0x1 << 15 , CLK_V_ATOMICS = 0x1 << 16 , CLK_V_ACTMON = 0x1 << 23 , CLK_V_EXTPERIPH1 = 0x1 << 24 , CLK_V_SATA = 0x1 << 28 , CLK_V_HDA = 0x1 << 29 , CLK_W_HDA2HDMICODEC = 0x1 << 0 , CLK_W_SATACOLD = 0x1 << 1 , CLK_W_CEC = 0x1 << 8 , CLK_W_XUSB_PADCTL = 0x1 << 14 , CLK_W_ENTROPY = 0x1 << 21 , CLK_W_DVFS = 0x1 << 27 , CLK_W_XUSB_SS = 0x1 << 28 , CLK_X_GPU = 0x1 << 24 , CLK_X_SOR1 = 0x1 << 23 , CLK_X_SOR0 = 0x1 << 22 , CLK_X_DPAUX = 0x1 << 21 , CLK_X_VIC = 0x1 << 18 , CLK_X_UART_FST_MIPI_CAL = 0x1 << 17 , CLK_X_MIPIBIF = 0x1 << 13 , CLK_X_I2C6 = 0x1 << 6 , CLK_X_ETR = 0x1 << 3 , CLK_X_SPARE = 0x1 << 0 , CLK_Y_APE = 0x1 << 6 , CLK_Y_DPAUX1 = 0x1 << 15 , CLK_Y_QSPI = 0x1 << 19 , CLK_Y_SOR_SAFE = 0x1 << 30 } |
enum | { PLLP = 0 , PLLC2 = 1 , PLLC = 2 , PLLC_OUT1 = 3 , PLLM = 4 , CLK_M = 5 , CLK_S = 6 , PLLE = 7 , PLLA = 8 , PLLD = 9 , PLLD2 = 10 , PLLC4_OUT0 = 11 , PLLC4_OUT1 = 12 , PLLC4_OUT2 = 13 , PLLC4_OUT3 = 14 , PLLC4_OUT0_L = 15 , PLLC4_OUT1_L = 16 , PLLC4_OUT2_L = 17 , PLLD_OUT0 = 18 , PLLP_OUT3 = 19 , PLLC2_OUT0 = 20 , UNUSED0 = 100 , UNUSED1 = 101 , UNUSED2 = 102 , UNUSED3 = 103 , UNUSED4 = 104 , UNUSED5 = 105 , UNUSED6 = 106 , UNUSED7 = 107 } |
enum | { CLK_SRC_DEVICE , CLK_SRC_DEVICE , CLK_SRC_DEVICE , CLK_SRC_DEVICE , CLK_SRC_DEVICE , CLK_SRC_DEVICE , CLK_SRC_DEVICE , CLK_SRC_DEVICE , CLK_SRC_DEVICE , CLK_SRC_DEVICE , CLK_SRC_DEVICE , CLK_SRC_DEVICE , CLK_SRC_DEVICE , CLK_SRC_DEVICE , CLK_SRC_DEVICE , CLK_SRC_DEVICE , CLK_SRC_DEVICE , CLK_SRC_DEVICE , CLK_SRC_DEVICE , CLK_SRC_DEVICE , CLK_SRC_DEVICE , CLK_SRC_DEVICE } |
#define CLK_DIVIDER | ( | REF, | |
FREQ | |||
) | (DIV_ROUND_UP(((REF) * 2), (FREQ)) - 2) |
#define CLK_SRC_DEVICE | ( | dev, | |
a, | |||
b, | |||
c, | |||
d, | |||
e, | |||
f, | |||
g, | |||
h | |||
) |
#define CLK_SRC_FREQ_ID | ( | dev, | |
src | |||
) | CLK_SRC_FREQ_##dev##_##src |
#define clock_clr_reset_h | ( | h | ) | clock_clr_reset(0, h, 0, 0, 0, 0, 0) |
#define clock_clr_reset_l | ( | l | ) | clock_clr_reset(l, 0, 0, 0, 0, 0, 0) |
#define clock_clr_reset_u | ( | u | ) | clock_clr_reset(0, 0, u, 0, 0, 0, 0) |
#define clock_clr_reset_v | ( | v | ) | clock_clr_reset(0, 0, 0, v, 0, 0, 0) |
#define clock_clr_reset_w | ( | w | ) | clock_clr_reset(0, 0, 0, 0, w, 0, 0) |
#define clock_clr_reset_x | ( | x | ) | clock_clr_reset(0, 0, 0, 0, 0, x, 0) |
#define clock_clr_reset_y | ( | y | ) | clock_clr_reset(0, 0, 0, 0, 0, 0, y) |
#define clock_disable_h | ( | h | ) | clock_disable(0, h, 0, 0, 0, 0, 0) |
#define clock_disable_l | ( | l | ) | clock_disable(l, 0, 0, 0, 0, 0, 0) |
#define clock_disable_u | ( | u | ) | clock_disable(0, 0, u, 0, 0, 0, 0) |
#define clock_disable_v | ( | v | ) | clock_disable(0, 0, 0, v, 0, 0, 0) |
#define clock_disable_w | ( | w | ) | clock_disable(0, 0, 0, 0, w, 0, 0) |
#define clock_disable_x | ( | x | ) | clock_disable(0, 0, 0, 0, 0, x, 0) |
#define clock_disable_y | ( | y | ) | clock_disable(0, 0, 0, 0, 0, 0, y) |
#define clock_enable_clear_reset_h | ( | h | ) | clock_enable_clear_reset(0, h, 0, 0, 0, 0, 0) |
#define clock_enable_clear_reset_l | ( | l | ) | clock_enable_clear_reset(l, 0, 0, 0, 0, 0, 0) |
#define clock_enable_clear_reset_u | ( | u | ) | clock_enable_clear_reset(0, 0, u, 0, 0, 0, 0) |
#define clock_enable_clear_reset_v | ( | v | ) | clock_enable_clear_reset(0, 0, 0, v, 0, 0, 0) |
#define clock_enable_clear_reset_w | ( | w | ) | clock_enable_clear_reset(0, 0, 0, 0, w, 0, 0) |
#define clock_enable_clear_reset_x | ( | x | ) | clock_enable_clear_reset(0, 0, 0, 0, 0, x, 0) |
#define clock_enable_clear_reset_y | ( | y | ) | clock_enable_clear_reset(0, 0, 0, 0, 0, 0, y) |
#define clock_enable_h | ( | h | ) | clock_enable(0, h, 0, 0, 0, 0, 0) |
#define clock_enable_l | ( | l | ) | clock_enable(l, 0, 0, 0, 0, 0, 0) |
#define clock_enable_u | ( | u | ) | clock_enable(0, 0, u, 0, 0, 0, 0) |
#define clock_enable_v | ( | v | ) | clock_enable(0, 0, 0, v, 0, 0, 0) |
#define clock_enable_w | ( | w | ) | clock_enable(0, 0, 0, 0, w, 0, 0) |
#define clock_enable_x | ( | x | ) | clock_enable(0, 0, 0, 0, 0, x, 0) |
#define clock_enable_y | ( | y | ) | clock_enable(0, 0, 0, 0, 0, 0, y) |
#define clock_set_reset_h | ( | h | ) | clock_set_reset(0, h, 0, 0, 0, 0, 0) |
#define clock_set_reset_l | ( | l | ) | clock_set_reset(l, 0, 0, 0, 0, 0, 0) |
#define clock_set_reset_u | ( | u | ) | clock_set_reset(0, 0, u, 0, 0, 0, 0) |
#define clock_set_reset_v | ( | v | ) | clock_set_reset(0, 0, 0, v, 0, 0, 0) |
#define clock_set_reset_w | ( | w | ) | clock_set_reset(0, 0, 0, 0, w, 0, 0) |
#define clock_set_reset_x | ( | x | ) | clock_set_reset(0, 0, 0, 0, 0, x, 0) |
#define clock_set_reset_y | ( | x | ) | clock_set_reset(0, 0, 0, 0, 0, y, 0) |
#define get_clk_div | ( | src, | |
freq | |||
) | CLK_DIVIDER(src,freq) |
#define get_i2c_clk_div | ( | src, | |
freq | |||
) | (DIV_ROUND_UP(src, (freq) * (0x19 + 1) * 8) - 1) |
#define TEGRA_CLK_M_KHZ (clock_get_osc_khz()/2) |
#define TEGRA_PLLD_OUT0_KHZ (TEGRA_PLLD_KHZ/2) |
anonymous enum |
anonymous enum |
anonymous enum |
|
inlinestatic |
Definition at line 298 of file clock.h.
References BIOS_ERR, CLK_DIVISOR_MASK, CLK_SOURCE_MASK, CLK_SOURCE_SHIFT, clrsetbits32, hlt(), name, and printk.
Definition at line 707 of file clock.c.
References clock_write_regs(), and rst_dev_clr_arr.
plld (fo) = vco >> p, where 500MHz < vco < 1000MHz = (cf * n) >> p, where 1MHz < cf < 6MHz = ((ref / m) * n) >> p
Iterate the possible values of p (3 bits, 2^7) to find out a minimum safe vco, then find best (m, n). since m has only 5 bits, we can iterate all possible values. Note Tegra1xx supports 11 bits for n, but our pll_fields has only 10 bits for n.
Note values undershoot or overshoot target output frequency may not work if the values are not in "safe" range by panel specification.
Definition at line 385 of file clock.c.
References BIOS_DEBUG, BIOS_ERR, BIOS_WARNING, CLK_RST_REG, clock_get_osc_bits(), clock_get_pll_input_khz(), init_pll(), m, pll_fields::m, mhz, pll_fields::n, osc_table, pll_fields::p, PLLD_INDEX, PLLD_MISC1_SETUP, PLLD_MISC_EN_SDM, PLLD_MISC_SDM_DIN, printk, and write32().
Referenced by dp_display_startup(), dsi_display_startup(), enable_plld(), and tegra_output_dsi_setup_clock().
Definition at line 697 of file clock.c.
References clk_enb_clr_arr, and clock_write_regs().
Definition at line 386 of file clock.c.
References CLK_DIVIDER, CLK_L_UARTA, CLK_M, clk_rst_ctlr::clk_out_enb_l, clk_rst, CLK_SOURCE_SHIFT, clk_rst_ctlr::clk_src_uarta, CLK_UART_DIV_OVERRIDE, clrbits32, console_uart_clk_rst_reg(), console_uart_clk_src_dev_id(), console_uart_clock_enable_clear_reset(), console_uart_get_id(), clk_rst_ctlr::rst_dev_l, setbits32, TEGRA_CLK_M_KHZ, TEGRA_PLLP_KHZ, UART_ID_NONE, udelay(), and write32().
Referenced by tegra124_main(), and tegra210_main().
Definition at line 772 of file clock.c.
References CLK_L_I2S1, CLK_L_I2S2, CLK_L_I2S3, CLK_L_SPDIF, CLK_V_AHUB, CLK_V_APB2APE, CLK_V_EXTPERIPH1, CLK_V_I2S4, CLK_V_I2S5, and clock_enable_clear_reset().
Referenced by setup_audio().
Definition at line 712 of file clock.c.
References clock_clr_reset, clock_enable(), IO_STABILIZATION_DELAY, pll_fields::u, udelay(), x, and y.
Definition at line 692 of file clock.c.
References clk_enb_set_arr, and clock_write_regs().
void clock_external_output | ( | int | clk_id | ) |
Definition at line 396 of file clock.c.
References BIOS_CRIT, tegra_pmc_regs::clk_out_cntrl, pmc, printk, and setbits32.
Referenced by mainboard_init().
int clock_get_osc_khz | ( | void | ) |
Definition at line 155 of file clock.c.
References clock_get_osc_bits(), and osc_table.
Referenced by arm64_arch_timer_init(), and clock_init_arm_generic_timer().
int clock_get_pll_input_khz | ( | void | ) |
Definition at line 160 of file clock.c.
References clk_rst, CLK_RST_REG, clk_rst_ctlr::osc_ctrl, OSC_FREQ_MASK, OSC_FREQ_SHIFT, OSC_PREDIV_MASK, OSC_PREDIV_SHIFT, osc_table, and read32().
Referenced by clock_configure_plld(), clock_display(), init_utmip_pll(), sdram_init(), and usb_setup_utmip().
Definition at line 634 of file clock.c.
References IO_STABILIZATION_DELAY, udelay(), val, and write32().
Referenced by soc_configure_funits().
Definition at line 530 of file clock.c.
References flow, FLOW_EVENT_GIC_IRQ, FLOW_EVENT_JTAG, FLOW_EVENT_LIC_IRQ, FLOW_MODE_WAITEVENT, flow_ctlr::halt_cop_events, and write32().
Referenced by platform_prog_run(), and run_next_stage().
Definition at line 168 of file clock.c.
References clock_get_osc_khz(), sysctr_regs::cntcr, sysctr_regs::cntfid0, read32(), set_cntfrq(), sysctr, SYSCTR_CNTCR_EN, SYSCTR_CNTCR_HDBG, TEGRA_CLK_M_KHZ, and write32().
Referenced by mainboard_init(), and ramstage_entry().
Definition at line 627 of file clock.c.
References clk_rst, CLK_RST_REG, clock_reset_dev(), clk_rst_ctlr::rst_dev_h_clr, clk_rst_ctlr::rst_dev_h_set, udelay(), and write32().
Definition at line 620 of file clock.c.
References clk_rst, CLK_RST_REG, clock_reset_dev(), clk_rst_ctlr::rst_dev_l_clr, clk_rst_ctlr::rst_dev_l_set, udelay(), and write32().
Definition at line 634 of file clock.c.
References clk_rst, CLK_RST_REG, clock_reset_dev(), clk_rst_ctlr::rst_dev_u_clr, clk_rst_ctlr::rst_dev_u_set, udelay(), and write32().
Definition at line 641 of file clock.c.
References clk_rst, CLK_RST_REG, clock_reset_dev(), clk_rst_ctlr::rst_dev_v_clr, clk_rst_ctlr::rst_dev_v_set, udelay(), and write32().
Definition at line 648 of file clock.c.
References clk_rst, CLK_RST_REG, clock_reset_dev(), clk_rst_ctlr::rst_dev_w_clr, clk_rst_ctlr::rst_dev_w_set, udelay(), and write32().
Definition at line 655 of file clock.c.
References clk_rst, CLK_RST_REG, clock_reset_dev(), clk_rst_ctlr::rst_dev_x_clr, clk_rst_ctlr::rst_dev_x_set, udelay(), and write32().
Definition at line 765 of file clock.c.
References CLK_RST_REG, and clock_reset_dev().
void clock_sdram | ( | u32 | m, |
u32 | n, | ||
u32 | p, | ||
u32 | setup, | ||
u32 | kvco, | ||
u32 | kcp, | ||
u32 | stable_time, | ||
u32 | emc_source, | ||
u32 | same_freq | ||
) |
Definition at line 512 of file clock.c.
References base, CLK_H_EMC, CLK_H_MEM, CLK_RST_REG, CLK_SOURCE_EMC_MC_EMC_SAME_FREQ, clock_enable_clear_reset(), IO_STABILIZATION_DELAY, pll_fields::kcp, pll_fields::kvco, m, pll_fields::n, pll_fields::p, PLL_BASE_BYPASS, PLL_BASE_DIVM_SHIFT, PLL_BASE_DIVN_SHIFT, PLL_BASE_DIVP_SHIFT, PLL_BASE_ENABLE, PLL_BASE_LOCK, PLLCMX_BASE_DIVM_MASK, PLLCMX_BASE_DIVN_MASK, PLLM_BASE_DIVP_MASK, PLLM_EN_LCKDET, PLLM_MISC1_SETUP_SHIFT, PLLM_MISC2_KCP_SHIFT, PLLM_MISC2_KVCO_SHIFT, read32(), setbits32, udelay(), and write32().
Definition at line 702 of file clock.c.
References clock_write_regs(), and rst_dev_set_arr.
Definition at line 195 of file clock.c.
References clk_rst, CLK_RST_REG, clk_rst_ctlr::clk_src_sor, setbits32, and SOR0_CLK_SEL0.
Referenced by tegra_sor_enable_edp_clock().
Definition at line 185 of file clock.c.
References clk_rst, CLK_RST_REG, clk_rst_ctlr::clk_src_sor, clrbits32, SOR0_CLK_SEL0, and SOR0_CLK_SEL1.