Home
last modified time | relevance | path

Searched refs:emc (Results 1 – 25 of 82) sorted by relevance

1234

/openbmc/linux/drivers/memory/tegra/
H A Dtegra30-emc.c398 static int emc_seq_update_timing(struct tegra_emc *emc) in emc_seq_update_timing() argument
403 writel_relaxed(EMC_TIMING_UPDATE, emc->regs + EMC_TIMING_CONTROL); in emc_seq_update_timing()
405 err = readl_relaxed_poll_timeout_atomic(emc->regs + EMC_STATUS, val, in emc_seq_update_timing()
409 dev_err(emc->dev, "failed to update timing: %d\n", err); in emc_seq_update_timing()
418 struct tegra_emc *emc = data; in tegra_emc_isr() local
422 status = readl_relaxed(emc->regs + EMC_INTSTATUS) & intmask; in tegra_emc_isr()
428 dev_err_ratelimited(emc->dev, in tegra_emc_isr()
432 writel_relaxed(status, emc->regs + EMC_INTSTATUS); in tegra_emc_isr()
437 static struct emc_timing *emc_find_timing(struct tegra_emc *emc, in emc_find_timing() argument
443 for (i = 0; i < emc->num_timings; i++) { in emc_find_timing()
[all …]
H A Dtegra20-emc.c237 struct tegra_emc *emc = data; in tegra_emc_isr() local
241 status = readl_relaxed(emc->regs + EMC_INTSTATUS) & intmask; in tegra_emc_isr()
247 dev_err_ratelimited(emc->dev, in tegra_emc_isr()
251 writel_relaxed(status, emc->regs + EMC_INTSTATUS); in tegra_emc_isr()
256 static struct emc_timing *tegra_emc_find_timing(struct tegra_emc *emc, in tegra_emc_find_timing() argument
262 for (i = 0; i < emc->num_timings; i++) { in tegra_emc_find_timing()
263 if (emc->timings[i].rate >= rate) { in tegra_emc_find_timing()
264 timing = &emc->timings[i]; in tegra_emc_find_timing()
270 dev_err(emc->dev, "no timing for rate %lu\n", rate); in tegra_emc_find_timing()
277 static int emc_prepare_timing_change(struct tegra_emc *emc, unsigned long rate) in emc_prepare_timing_change() argument
[all …]
H A Dtegra210-emc-core.c561 struct tegra210_emc *emc = from_timer(emc, timer, training); in tegra210_emc_train() local
564 if (!emc->last) in tegra210_emc_train()
567 spin_lock_irqsave(&emc->lock, flags); in tegra210_emc_train()
569 if (emc->sequence->periodic_compensation) in tegra210_emc_train()
570 emc->sequence->periodic_compensation(emc); in tegra210_emc_train()
572 spin_unlock_irqrestore(&emc->lock, flags); in tegra210_emc_train()
574 mod_timer(&emc->training, in tegra210_emc_train()
575 jiffies + msecs_to_jiffies(emc->training_interval)); in tegra210_emc_train()
578 static void tegra210_emc_training_start(struct tegra210_emc *emc) in tegra210_emc_training_start() argument
580 mod_timer(&emc->training, in tegra210_emc_training_start()
[all …]
H A Dtegra186-emc.c63 static bool tegra186_emc_validate_rate(struct tegra186_emc *emc, in tegra186_emc_validate_rate() argument
68 for (i = 0; i < emc->num_dvfs; i++) in tegra186_emc_validate_rate()
69 if (rate == emc->dvfs[i].rate) in tegra186_emc_validate_rate()
78 struct tegra186_emc *emc = s->private; in tegra186_emc_debug_available_rates_show() local
82 for (i = 0; i < emc->num_dvfs; i++) { in tegra186_emc_debug_available_rates_show()
83 seq_printf(s, "%s%lu", prefix, emc->dvfs[i].rate); in tegra186_emc_debug_available_rates_show()
95 struct tegra186_emc *emc = data; in tegra186_emc_debug_min_rate_get() local
97 *rate = emc->debugfs.min_rate; in tegra186_emc_debug_min_rate_get()
104 struct tegra186_emc *emc = data; in tegra186_emc_debug_min_rate_set() local
107 if (!tegra186_emc_validate_rate(emc, rate)) in tegra186_emc_debug_min_rate_set()
[all …]
H A Dtegra124-emc.c518 static void emc_ccfifo_writel(struct tegra_emc *emc, u32 value, in emc_ccfifo_writel() argument
521 writel(value, emc->regs + EMC_CCFIFO_DATA); in emc_ccfifo_writel()
522 writel(offset, emc->regs + EMC_CCFIFO_ADDR); in emc_ccfifo_writel()
525 static void emc_seq_update_timing(struct tegra_emc *emc) in emc_seq_update_timing() argument
530 writel(1, emc->regs + EMC_TIMING_CONTROL); in emc_seq_update_timing()
533 value = readl(emc->regs + EMC_STATUS); in emc_seq_update_timing()
539 dev_err(emc->dev, "timing update timed out\n"); in emc_seq_update_timing()
542 static void emc_seq_disable_auto_cal(struct tegra_emc *emc) in emc_seq_disable_auto_cal() argument
547 writel(0, emc->regs + EMC_AUTO_CAL_INTERVAL); in emc_seq_disable_auto_cal()
550 value = readl(emc->regs + EMC_AUTO_CAL_STATUS); in emc_seq_disable_auto_cal()
[all …]
H A Dtegra210-emc-cc-r21021.c36 #define emc_dbg(emc, flags, ...) dev_dbg(emc->dev, __VA_ARGS__) argument
108 emc_dbg(emc, EMA_UPDATES, "%s: (s=%lu) EMA: %u\n", \
116 static u32 update_clock_tree_delay(struct tegra210_emc *emc, int type) in update_clock_tree_delay() argument
119 struct tegra210_emc_timing *last = emc->last; in update_clock_tree_delay()
120 struct tegra210_emc_timing *next = emc->next; in update_clock_tree_delay()
134 value = tegra210_emc_mrr_read(emc, 2, 19); in update_clock_tree_delay()
136 for (i = 0; i < emc->num_channels; i++) { in update_clock_tree_delay()
145 value = tegra210_emc_mrr_read(emc, 2, 18); in update_clock_tree_delay()
147 for (i = 0; i < emc->num_channels; i++) { in update_clock_tree_delay()
206 if (emc->num_channels > 1) { in update_clock_tree_delay()
[all …]
H A Dtegra210-emc-table.c15 struct tegra210_emc *emc = dev_get_drvdata(dev); in tegra210_emc_table_device_init() local
33 if (emc->derated) { in tegra210_emc_table_device_init()
38 if (emc->nominal) { in tegra210_emc_table_device_init()
39 if (count != emc->num_timings) { in tegra210_emc_table_device_init()
41 count, emc->num_timings); in tegra210_emc_table_device_init()
46 emc->derated = timings; in tegra210_emc_table_device_init()
48 emc->num_timings = count; in tegra210_emc_table_device_init()
49 emc->nominal = timings; in tegra210_emc_table_device_init()
63 struct tegra210_emc *emc = dev_get_drvdata(dev); in tegra210_emc_table_device_release() local
65 if ((emc->nominal && timings != emc->nominal) && in tegra210_emc_table_device_release()
[all …]
H A DMakefile16 obj-$(CONFIG_TEGRA20_EMC) += tegra20-emc.o
17 obj-$(CONFIG_TEGRA30_EMC) += tegra30-emc.o
18 obj-$(CONFIG_TEGRA124_EMC) += tegra124-emc.o
19 obj-$(CONFIG_TEGRA210_EMC_TABLE) += tegra210-emc-table.o
20 obj-$(CONFIG_TEGRA210_EMC) += tegra210-emc.o
21 obj-$(CONFIG_ARCH_TEGRA_186_SOC) += tegra186-emc.o
22 obj-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra186-emc.o
23 obj-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra186-emc.o
25 tegra210-emc-y := tegra210-emc-core.o tegra210-emc-cc-r21021.o
H A Dtegra210-emc.h939 void (*set_clock)(struct tegra210_emc *emc, u32 clksrc);
940 u32 (*periodic_compensation)(struct tegra210_emc *emc);
943 static inline void emc_writel(struct tegra210_emc *emc, u32 value, in emc_writel() argument
946 writel_relaxed(value, emc->regs + offset); in emc_writel()
949 static inline u32 emc_readl(struct tegra210_emc *emc, unsigned int offset) in emc_readl() argument
951 return readl_relaxed(emc->regs + offset); in emc_readl()
954 static inline void emc_channel_writel(struct tegra210_emc *emc, in emc_channel_writel() argument
958 writel_relaxed(value, emc->channel[channel] + offset); in emc_channel_writel()
961 static inline u32 emc_channel_readl(struct tegra210_emc *emc, in emc_channel_readl() argument
964 return readl_relaxed(emc->channel[channel] + offset); in emc_channel_readl()
[all …]
/openbmc/qemu/hw/net/
H A Dnpcm7xx_emc.c98 static void emc_reset(NPCM7xxEMCState *emc) in emc_reset() argument
102 trace_npcm7xx_emc_reset(emc->emc_num); in emc_reset()
104 memset(&emc->regs[0], 0, sizeof(emc->regs)); in emc_reset()
107 emc->regs[REG_TXDLSA] = 0xfffffffc; in emc_reset()
108 emc->regs[REG_RXDLSA] = 0xfffffffc; in emc_reset()
109 emc->regs[REG_MIIDA] = 0x00900000; in emc_reset()
110 emc->regs[REG_FFTCR] = 0x0101; in emc_reset()
111 emc->regs[REG_DMARFC] = 0x0800; in emc_reset()
112 emc->regs[REG_MPCNT] = 0x7fff; in emc_reset()
114 emc->tx_active = false; in emc_reset()
[all …]
/openbmc/linux/arch/arm/boot/dts/nvidia/
H A Dtegra124-jetson-tk1-emc.dtsi7 emc-timings-3 {
14 clock-names = "emc-parent";
21 clock-names = "emc-parent";
28 clock-names = "emc-parent";
35 clock-names = "emc-parent";
42 clock-names = "emc-parent";
49 clock-names = "emc-parent";
56 clock-names = "emc-parent";
63 clock-names = "emc-parent";
70 clock-names = "emc-parent";
[all …]
H A Dtegra124-apalis-emc.dtsi11 emc-timings-1 {
18 clock-names = "emc-parent";
25 clock-names = "emc-parent";
32 clock-names = "emc-parent";
39 clock-names = "emc-parent";
46 clock-names = "emc-parent";
53 clock-names = "emc-parent";
60 clock-names = "emc-parent";
67 clock-names = "emc-parent";
74 clock-names = "emc-parent";
[all …]
H A Dtegra124-nyan-blaze-emc.dtsi7 emc-timings-1 {
14 clock-names = "emc-parent";
21 clock-names = "emc-parent";
28 clock-names = "emc-parent";
35 clock-names = "emc-parent";
42 clock-names = "emc-parent";
49 clock-names = "emc-parent";
56 clock-names = "emc-parent";
63 clock-names = "emc-parent";
72 clock-names = "emc-parent";
[all …]
H A Dtegra124-nyan-big-emc.dtsi7 emc-timings-1 {
14 clock-names = "emc-parent";
21 clock-names = "emc-parent";
28 clock-names = "emc-parent";
35 clock-names = "emc-parent";
42 clock-names = "emc-parent";
49 clock-names = "emc-parent";
56 clock-names = "emc-parent";
63 clock-names = "emc-parent";
70 clock-names = "emc-parent";
[all …]
H A Dtegra30-asus-tf300t.dts146 emc-timings-0 {
211 emc-timings-1 {
276 emc-timings-2 {
343 emc-timings-0 {
350 nvidia,emc-auto-cal-interval = <0x001fffff>;
351 nvidia,emc-mode-1 = <0x80100003>;
352 nvidia,emc-mode-2 = <0x80200008>;
353 nvidia,emc-mode-reset = <0x80001221>;
354 nvidia,emc-zcal-cnt-long = <0x00000040>;
355 nvidia,emc-cfg-dyn-self-ref;
[all …]
H A Dtegra30-asus-tf300tg.dts220 emc-timings-0 {
285 emc-timings-1 {
350 emc-timings-2 {
417 emc-timings-0 {
424 nvidia,emc-auto-cal-interval = <0x001fffff>;
425 nvidia,emc-mode-1 = <0x80100003>;
426 nvidia,emc-mode-2 = <0x80200048>;
427 nvidia,emc-mode-reset = <0x80001221>;
428 nvidia,emc-zcal-cnt-long = <0x00000040>;
429 nvidia,emc-cfg-dyn-self-ref;
[all …]
H A Dtegra30-asus-tf201.dts112 emc-timings-0 {
167 emc-timings-1 {
224 emc-timings-0 {
231 nvidia,emc-auto-cal-interval = <0x001fffff>;
232 nvidia,emc-mode-1 = <0x00010022>;
233 nvidia,emc-mode-2 = <0x00020001>;
234 nvidia,emc-mode-reset = <0x00000000>;
235 nvidia,emc-zcal-cnt-long = <0x00000009>;
236 nvidia,emc-cfg-periodic-qrst;
238 nvidia,emc-configuration = < 0x00000001
[all …]
H A Dtegra30-asus-tf700t.dts141 emc-timings-0 {
206 emc-timings-1 {
273 emc-timings-0 {
280 nvidia,emc-auto-cal-interval = <0x001fffff>;
281 nvidia,emc-mode-1 = <0x80100003>;
282 nvidia,emc-mode-2 = <0x80200008>;
283 nvidia,emc-mode-reset = <0x80001221>;
284 nvidia,emc-zcal-cnt-long = <0x00000040>;
285 nvidia,emc-cfg-dyn-self-ref;
286 nvidia,emc-cfg-periodic-qrst;
[all …]
H A Dtegra30-asus-nexus7-grouper-memory-timings.dtsi5 emc-timings-0 {
159 emc-timings-1 {
315 emc-timings-0 {
321 nvidia,emc-auto-cal-interval = <0x001fffff>;
322 nvidia,emc-mode-1 = <0x80100003>;
323 nvidia,emc-mode-2 = <0x80200008>;
324 nvidia,emc-mode-reset = <0x80001221>;
325 nvidia,emc-zcal-cnt-long = <0x00000040>;
326 nvidia,emc-cfg-dyn-self-ref;
327 nvidia,emc-cfg-periodic-qrst;
[all …]
H A Dtegra30-asus-nexus7-tilapia-memory-timings.dtsi13 emc-timings-0 {
17 nvidia,emc-auto-cal-interval = <0x001fffff>;
18 nvidia,emc-mode-1 = <0x80100002>;
19 nvidia,emc-mode-2 = <0x80200018>;
20 nvidia,emc-mode-reset = <0x80000b71>;
21 nvidia,emc-zcal-cnt-long = <0x00000040>;
22 nvidia,emc-cfg-periodic-qrst;
24 nvidia,emc-configuration = <
118 emc-timings-1 {
122 nvidia,emc-auto-cal-interval = <0x001fffff>;
[all …]
H A Dtegra30-pegatron-chagall.dts1535 emc-timings-0 {
1590 emc-timings-1 {
1645 emc-timings-2 {
1700 emc-timings-3 {
1757 emc-timings-0 {
1764 nvidia,emc-auto-cal-interval = <0x001fffff>;
1765 nvidia,emc-mode-1 = <0x00010022>;
1766 nvidia,emc-mode-2 = <0x00020001>;
1767 nvidia,emc-mode-reset = <0x00000000>;
1768 nvidia,emc-zcal-cnt-long = <0x00000009>;
[all …]
/openbmc/u-boot/arch/arm/cpu/arm926ejs/lpc32xx/
H A Ddram.c22 static struct emc_regs *emc = (struct emc_regs *)EMC_BASE; variable
29 writel(1, &emc->ctrl); in ddr_init()
30 writel(0, &emc->config); in ddr_init()
32 writel(0x7FF, &emc->refresh); in ddr_init()
37 writel(dram->config0, &emc->config0); in ddr_init()
38 writel(dram->rascas0, &emc->rascas0); in ddr_init()
39 writel(dram->rdconfig, &emc->read_config); in ddr_init()
41 writel((ck / dram->trp) & 0x0000000F, &emc->t_rp); in ddr_init()
42 writel((ck / dram->tras) & 0x0000000F, &emc->t_ras); in ddr_init()
43 writel((ck / dram->tsrex) & 0x0000007F, &emc->t_srex); in ddr_init()
[all …]
/openbmc/linux/drivers/clk/tegra/
H A Dclk-tegra20-emc.c57 struct tegra_clk_emc *emc = to_tegra_clk_emc(hw); in emc_recalc_rate() local
60 val = readl_relaxed(emc->reg); in emc_recalc_rate()
68 struct tegra_clk_emc *emc = to_tegra_clk_emc(hw); in emc_get_parent() local
70 return readl_relaxed(emc->reg) >> CLK_SOURCE_EMC_2X_CLK_SRC_SHIFT; in emc_get_parent()
75 struct tegra_clk_emc *emc = to_tegra_clk_emc(hw); in emc_set_parent() local
78 val = readl_relaxed(emc->reg); in emc_set_parent()
84 if (index == EMC_SRC_PLL_M && div == 0 && emc->want_low_jitter) in emc_set_parent()
89 if (emc->mc_same_freq) in emc_set_parent()
94 writel_relaxed(val, emc->reg); in emc_set_parent()
96 fence_udelay(1, emc->reg); in emc_set_parent()
[all …]
H A Dclk-tegra210-emc.c53 struct tegra210_clk_emc *emc = to_tegra210_clk_emc(hw); in tegra210_clk_emc_get_parent() local
57 value = readl_relaxed(emc->regs + CLK_SOURCE_EMC); in tegra210_clk_emc_get_parent()
66 struct tegra210_clk_emc *emc = to_tegra210_clk_emc(hw); in tegra210_clk_emc_recalc_rate() local
81 value = readl_relaxed(emc->regs + CLK_SOURCE_EMC); in tegra210_clk_emc_recalc_rate()
92 struct tegra210_clk_emc *emc = to_tegra210_clk_emc(hw); in tegra210_clk_emc_round_rate() local
93 struct tegra210_clk_emc_provider *provider = emc->provider; in tegra210_clk_emc_round_rate()
107 static struct clk *tegra210_clk_emc_find_parent(struct tegra210_clk_emc *emc, in tegra210_clk_emc_find_parent() argument
110 struct clk_hw *parent = clk_hw_get_parent_by_index(&emc->hw, index); in tegra210_clk_emc_find_parent()
121 struct tegra210_clk_emc *emc = to_tegra210_clk_emc(hw); in tegra210_clk_emc_set_rate() local
122 struct tegra210_clk_emc_provider *provider = emc->provider; in tegra210_clk_emc_set_rate()
[all …]
/openbmc/u-boot/board/timll/devkit3250/
H A Ddevkit3250.c18 static struct emc_regs *emc = (struct emc_regs *)EMC_BASE; variable
60 emc->stat[0].config = EMC_STAT_CONFIG_PB | EMC_STAT_CONFIG_16BIT; in board_init()
63 emc->stat[0].waitwen = EMC_STAT_WAITWEN(1); in board_init()
64 emc->stat[0].waitoen = EMC_STAT_WAITOEN(0); in board_init()
65 emc->stat[0].waitrd = EMC_STAT_WAITRD(12); in board_init()
66 emc->stat[0].waitpage = EMC_STAT_WAITPAGE(12); in board_init()
67 emc->stat[0].waitwr = EMC_STAT_WAITWR(5); in board_init()
68 emc->stat[0].waitturn = EMC_STAT_WAITTURN(2); in board_init()

1234