Home
last modified time | relevance | path

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

12

/linux/drivers/memory/tegra/
H A Dtegra210-emc-core.c560 struct tegra210_emc *emc = timer_container_of(emc, timer, training); in tegra210_emc_train() local
563 if (!emc->last) in tegra210_emc_train()
566 spin_lock_irqsave(&emc->lock, flags); in tegra210_emc_train()
568 if (emc->sequence->periodic_compensation) in tegra210_emc_train()
569 emc->sequence->periodic_compensation(emc); in tegra210_emc_train()
571 spin_unlock_irqrestore(&emc->lock, flags); in tegra210_emc_train()
573 mod_timer(&emc->training, in tegra210_emc_train()
574 jiffies + msecs_to_jiffies(emc->training_interval)); in tegra210_emc_train()
577 static void tegra210_emc_training_start(struct tegra210_emc *emc) in tegra210_emc_training_start() argument
579 mod_timer(&emc->training, in tegra210_emc_training_start()
[all …]
H A Dtegra186-emc.c69 static bool tegra186_emc_validate_rate(struct tegra186_emc *emc, in tegra186_emc_validate_rate() argument
74 for (i = 0; i < emc->num_dvfs; i++) in tegra186_emc_validate_rate()
75 if (rate == emc->dvfs[i].rate) in tegra186_emc_validate_rate()
84 struct tegra186_emc *emc = s->private; in tegra186_emc_debug_available_rates_show() local
88 for (i = 0; i < emc->num_dvfs; i++) { in tegra186_emc_debug_available_rates_show()
89 seq_printf(s, "%s%lu", prefix, emc->dvfs[i].rate); in tegra186_emc_debug_available_rates_show()
101 struct tegra186_emc *emc = data; in tegra186_emc_debug_min_rate_get() local
103 *rate = emc->debugfs.min_rate; in tegra186_emc_debug_min_rate_get()
110 struct tegra186_emc *emc = data; in tegra186_emc_debug_min_rate_set() local
113 if (!tegra186_emc_validate_rate(emc, rate)) in tegra186_emc_debug_min_rate_set()
[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=%u) EMA: %u\n", \
133 static void tegra210_emc_get_clktree_delay(struct tegra210_emc *emc, in tegra210_emc_get_clktree_delay() argument
136 struct tegra210_emc_timing *curr = emc->last; in tegra210_emc_get_clktree_delay()
145 tegra210_emc_start_periodic_compensation(emc); in tegra210_emc_get_clktree_delay()
148 for (d = 0; d < emc->num_devices; d++) { in tegra210_emc_get_clktree_delay()
150 msb = tegra210_emc_mrr_read(emc, 2 - d, 19); in tegra210_emc_get_clktree_delay()
151 lsb = tegra210_emc_mrr_read(emc, 2 - d, 18); in tegra210_emc_get_clktree_delay()
153 for (c = 0; c < emc->num_channels; c++) { in tegra210_emc_get_clktree_delay()
182 static bool periodic_compensation_handler(struct tegra210_emc *emc, u32 type, in periodic_compensation_handler() argument
[all …]
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 …]
/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-tf300tl.dts240 emc-timings-0 {
305 emc-timings-1 {
372 emc-timings-0 {
379 nvidia,emc-auto-cal-interval = <0x001fffff>;
380 nvidia,emc-mode-1 = <0x80100003>;
381 nvidia,emc-mode-2 = <0x80200048>;
382 nvidia,emc-mode-reset = <0x80001221>;
383 nvidia,emc-zcal-cnt-long = <0x00000040>;
384 nvidia,emc-cfg-dyn-self-ref;
385 nvidia,emc-cfg-periodic-qrst;
[all …]
H A Dtegra124-xiaomi-mocha.dts105 emc-timings-0 {
112 clock-names = "emc-parent";
119 clock-names = "emc-parent";
126 clock-names = "emc-parent";
133 clock-names = "emc-parent";
140 clock-names = "emc-parent";
147 clock-names = "emc-parent";
154 clock-names = "emc-parent";
161 clock-names = "emc-parent";
168 clock-names = "emc-parent";
[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.dts1543 emc-timings-0 {
1598 emc-timings-1 {
1653 emc-timings-2 {
1708 emc-timings-3 {
1765 emc-timings-0 {
1772 nvidia,emc-auto-cal-interval = <0x001fffff>;
1773 nvidia,emc-mode-1 = <0x00010022>;
1774 nvidia,emc-mode-2 = <0x00020001>;
1775 nvidia,emc-mode-reset = <0x00000000>;
1776 nvidia,emc-zcal-cnt-long = <0x00000009>;
[all …]
H A Dtegra20-acer-a500-picasso.dts705 emc-tables@0 {
712 emc-table@25000 {
714 compatible = "nvidia,tegra20-emc-table";
716 nvidia,emc-registers = <0x00000002 0x00000006
730 emc-table@50000 {
732 compatible = "nvidia,tegra20-emc-table";
734 nvidia,emc-registers = <0x00000003 0x00000007
748 emc-table@75000 {
750 compatible = "nvidia,tegra20-emc-table";
752 nvidia,emc-registers = <0x00000005 0x0000000a
[all …]
H A Dtegra30-ouya.dts2209 emc-timings-0 {
2357 emc-timings-1 {
2505 emc-timings-2 {
2655 emc-timings-0 {
2660 nvidia,emc-auto-cal-interval = <0x001fffff>;
2661 nvidia,emc-mode-1 = <0x80100003>;
2662 nvidia,emc-mode-2 = <0x80200008>;
2663 nvidia,emc-mode-reset = <0x80001221>;
2664 nvidia,emc-zcal-cnt-long = <0x00000040>;
2665 nvidia,emc-cfg-periodic-qrst;
[all …]
H A Dtegra30-asus-p1801-t.dts1436 emc-timings-3 {
1503 emc-timings-3 {
1510 nvidia,emc-auto-cal-interval = <0x001fffff>;
1511 nvidia,emc-mode-1 = <0x80100003>;
1512 nvidia,emc-mode-2 = <0x80200008>;
1513 nvidia,emc-mode-reset = <0x80001221>;
1514 nvidia,emc-zcal-cnt-long = <0x00000040>;
1515 nvidia,emc-cfg-dyn-self-ref;
1516 nvidia,emc-cfg-periodic-qrst;
1518 nvidia,emc-configuration = < 0x00000001
[all …]
H A Dtegra20-colibri.dtsi645 emc-table@83250 {
647 compatible = "nvidia,tegra20-emc-table";
649 nvidia,emc-registers = <0x00000005 0x00000011
662 emc-table@133200 {
664 compatible = "nvidia,tegra20-emc-table";
666 nvidia,emc-registers = <0x00000008 0x00000019
679 emc-table@166500 {
681 compatible = "nvidia,tegra20-emc-table";
683 nvidia,emc-registers = <0x0000000a 0x00000021
696 emc-table@333000 {
[all …]
/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_determine_rate() local
93 struct tegra210_clk_emc_provider *provider = emc->provider; in tegra210_clk_emc_determine_rate()
115 static struct clk *tegra210_clk_emc_find_parent(struct tegra210_clk_emc *emc, in tegra210_clk_emc_find_parent() argument
118 struct clk_hw *parent = clk_hw_get_parent_by_index(&emc->hw, index); in tegra210_clk_emc_find_parent()
129 struct tegra210_clk_emc *emc = to_tegra210_clk_emc(hw); in tegra210_clk_emc_set_rate() local
130 struct tegra210_clk_emc_provider *provider = emc->provider; in tegra210_clk_emc_set_rate()
[all …]
H A DMakefile20 obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += clk-tegra20-emc.o
22 obj-$(CONFIG_ARCH_TEGRA_3x_SOC) += clk-tegra20-emc.o
26 obj-$(CONFIG_TEGRA124_CLK_EMC) += clk-tegra124-emc.o
30 obj-$(CONFIG_ARCH_TEGRA_210_SOC) += clk-tegra210-emc.o
H A Dclk-tegra124-emc.c79 struct tegra_emc *emc; member
180 if (tegra->emc) in emc_ensure_emc_driver()
181 return tegra->emc; in emc_ensure_emc_driver()
199 tegra->emc = platform_get_drvdata(pdev); in emc_ensure_emc_driver()
201 if (!tegra->emc) { in emc_ensure_emc_driver()
206 return tegra->emc; in emc_ensure_emc_driver()
216 struct tegra_emc *emc = emc_ensure_emc_driver(tegra); in emc_set_timing() local
218 if (!emc) in emc_set_timing()
252 err = tegra->prepare_timing_change(emc, timing->rate); in emc_set_timing()
272 tegra->complete_timing_change(emc, timing->rate); in emc_set_timing()

12