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

Commit 185915b2 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "clk: qcom: Update GCC and Debugcc driver for SDX24 V2"

parents a1cfc833 fca86a66
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ Required properties :
- compatible : shall contain only one of the following:
			"qcom,debugcc-sdm845"
			"qcom,debugcc-sdxpoorwills"
			"qcom,debugcc-sdxpoorwills-v2"

- clock-names: Shall contain "xo_clk_src"
- clocks: phandle + clock reference to the CXO clock.
+1 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ Required properties :
			"qcom,gcc-sdm845-v2.1"
			"qcom,gcc-sdm670"
			"qcom,gcc-sdxpoorwills"
			"qcom,gcc-sdxpoorwills-v2"

- reg : shall contain base register location and length
- #clock-cells : shall contain 1
+10 −1
Original line number Diff line number Diff line
@@ -219,13 +219,15 @@ static struct clk_debug_mux gcc_debug_mux = {

static const struct of_device_id clk_debug_match_table[] = {
	{ .compatible = "qcom,debugcc-sdxpoorwills" },
	{ .compatible = "qcom,debugcc-sdxpoorwills-v2" },
	{ }
};

static int clk_debug_sdxpoorwills_probe(struct platform_device *pdev)
{
	struct clk *clk;
	int ret = 0;
	int ret = 0, compatlen;
	const char *compat = NULL;

	clk = devm_clk_get(&pdev->dev, "xo_clk_src");
	if (IS_ERR(clk)) {
@@ -234,6 +236,13 @@ static int clk_debug_sdxpoorwills_probe(struct platform_device *pdev)
		return PTR_ERR(clk);
	}

	compat = of_get_property(pdev->dev.of_node, "compatible", &compatlen);
	if (!compat || (compatlen <= 0))
		return -EINVAL;

	if (!strcmp(compat, "qcom,debugcc-sdxpoorwills-v2"))
		debug_mux_priv.xo_div4_cbcr = 0x22010;

	debug_mux_priv.cxo = clk;

	gcc_debug_mux.regmap = devm_kcalloc(&pdev->dev, MAX_NUM_CC,
+16 −1
Original line number Diff line number Diff line
@@ -1839,15 +1839,23 @@ static const struct qcom_cc_desc gcc_sdxpoorwills_desc = {

static const struct of_device_id gcc_sdxpoorwills_match_table[] = {
	{ .compatible = "qcom,gcc-sdxpoorwills" },
	{ .compatible = "qcom,gcc-sdxpoorwills-v2" },
	{ }
};
MODULE_DEVICE_TABLE(of, gcc_sdxpoorwills_match_table);

static void gcc_fixup_sdxpoorwillsv2(void)
{
	gcc_blsp1_ahb_clk.clkr.enable_mask = BIT(14);
	gcc_blsp1_sleep_clk.clkr.enable_mask = BIT(15);
}

static int gcc_sdxpoorwills_probe(struct platform_device *pdev)
{
	int i, ret = 0;
	int i, ret = 0, compatlen;
	struct clk *clk;
	struct regmap *regmap;
	const char *compat = NULL;

	regmap = qcom_cc_map(pdev, &gcc_sdxpoorwills_desc);
	if (IS_ERR(regmap))
@@ -1869,6 +1877,13 @@ static int gcc_sdxpoorwills_probe(struct platform_device *pdev)
		return PTR_ERR(vdd_cx_ao.regulator[0]);
	}

	compat = of_get_property(pdev->dev.of_node, "compatible", &compatlen);
	if (!compat || (compatlen <= 0))
		return -EINVAL;

	if (!strcmp(compat, "qcom,gcc-sdxpoorwills-v2"))
		gcc_fixup_sdxpoorwillsv2();

	/* Register the dummy measurement clocks */
	for (i = 0; i < ARRAY_SIZE(gcc_sdxpoorwills_hws); i++) {
		clk = devm_clk_register(&pdev->dev, gcc_sdxpoorwills_hws[i]);