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

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

 



On Fri, 1 Feb 2019 12:25:29 +0000
"Bia, Beniamin" <Beniamin.Bia@xxxxxxxxxx> wrote:

> 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?

Yes, that would make sense.

Jonathan

> 
> 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