29.05.2019 11:21, Joseph Lo пишет: > This patch adds the required APIs and variables for the EMC scaling > sequence code on Tegra210. > > Based on the work of Peter De Schrijver <pdeschrijver@xxxxxxxxxx>. > > Signed-off-by: Joseph Lo <josephl@xxxxxxxxxx> > --- > v4: > - fix the API with generic naming > +extern const struct emc_table_register_offset reg_off; > +extern unsigned long dram_over_temp_state; > + > +void ccfifo_writel(struct tegra_emc *emc, u32 val, unsigned long addr, > + u32 delay); > +u32 div_o3(u32 a, u32 b); > +void emc_writel(struct tegra_emc *emc, u32 val, unsigned long offset); > +u32 emc_readl(struct tegra_emc *emc, unsigned long offset); > +void emc_writel_per_ch(struct tegra_emc *emc, u32 val, int type, > + unsigned long offset); > +u32 emc1_readl(struct tegra_emc *emc, unsigned long offset); > + > +void emc_do_clock_change(struct tegra_emc *emc, u32 clksrc); > +void emc_set_shadow_bypass(struct tegra_emc *emc, int set); > +void emc_timing_update(struct tegra_emc *emc, int dual_chan); > +u32 emc_get_dll_state(struct emc_table *next_timing); > +struct emc_table *emc_get_timing_from_freq(struct tegra_emc *emc, > + unsigned long rate); > +void emc_set_over_temp_timing(struct tegra_emc *emc, struct emc_table *timing, > + unsigned long state); > +int emc_wait_for_update(struct tegra_emc *emc, u32 status_reg, u32 bit_mask, > + bool updated_state, int chan); It wouldn't hurt to prepend these all with "tegra210_". -- Dmitry