RE: [PATCH 3/9] bus: fsl-mc: dpio: add APIs for DPIO objects
> -Original Message- > From: Ruxandra Ioana Radulescu > Sent: Wednesday, November 02, 2016 9:50 AM > To: Stuart Yoder <stuart.yo...@nxp.com>; gre...@linuxfoundation.org > Cc: German Rivera <german.riv...@nxp.com>; de...@driverdev.osuosl.org; > linux-ker...@vger.kernel.org; > ag...@suse.de; a...@arndb.de; Leo Li <leoyang...@nxp.com>; Roy Pledge > <roy.ple...@nxp.com>; Stuart Yoder > <stuart.yo...@nxp.com> > Subject: RE: [PATCH 3/9] bus: fsl-mc: dpio: add APIs for DPIO objects > > > -Original Message- > > From: Stuart Yoder [mailto:stuart.yo...@nxp.com] > > Sent: Friday, October 21, 2016 5:02 PM > > To: gre...@linuxfoundation.org > > Cc: German Rivera <german.riv...@nxp.com>; de...@driverdev.osuosl.org; > > linux-ker...@vger.kernel.org; ag...@suse.de; a...@arndb.de; Leo Li > > <leoyang...@nxp.com>; Ruxandra Ioana Radulescu > > <ruxandra.radule...@nxp.com>; Roy Pledge <roy.ple...@nxp.com>; Stuart > > Yoder <stuart.yo...@nxp.com> > > Subject: [PATCH 3/9] bus: fsl-mc: dpio: add APIs for DPIO objects > > > > From: Ioana Radulescu <ruxandra.radule...@nxp.com> > > > > Add the command build/parse APIs for operating on DPIO objects through > > the DPAA2 Management Complex. > > > > Signed-off-by: Ioana Radulescu <ruxandra.radule...@nxp.com> > > Signed-off-by: Roy Pledge <roy.ple...@nxp.com> > > Signed-off-by: Stuart Yoder <stuart.yo...@nxp.com> > > --- > > drivers/bus/fsl-mc/Kconfig | 10 ++ > > drivers/bus/fsl-mc/Makefile| 3 + > > drivers/bus/fsl-mc/dpio/Makefile | 9 ++ > > drivers/bus/fsl-mc/dpio/dpio-cmd.h | 198 > > > > drivers/bus/fsl-mc/dpio/dpio.c | 229 > > + > > drivers/bus/fsl-mc/dpio/dpio.h | 108 + > > 6 files changed, 557 insertions(+) > > create mode 100644 drivers/bus/fsl-mc/dpio/Makefile > > create mode 100644 drivers/bus/fsl-mc/dpio/dpio-cmd.h > > create mode 100644 drivers/bus/fsl-mc/dpio/dpio.c > > create mode 100644 drivers/bus/fsl-mc/dpio/dpio.h > > > > diff --git a/drivers/bus/fsl-mc/Kconfig b/drivers/bus/fsl-mc/Kconfig > > index 5c009ab..a10aaf0 100644 > > --- a/drivers/bus/fsl-mc/Kconfig > > +++ b/drivers/bus/fsl-mc/Kconfig > > @@ -15,3 +15,13 @@ config FSL_MC_BUS > > architecture. The fsl-mc bus driver handles discovery of > > DPAA2 objects (which are represented as Linux devices) and > > binding objects to drivers. > > + > > +config FSL_MC_DPIO > > +tristate "QorIQ DPAA2 DPIO driver" > > +depends on FSL_MC_BUS > > +help > > + Driver for the DPAA2 DPIO object. A DPIO provides queue and > > + buffer management facilities for software to interact with > > + other DPAA2 objects. This driver does not expose the DPIO > > + objects individually, but groups them under a service layer > > + API. > > diff --git a/drivers/bus/fsl-mc/Makefile b/drivers/bus/fsl-mc/Makefile > > index d56afee..d18df72 100644 > > --- a/drivers/bus/fsl-mc/Makefile > > +++ b/drivers/bus/fsl-mc/Makefile > > @@ -17,3 +17,6 @@ mc-bus-driver-objs := fsl-mc-bus.o \ > > fsl-mc-msi.o \ > > dpmcp.o \ > > dpbp.o > > + > > +# MC DPIO driver > > +obj-$(CONFIG_FSL_MC_DPIO) += dpio/ > > diff --git a/drivers/bus/fsl-mc/dpio/Makefile b/drivers/bus/fsl- > > mc/dpio/Makefile > > new file mode 100644 > > index 000..128befc > > --- /dev/null > > +++ b/drivers/bus/fsl-mc/dpio/Makefile > > @@ -0,0 +1,9 @@ > > +# > > +# QorIQ DPAA2 DPIO driver > > +# > > + > > +subdir-ccflags-y := -Werror > > + > > +obj-$(CONFIG_FSL_MC_DPIO) += fsl-mc-dpio.o > > + > > +fsl-mc-dpio-objs := dpio.o > > diff --git a/drivers/bus/fsl-mc/dpio/dpio-cmd.h b/drivers/bus/fsl- > > mc/dpio/dpio-cmd.h > > new file mode 100644 > > index 000..b25a4cc > > --- /dev/null > > +++ b/drivers/bus/fsl-mc/dpio/dpio-cmd.h > > @@ -0,0 +1,198 @@ > > +/* > > + * Copyright 2013-2016 Freescale Semiconductor Inc. > > + * > > + * Redistribution and use in source and binary forms, with or without > > + * modification, are permitted provided that the following conditions are > > met: > > + * * Redistributions of source code must retain the above copyright > > + * notice, this list of conditions and the following disclaimer. > > + * * Redistributi
RE: [PATCH 3/9] bus: fsl-mc: dpio: add APIs for DPIO objects
> -Original Message- > From: Stuart Yoder [mailto:stuart.yo...@nxp.com] > Sent: Friday, October 21, 2016 5:02 PM > To: gre...@linuxfoundation.org > Cc: German Rivera <german.riv...@nxp.com>; de...@driverdev.osuosl.org; > linux-ker...@vger.kernel.org; ag...@suse.de; a...@arndb.de; Leo Li > <leoyang...@nxp.com>; Ruxandra Ioana Radulescu > <ruxandra.radule...@nxp.com>; Roy Pledge <roy.ple...@nxp.com>; Stuart > Yoder <stuart.yo...@nxp.com> > Subject: [PATCH 3/9] bus: fsl-mc: dpio: add APIs for DPIO objects > > From: Ioana Radulescu <ruxandra.radule...@nxp.com> > > Add the command build/parse APIs for operating on DPIO objects through > the DPAA2 Management Complex. > > Signed-off-by: Ioana Radulescu <ruxandra.radule...@nxp.com> > Signed-off-by: Roy Pledge <roy.ple...@nxp.com> > Signed-off-by: Stuart Yoder <stuart.yo...@nxp.com> > --- > drivers/bus/fsl-mc/Kconfig | 10 ++ > drivers/bus/fsl-mc/Makefile| 3 + > drivers/bus/fsl-mc/dpio/Makefile | 9 ++ > drivers/bus/fsl-mc/dpio/dpio-cmd.h | 198 > > drivers/bus/fsl-mc/dpio/dpio.c | 229 > + > drivers/bus/fsl-mc/dpio/dpio.h | 108 + > 6 files changed, 557 insertions(+) > create mode 100644 drivers/bus/fsl-mc/dpio/Makefile > create mode 100644 drivers/bus/fsl-mc/dpio/dpio-cmd.h > create mode 100644 drivers/bus/fsl-mc/dpio/dpio.c > create mode 100644 drivers/bus/fsl-mc/dpio/dpio.h > > diff --git a/drivers/bus/fsl-mc/Kconfig b/drivers/bus/fsl-mc/Kconfig > index 5c009ab..a10aaf0 100644 > --- a/drivers/bus/fsl-mc/Kconfig > +++ b/drivers/bus/fsl-mc/Kconfig > @@ -15,3 +15,13 @@ config FSL_MC_BUS > architecture. The fsl-mc bus driver handles discovery of > DPAA2 objects (which are represented as Linux devices) and > binding objects to drivers. > + > +config FSL_MC_DPIO > +tristate "QorIQ DPAA2 DPIO driver" > +depends on FSL_MC_BUS > +help > + Driver for the DPAA2 DPIO object. A DPIO provides queue and > + buffer management facilities for software to interact with > + other DPAA2 objects. This driver does not expose the DPIO > + objects individually, but groups them under a service layer > + API. > diff --git a/drivers/bus/fsl-mc/Makefile b/drivers/bus/fsl-mc/Makefile > index d56afee..d18df72 100644 > --- a/drivers/bus/fsl-mc/Makefile > +++ b/drivers/bus/fsl-mc/Makefile > @@ -17,3 +17,6 @@ mc-bus-driver-objs := fsl-mc-bus.o \ > fsl-mc-msi.o \ > dpmcp.o \ > dpbp.o > + > +# MC DPIO driver > +obj-$(CONFIG_FSL_MC_DPIO) += dpio/ > diff --git a/drivers/bus/fsl-mc/dpio/Makefile b/drivers/bus/fsl- > mc/dpio/Makefile > new file mode 100644 > index 000..128befc > --- /dev/null > +++ b/drivers/bus/fsl-mc/dpio/Makefile > @@ -0,0 +1,9 @@ > +# > +# QorIQ DPAA2 DPIO driver > +# > + > +subdir-ccflags-y := -Werror > + > +obj-$(CONFIG_FSL_MC_DPIO) += fsl-mc-dpio.o > + > +fsl-mc-dpio-objs := dpio.o > diff --git a/drivers/bus/fsl-mc/dpio/dpio-cmd.h b/drivers/bus/fsl- > mc/dpio/dpio-cmd.h > new file mode 100644 > index 000..b25a4cc > --- /dev/null > +++ b/drivers/bus/fsl-mc/dpio/dpio-cmd.h > @@ -0,0 +1,198 @@ > +/* > + * Copyright 2013-2016 Freescale Semiconductor Inc. > + * > + * Redistribution and use in source and binary forms, with or without > + * modification, are permitted provided that the following conditions are > met: > + * * Redistributions of source code must retain the above copyright > + * notice, this list of conditions and the following disclaimer. > + * * Redistributions in binary form must reproduce the above copyright > + * notice, this list of conditions and the following disclaimer in the > + * documentation and/or other materials provided with the distribution. > + * * Neither the name of the above-listed copyright holders nor the > + * names of any contributors may be used to endorse or promote products > + * derived from this software without specific prior written permission. > + * > + * ALTERNATIVELY, this software may be distributed under the terms of the > + * GNU General Public License ("GPL") as published by the Free Software > + * Foundation, either version 2 of that License or (at your option) any > + * later version. > + * > + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND > CONTRIBUTORS "AS IS" > + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > LIMITED TO, THE > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A > PARTICULAR PURPOSE
[PATCH 3/9] bus: fsl-mc: dpio: add APIs for DPIO objects
From: Ioana RadulescuAdd the command build/parse APIs for operating on DPIO objects through the DPAA2 Management Complex. Signed-off-by: Ioana Radulescu Signed-off-by: Roy Pledge Signed-off-by: Stuart Yoder --- drivers/bus/fsl-mc/Kconfig | 10 ++ drivers/bus/fsl-mc/Makefile| 3 + drivers/bus/fsl-mc/dpio/Makefile | 9 ++ drivers/bus/fsl-mc/dpio/dpio-cmd.h | 198 drivers/bus/fsl-mc/dpio/dpio.c | 229 + drivers/bus/fsl-mc/dpio/dpio.h | 108 + 6 files changed, 557 insertions(+) create mode 100644 drivers/bus/fsl-mc/dpio/Makefile create mode 100644 drivers/bus/fsl-mc/dpio/dpio-cmd.h create mode 100644 drivers/bus/fsl-mc/dpio/dpio.c create mode 100644 drivers/bus/fsl-mc/dpio/dpio.h diff --git a/drivers/bus/fsl-mc/Kconfig b/drivers/bus/fsl-mc/Kconfig index 5c009ab..a10aaf0 100644 --- a/drivers/bus/fsl-mc/Kconfig +++ b/drivers/bus/fsl-mc/Kconfig @@ -15,3 +15,13 @@ config FSL_MC_BUS architecture. The fsl-mc bus driver handles discovery of DPAA2 objects (which are represented as Linux devices) and binding objects to drivers. + +config FSL_MC_DPIO +tristate "QorIQ DPAA2 DPIO driver" +depends on FSL_MC_BUS +help + Driver for the DPAA2 DPIO object. A DPIO provides queue and + buffer management facilities for software to interact with + other DPAA2 objects. This driver does not expose the DPIO + objects individually, but groups them under a service layer + API. diff --git a/drivers/bus/fsl-mc/Makefile b/drivers/bus/fsl-mc/Makefile index d56afee..d18df72 100644 --- a/drivers/bus/fsl-mc/Makefile +++ b/drivers/bus/fsl-mc/Makefile @@ -17,3 +17,6 @@ mc-bus-driver-objs := fsl-mc-bus.o \ fsl-mc-msi.o \ dpmcp.o \ dpbp.o + +# MC DPIO driver +obj-$(CONFIG_FSL_MC_DPIO) += dpio/ diff --git a/drivers/bus/fsl-mc/dpio/Makefile b/drivers/bus/fsl-mc/dpio/Makefile new file mode 100644 index 000..128befc --- /dev/null +++ b/drivers/bus/fsl-mc/dpio/Makefile @@ -0,0 +1,9 @@ +# +# QorIQ DPAA2 DPIO driver +# + +subdir-ccflags-y := -Werror + +obj-$(CONFIG_FSL_MC_DPIO) += fsl-mc-dpio.o + +fsl-mc-dpio-objs := dpio.o diff --git a/drivers/bus/fsl-mc/dpio/dpio-cmd.h b/drivers/bus/fsl-mc/dpio/dpio-cmd.h new file mode 100644 index 000..b25a4cc --- /dev/null +++ b/drivers/bus/fsl-mc/dpio/dpio-cmd.h @@ -0,0 +1,198 @@ +/* + * Copyright 2013-2016 Freescale Semiconductor Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the above-listed copyright holders nor the + * names of any contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#ifndef _FSL_DPIO_CMD_H +#define _FSL_DPIO_CMD_H + +/* DPIO Version */ +#define DPIO_VER_MAJOR 4 +#define DPIO_VER_MINOR 2 + +/* Command Versioning */ + +#define DPIO_CMD_ID_OFFSET 4 +#define DPIO_CMD_BASE_VERSION 1 + +#define DPIO_CMD(id) ((id << DPIO_CMD_ID_OFFSET) | DPIO_CMD_BASE_VERSION) + +/* Command IDs */ +#define DPIO_CMDID_CLOSE DPIO_CMD(0x800) +#define DPIO_CMDID_OPENDPIO_CMD(0x803) +#define DPIO_CMDID_CREATE