On 12/18/2017 12:37 AM, Boris Brezillon wrote: > On Sun, 17 Dec 2017 14:32:04 -0800 > Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote: > >> On 12/14/17 07:16, Boris Brezillon wrote: >>> Add core infrastructure to support I3C in Linux and document it. >>> >>> Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx> >>> --- >>> drivers/Kconfig | 2 + >>> drivers/Makefile | 2 +- >>> drivers/i3c/Kconfig | 24 + >>> drivers/i3c/Makefile | 4 + >>> drivers/i3c/core.c | 573 ++++++++++++++++ >>> drivers/i3c/device.c | 344 ++++++++++ >>> drivers/i3c/internals.h | 34 + >>> drivers/i3c/master.c | 1433 +++++++++++++++++++++++++++++++++++++++ >>> drivers/i3c/master/Kconfig | 0 >>> drivers/i3c/master/Makefile | 0 >>> include/linux/i3c/ccc.h | 380 +++++++++++ >>> include/linux/i3c/device.h | 321 +++++++++ >>> include/linux/i3c/master.h | 564 +++++++++++++++ >>> include/linux/mod_devicetable.h | 17 + >>> 14 files changed, 3697 insertions(+), 1 deletion(-) >>> create mode 100644 drivers/i3c/Kconfig >>> create mode 100644 drivers/i3c/Makefile >>> create mode 100644 drivers/i3c/core.c >>> create mode 100644 drivers/i3c/device.c >>> create mode 100644 drivers/i3c/internals.h >>> create mode 100644 drivers/i3c/master.c >>> create mode 100644 drivers/i3c/master/Kconfig >>> create mode 100644 drivers/i3c/master/Makefile >>> create mode 100644 include/linux/i3c/ccc.h >>> create mode 100644 include/linux/i3c/device.h >>> create mode 100644 include/linux/i3c/master.h >>> diff --git a/drivers/i3c/core.c b/drivers/i3c/core.c >>> new file mode 100644 >>> index 000000000000..7eb8e84acd33 >>> --- /dev/null >>> +++ b/drivers/i3c/core.c >>> @@ -0,0 +1,573 @@ >>> +// SPDX-License-Identifier: GPL-2.0 >>> +/* >>> + * Copyright (C) 2017 Cadence Design Systems Inc. >>> + * >>> + * Author: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx> >>> + */ >>> + >>> +#include <linux/idr.h> >>> +#include <linux/module.h> >>> +#include <linux/of_device.h> >>> +#include <linux/slab.h> >> >> #include <linux/device.h> >> #include <linux/init.h> >> #include <linux/list.h> >> #include <linux/mutex.h> >> #include <linux/rwsem.h> > > Do you have a tool to detect those missing inclusions? Nope, I've often wanted one, but for now it's just slow reading. >>> diff --git a/include/linux/i3c/master.h b/include/linux/i3c/master.h >>> new file mode 100644 >>> index 000000000000..7ec9a4821bac >>> --- /dev/null >>> +++ b/include/linux/i3c/master.h >>> @@ -0,0 +1,564 @@ >>> +/* SPDX-License-Identifier: GPL-2.0 */ >>> +/* >>> + * Copyright (C) 2017 Cadence Design Systems Inc. >>> + * >>> + * Author: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx> >>> + */ >>> + >>> +#ifndef I3C_MASTER_H >>> +#define I3C_MASTER_H >>> + >>> +#include <linux/i2c.h> >>> +#include <linux/i3c/ccc.h> >>> +#include <linux/i3c/device.h> >>> +#include <linux/spinlock.h> >>> + >>> +#define I3C_HOT_JOIN_ADDR 0x2 >>> +#define I3C_BROADCAST_ADDR 0x7e >>> +#define I3C_MAX_ADDR GENMASK(6, 0) >>> + >> >> Needs bitops.h, workqueue.h, rwsem.h >> >> >> Needs <asm-generic/bitsperlong.h> > > Okay, that's really weird to directly include a header from the > asm-generic directory, are you sure this is the right thing to do here? Looks like it should be <asm/bitsperlong.h>, which will grab the correct one. -- ~Randy -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html