Commit c0448dce authored by Ben Peled's avatar Ben Peled Committed by Stephen Boyd
Browse files

clk: mvebu: ap80x: add AP807 clock support

parent be69e55d
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -102,6 +102,30 @@ static int ap806_get_sar_clocks(unsigned int freq_mode,
	return 0;
}

static int ap807_get_sar_clocks(unsigned int freq_mode,
				unsigned int *cpuclk_freq,
				unsigned int *dclk_freq)
{
	switch (freq_mode) {
	case 0x0:
		*cpuclk_freq = 2000;
		*dclk_freq = 1200;
		break;
	case 0x6:
		*cpuclk_freq = 2200;
		*dclk_freq = 1200;
		break;
	case 0xD:
		*cpuclk_freq = 1600;
		*dclk_freq = 1200;
		break;
	default:
		return -EINVAL;
	}

	return 0;
}

static int ap806_syscon_common_probe(struct platform_device *pdev,
				     struct device_node *syscon_node)
{
@@ -130,6 +154,9 @@ static int ap806_syscon_common_probe(struct platform_device *pdev,
	if (of_device_is_compatible(pdev->dev.of_node,
				    "marvell,ap806-clock")) {
		ret = ap806_get_sar_clocks(freq_mode, &cpuclk_freq, &dclk_freq);
	} else if (of_device_is_compatible(pdev->dev.of_node,
					   "marvell,ap807-clock")) {
		ret = ap807_get_sar_clocks(freq_mode, &cpuclk_freq, &dclk_freq);
	} else {
		dev_err(dev, "compatible not supported\n");
		return -EINVAL;
@@ -252,6 +279,7 @@ builtin_platform_driver(ap806_syscon_legacy_driver);

static const struct of_device_id ap806_clock_of_match[] = {
	{ .compatible = "marvell,ap806-clock", },
	{ .compatible = "marvell,ap807-clock", },
	{ }
};