RE: [PATCH 1/2] staging: iio: frequency: ad9833: Get frequency value statically

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The mclk is loaded from device tree in the next patch. This was just a intermediate step.
But what should i do with the rest of the fields?
Frequency and phase are the default configuration of the device and they don't belong in device tree.
They could also be modified from sysfs.
Should i remove the struct and write directly the value in probe function?

Ben
________________________________________
From: Jonathan Cameron [jonathan.cameron@xxxxxxxxxx]
Sent: Friday, February 01, 2019 1:24 PM
To: Beniamin Bia
Cc: linux-iio@xxxxxxxxxxxxxxx; Bia, Beniamin
Subject: Re: [PATCH 1/2] staging: iio: frequency: ad9833: Get frequency value statically

[External]


On Fri, 1 Feb 2019 11:36:37 +0200
Beniamin Bia <biabeniamin@xxxxxxxxx> wrote:

> The value of frequency is taken from ad9834.c instead of platform data

Why?  I would rather see this move over to DT than take aways the flexibility
that was previously there.

Jonathan

>
> Signed-off-by: Beniamin Bia <beniamin.bia@xxxxxxxxxx>
> ---
>  drivers/staging/iio/frequency/ad9834.c | 17 ++++++++++++-----
>  1 file changed, 12 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/staging/iio/frequency/ad9834.c b/drivers/staging/iio/frequency/ad9834.c
> index 995acdd7c942..d92d4bf71261 100644
> --- a/drivers/staging/iio/frequency/ad9834.c
> +++ b/drivers/staging/iio/frequency/ad9834.c
> @@ -99,6 +99,16 @@ enum ad9834_supported_device_ids {
>       ID_AD9838,
>  };
>
> +static struct ad9834_platform_data default_config = {
> +     .mclk = 25000000,
> +     .freq0 = 1000000,
> +     .freq1 = 5000000,
> +     .phase0 = 512,
> +     .phase1 = 1024,
> +     .en_div2 = false,
> +     .en_signbit_msb_out = false,
> +};
> +
>  static unsigned int ad9834_calc_freqreg(unsigned long mclk, unsigned long fout)
>  {
>       unsigned long long freqreg = (u64)fout * (u64)BIT(AD9834_FREQ_BITS);
> @@ -391,16 +401,13 @@ static const struct iio_info ad9833_info = {
>
>  static int ad9834_probe(struct spi_device *spi)
>  {
> -     struct ad9834_platform_data *pdata = dev_get_platdata(&spi->dev);
> +     struct ad9834_platform_data *pdata;
>       struct ad9834_state *st;
>       struct iio_dev *indio_dev;
>       struct regulator *reg;
>       int ret;
>
> -     if (!pdata) {
> -             dev_dbg(&spi->dev, "no platform data?\n");
> -             return -ENODEV;
> -     }
> +     pdata = &default_config;
>
>       reg = devm_regulator_get(&spi->dev, "avdd");
>       if (IS_ERR(reg))






[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux