iio: adc: sun20i-gpadc: add A523 gpadc support

A523 differs from existing sun20i-gpadc-iio by having two clocks; bus
clock and module clock.

Change driver to enable all clocks.

Signed-off-by: Michal Piekos <michal.piekos@mmpsystems.pl>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
Michal Piekos 2026-05-16 07:34:15 +02:00 committed by Jonathan Cameron
parent 24245b9387
commit 8114f44203

View File

@ -177,10 +177,10 @@ static int sun20i_gpadc_alloc_channels(struct iio_dev *indio_dev,
static int sun20i_gpadc_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
struct iio_dev *indio_dev;
struct sun20i_gpadc_iio *info;
struct clk_bulk_data *clks;
struct reset_control *rst;
struct clk *clk;
struct iio_dev *indio_dev;
int irq;
int ret;
@ -205,9 +205,11 @@ static int sun20i_gpadc_probe(struct platform_device *pdev)
if (IS_ERR(info->regs))
return PTR_ERR(info->regs);
clk = devm_clk_get_enabled(dev, NULL);
if (IS_ERR(clk))
return dev_err_probe(dev, PTR_ERR(clk), "failed to enable bus clock\n");
ret = devm_clk_bulk_get_all_enabled(dev, &clks);
if (ret < 0)
return dev_err_probe(dev, ret, "failed to enable clocks\n");
if (ret == 0)
return dev_err_probe(dev, -ENODEV, "needs at least one clocks\n");
rst = devm_reset_control_get_exclusive(dev, NULL);
if (IS_ERR(rst))
@ -243,6 +245,7 @@ static int sun20i_gpadc_probe(struct platform_device *pdev)
static const struct of_device_id sun20i_gpadc_of_id[] = {
{ .compatible = "allwinner,sun20i-d1-gpadc" },
{ .compatible = "allwinner,sun55i-a523-gpadc" },
{ }
};
MODULE_DEVICE_TABLE(of, sun20i_gpadc_of_id);