Skip to content

Commit

Permalink
memory: tegra: Expose supported rates via debugfs
Browse files Browse the repository at this point in the history
In order to ease testing, expose the list of supported EMC frequencies
via debugfs.

Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
  • Loading branch information
thierryreding committed Jul 16, 2015
1 parent d770e55 commit 30a636f
Showing 1 changed file with 40 additions and 2 deletions.
42 changes: 40 additions & 2 deletions drivers/memory/tegra/tegra124-emc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1027,7 +1027,40 @@ static int emc_debug_rate_set(void *data, u64 rate)
DEFINE_SIMPLE_ATTRIBUTE(emc_debug_rate_fops, emc_debug_rate_get,
emc_debug_rate_set, "%lld\n");

static void emc_debugfs_init(struct device *dev)
static int emc_debug_supported_rates_show(struct seq_file *s, void *data)
{
struct tegra_emc *emc = s->private;
const char *prefix = "";
unsigned int i;

for (i = 0; i < emc->num_timings; i++) {
struct emc_timing *timing = &emc->timings[i];

seq_printf(s, "%s%lu", prefix, timing->rate);

prefix = " ";
}

seq_puts(s, "\n");

return 0;
}

static int emc_debug_supported_rates_open(struct inode *inode,
struct file *file)
{
return single_open(file, emc_debug_supported_rates_show,
inode->i_private);
}

static const struct file_operations emc_debug_supported_rates_fops = {
.open = emc_debug_supported_rates_open,
.read = seq_read,
.llseek = seq_lseek,
.release = single_release,
};

static void emc_debugfs_init(struct device *dev, struct tegra_emc *emc)
{
struct dentry *root, *file;
struct clk *clk;
Expand All @@ -1048,6 +1081,11 @@ static void emc_debugfs_init(struct device *dev)
&emc_debug_rate_fops);
if (!file)
dev_err(dev, "failed to create debugfs entry\n");

file = debugfs_create_file("supported_rates", S_IRUGO, root, emc,
&emc_debug_supported_rates_fops);
if (!file)
dev_err(dev, "failed to create debugfs entry\n");
}

static int tegra_emc_probe(struct platform_device *pdev)
Expand Down Expand Up @@ -1119,7 +1157,7 @@ static int tegra_emc_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, emc);

if (IS_ENABLED(CONFIG_DEBUG_FS))
emc_debugfs_init(&pdev->dev);
emc_debugfs_init(&pdev->dev, emc);

return 0;
};
Expand Down

0 comments on commit 30a636f

Please sign in to comment.