On Fri, Jul 16, 2021 at 2:43 PM Antoniu Miclaus <antoniu.miclaus@xxxxxxxxxx> wrote: > > The ADRF6780 is a silicon germanium (SiGe) design, wideband, > microwave upconverter optimized for point to point microwave > radio designs operating in the 5.9 GHz to 23.6 GHz frequency > range. > Datasheet: > https://www.analog.com/media/en/technical-documentation/data-sheets/ADRF6780.pdf Is it one line? If not, please put on one line and drop below the blank line so it will go as a tag. > > Signed-off-by: Antoniu Miclaus <antoniu.miclaus@xxxxxxxxxx> First question is why not to use the regmap API (I have heard it has gained support of 17 bit)? ... > + depends on COMMON_CLK Is it mandatory for any function inside the device? ... > +static int adrf6780_spi_read(struct adrf6780_dev *dev, unsigned int reg, > + unsigned int *val) > +{ > + int ret; > + struct spi_transfer t = {0}; > + dev->data[0] = 0x80 | (reg << 1); This 0x80 I guess is pretty much standard and regmap SPI supports it. > + dev->data[1] = 0x0; > + dev->data[2] = 0x0; > + > + t.rx_buf = &dev->data[0]; > + t.tx_buf = &dev->data[0]; > + t.len = 3; > + > + ret = spi_sync_transfer(dev->spi, &t, 1); > + if (ret) > + return ret; > + > + *val = (get_unaligned_be24(&dev->data[0]) >> 1) & GENMASK(15, 0); > + > + return ret; > +} ... > + usleep_range(200, 250); Needs a comment. -- With Best Regards, Andy Shevchenko