Re: [PATCH mfd v2] mfd: Add Renesas Synchronization Management Unit (SMU) support
From: Lee Jones
Date: Wed Jun 16 2021 - 12:35:48 EST
On Wed, 16 Jun 2021, Min Li wrote:
> > > diff --git a/drivers/mfd/rsmu_spi.c b/drivers/mfd/rsmu_spi.c
> > > new file mode 100644
> > > index 0000000..f3a087b
> > > --- /dev/null
> > > +++ b/drivers/mfd/rsmu_spi.c
> > > @@ -0,0 +1,265 @@
> > > +// SPDX-License-Identifier: GPL-2.0+
> > > +/*
> > > + * SPI driver for the IDT ClockMatrix(TM) and 82P33xxx families of
> > > + * timing and synchronization devices.
> > > + *
> > > + * Copyright (C) 2019 Integrated Device Technology, Inc., a Renesas
> > Company.
> > > + */
> > > +
> > > +#include <linux/kernel.h>
> > > +#include <linux/module.h>
> > > +#include <linux/init.h>
> > > +#include <linux/slab.h>
> > > +#include <linux/spi/spi.h>
> > > +#include <linux/regmap.h>
> > > +#include <linux/of.h>
> > > +#include <linux/mfd/core.h>
> > > +#include <linux/mfd/rsmu.h>
> > > +#include "rsmu_private.h"
> > > +
> > > +/*
> > > + * 16-bit register address: the lower 7 bits of the register address come
> > > + * from the offset addr byte and the upper 9 bits come from the page
> > register.
> > > + */
> > > +#define RSMU_CM_PAGE_ADDR 0x7C
> > > +#define RSMU_SABRE_PAGE_ADDR 0x7F
> > > +#define RSMU_HIGHER_ADDR_MASK 0xFF80
> > > +#define RSMU_HIGHER_ADDR_SHIFT 7
> > > +#define RSMU_LOWER_ADDR_MASK 0x7F
> > > +
> > > +static int rsmu_read_device(struct rsmu_dev *rsmu, u8 reg, u8 *buf,
> > u16 bytes)
> > > +{
> > > + struct spi_device *client = to_spi_device(rsmu->dev);
> > > + struct spi_transfer xfer = {0};
> > > + struct spi_message msg;
> > > + u8 cmd[256] = {0};
> > > + u8 rsp[256] = {0};
> > > + int ret;
> > > +
> > > + cmd[0] = reg | 0x80;
> > > + xfer.rx_buf = rsp;
> > > + xfer.len = bytes + 1;
> > > + xfer.tx_buf = cmd;
> > > + xfer.bits_per_word = client->bits_per_word;
> > > + xfer.speed_hz = client->max_speed_hz;
> > > +
> > > + spi_message_init(&msg);
> > > + spi_message_add_tail(&xfer, &msg);
> > > +
> > > + ret = spi_sync(client, &msg);
> > > + if (ret >= 0)
> > > + memcpy(buf, &rsp[1], xfer.len-1);
> >
> > What's at rsp[0]? Worth a comment?
> >
>
> I don't really know. This code is being used as is and tested working.
> Can I find out and add the comment later?
Yes, please find out before you submit the next version.
> > > +MODULE_LICENSE("GPL");
> > > diff --git a/include/linux/mfd/idt82p33_reg.h
> > b/include/linux/mfd/idt82p33_reg.h
> > > new file mode 100644
> > > index 0000000..fb41ab0
> > > --- /dev/null
> > > +++ b/include/linux/mfd/idt82p33_reg.h
> > > @@ -0,0 +1,112 @@
> > > +/* SPDX-License-Identifier: GPL-2.0+ */
> > > +/* idt82p33_reg.h
> >
> > Remove the filename, they have a habit of becoming out of date.
> >
> > > + *
> > > + * Register Map - AN888_SMUforIEEE_SynchEther_82P33xxx_RevH.pdf
> > > + *
> > > + */
> >
> > Copyright.
>
> Sorry, what do you mean by this?
This file is missing a copyright header/statement.
--
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog