Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 177f86fb authored by David Collins's avatar David Collins
Browse files

clk: qcom: clk-spmi-pmic-div: add support for clock-output-names



Some boards utilize several PMICs which contain clock divider
peripherals.  Add support for the clock-output-names property
so that unique names can be specified for each divider clock.
If clock-output-names is not specified, then the clock names
will be div_clkN where N=1 to qcom,num-clkdivs.

Change-Id: I66b5fcd0a3890886fe1e8cd85b15ada8a55ecb0f
Signed-off-by: default avatarDavid Collins <collinsd@codeaurora.org>
parent c9ad2d07
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -212,6 +212,7 @@ static int spmi_pmic_clkdiv_probe(struct platform_device *pdev)
	struct regmap *regmap;
	struct device *dev = &pdev->dev;
	struct device_node *of_node = dev->of_node;
	bool use_dt_name = false;
	const char *parent_name;
	int nclks, i, ret, cxo_hz;
	char name[20];
@@ -261,13 +262,26 @@ static int spmi_pmic_clkdiv_probe(struct platform_device *pdev)
		return -ENODEV;
	}

	if (of_find_property(of_node, "clock-output-names", NULL))
		use_dt_name = true;

	init.name = name;
	init.parent_names = &parent_name;
	init.num_parents = 1;
	init.ops = &clk_spmi_pmic_div_ops;

	for (i = 0, clkdiv = cc->clks; i < nclks; i++) {
		if (use_dt_name) {
			ret = of_property_read_string_index(of_node,
				"clock-output-names", i, &init.name);
			if (ret) {
				dev_err(dev, "could not read clock-output-names %d, ret=%d\n",
					i, ret);
				return ret;
			}
		} else {
			snprintf(name, sizeof(name), "div_clk%d", i + 1);
		}

		spin_lock_init(&clkdiv[i].lock);
		clkdiv[i].base = start + i * 0x100;