* [PATCH 0/2] mfd: cros_ec: Small cleanups @ 2015-05-20 9:31 Javier Martinez Canillas 2015-05-20 9:31 ` [PATCH 1/2] mfd: cros_ec: Remove parent field Javier Martinez Canillas 2015-05-20 9:31 ` [PATCH 2/2] mfd: cros_ec: Instantiate sub-devices from device tree Javier Martinez Canillas 0 siblings, 2 replies; 5+ messages in thread From: Javier Martinez Canillas @ 2015-05-20 9:31 UTC (permalink / raw) To: Lee Jones Cc: Samuel Ortiz, Olof Johansson, Doug Anderson, Bill Richardson, Simon Glass, Gwendal Grignou, Stephen Barber, Filipe Brandenburger, Todd Broch, Alexandru M Stan, Heiko Stuebner, linux-kernel, Javier Martinez Canillas Hello Lee, These two patches were posted before as a part of the "mfd: cros_ec: Add multi EC and proto v3 support" [0] series but I split on a new series because these are simple enough and you already ack them so should not be blocked by the more controversial ones. I kept the original history on the individual patches to make it easier to know what changed on each version. The series is composed of the following patches: Gwendal Grignou (1): mfd: cros_ec: Remove parent field Todd Broch (1): mfd: cros_ec: Instantiate sub-devices from device tree drivers/mfd/cros_ec.c | 22 +++++++++++----------- drivers/mfd/cros_ec_i2c.c | 1 - drivers/mfd/cros_ec_spi.c | 1 - drivers/platform/chrome/cros_ec_lpc.c | 1 - include/linux/mfd/cros_ec.h | 2 -- 5 files changed, 11 insertions(+), 16 deletions(-) [0]: https://lkml.org/lkml/2015/5/9/73 Best regards, Javier ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] mfd: cros_ec: Remove parent field 2015-05-20 9:31 [PATCH 0/2] mfd: cros_ec: Small cleanups Javier Martinez Canillas @ 2015-05-20 9:31 ` Javier Martinez Canillas 2015-05-20 11:30 ` Lee Jones 2015-05-20 9:31 ` [PATCH 2/2] mfd: cros_ec: Instantiate sub-devices from device tree Javier Martinez Canillas 1 sibling, 1 reply; 5+ messages in thread From: Javier Martinez Canillas @ 2015-05-20 9:31 UTC (permalink / raw) To: Lee Jones Cc: Samuel Ortiz, Olof Johansson, Doug Anderson, Bill Richardson, Simon Glass, Gwendal Grignou, Stephen Barber, Filipe Brandenburger, Todd Broch, Alexandru M Stan, Heiko Stuebner, linux-kernel, Gwendal Grignou, Javier Martinez Canillas From: Gwendal Grignou <gwendal@chromium.org> parent and dev were pointing to the same device structure. parent is unused, removed. Signed-off-by: Gwendal Grignou <gwendal@chromium.org> Reviewed-by: Stephen Barber <smbarber@chromium.org> Tested-by: Stephen Barber <smbarber@chromium.org> Reviewed-by: Puthikorn Voravootivat <puthik@chromium.org> Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> Tested-by: Heiko Stuebner <heiko@sntech.de> Reviewed-by: Gwendal Grignou <gwendal@chromium.org> Tested-by: Gwendal Grignou <gwendal@chromium.org> Acked-by: Lee Jones <lee.jones@linaro.org> --- Changes since v2: None Changes since v1: - Added Heiko Stuebner and Gwendal Grignou Tested-by tag - Added Lee Jones Acked-by tag - Use cros_ec instead of cros ec in the subject line to be consistent. Suggested by Gwendal Grignou --- drivers/mfd/cros_ec_i2c.c | 1 - drivers/mfd/cros_ec_spi.c | 1 - drivers/platform/chrome/cros_ec_lpc.c | 1 - include/linux/mfd/cros_ec.h | 2 -- 4 files changed, 5 deletions(-) diff --git a/drivers/mfd/cros_ec_i2c.c b/drivers/mfd/cros_ec_i2c.c index c0c30f4f946f..82b4d6148698 100644 --- a/drivers/mfd/cros_ec_i2c.c +++ b/drivers/mfd/cros_ec_i2c.c @@ -145,7 +145,6 @@ static int cros_ec_i2c_probe(struct i2c_client *client, ec_dev->cmd_xfer = cros_ec_cmd_xfer_i2c; ec_dev->ec_name = client->name; ec_dev->phys_name = client->adapter->name; - ec_dev->parent = &client->dev; err = cros_ec_register(ec_dev); if (err) { diff --git a/drivers/mfd/cros_ec_spi.c b/drivers/mfd/cros_ec_spi.c index bf6e08e8013e..27bd52e5e8b7 100644 --- a/drivers/mfd/cros_ec_spi.c +++ b/drivers/mfd/cros_ec_spi.c @@ -363,7 +363,6 @@ static int cros_ec_spi_probe(struct spi_device *spi) ec_dev->cmd_xfer = cros_ec_cmd_xfer_spi; ec_dev->ec_name = ec_spi->spi->modalias; ec_dev->phys_name = dev_name(&ec_spi->spi->dev); - ec_dev->parent = &ec_spi->spi->dev; ec_dev->din_size = EC_MSG_BYTES + EC_MSG_PREAMBLE_COUNT; ec_dev->dout_size = EC_MSG_BYTES; diff --git a/drivers/platform/chrome/cros_ec_lpc.c b/drivers/platform/chrome/cros_ec_lpc.c index 8f9ac4d7bbd0..860310513cf0 100644 --- a/drivers/platform/chrome/cros_ec_lpc.c +++ b/drivers/platform/chrome/cros_ec_lpc.c @@ -214,7 +214,6 @@ static int cros_ec_lpc_probe(struct platform_device *pdev) ec_dev->dev = dev; ec_dev->ec_name = pdev->name; ec_dev->phys_name = dev_name(dev); - ec_dev->parent = dev; ec_dev->cmd_xfer = cros_ec_cmd_xfer_lpc; ec_dev->cmd_readmem = cros_ec_lpc_readmem; diff --git a/include/linux/mfd/cros_ec.h b/include/linux/mfd/cros_ec.h index 324a34683971..14cf522123dd 100644 --- a/include/linux/mfd/cros_ec.h +++ b/include/linux/mfd/cros_ec.h @@ -85,7 +85,6 @@ struct cros_ec_command { * to using dword. * @din_size: size of din buffer to allocate (zero to use static din) * @dout_size: size of dout buffer to allocate (zero to use static dout) - * @parent: pointer to parent device (e.g. i2c or spi device) * @wake_enabled: true if this device can wake the system from sleep * @cmd_xfer: send command to EC and get response * Returns the number of bytes received if the communication succeeded, but @@ -113,7 +112,6 @@ struct cros_ec_device { uint8_t *dout; int din_size; int dout_size; - struct device *parent; bool wake_enabled; int (*cmd_xfer)(struct cros_ec_device *ec, struct cros_ec_command *msg); -- 2.1.4 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] mfd: cros_ec: Remove parent field 2015-05-20 9:31 ` [PATCH 1/2] mfd: cros_ec: Remove parent field Javier Martinez Canillas @ 2015-05-20 11:30 ` Lee Jones 0 siblings, 0 replies; 5+ messages in thread From: Lee Jones @ 2015-05-20 11:30 UTC (permalink / raw) To: Javier Martinez Canillas Cc: Samuel Ortiz, Olof Johansson, Doug Anderson, Bill Richardson, Simon Glass, Gwendal Grignou, Stephen Barber, Filipe Brandenburger, Todd Broch, Alexandru M Stan, Heiko Stuebner, linux-kernel, Gwendal Grignou On Wed, 20 May 2015, Javier Martinez Canillas wrote: > From: Gwendal Grignou <gwendal@chromium.org> > > parent and dev were pointing to the same device structure. > parent is unused, removed. > > Signed-off-by: Gwendal Grignou <gwendal@chromium.org> > Reviewed-by: Stephen Barber <smbarber@chromium.org> > Tested-by: Stephen Barber <smbarber@chromium.org> > Reviewed-by: Puthikorn Voravootivat <puthik@chromium.org> > Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> > Tested-by: Heiko Stuebner <heiko@sntech.de> > Reviewed-by: Gwendal Grignou <gwendal@chromium.org> > Tested-by: Gwendal Grignou <gwendal@chromium.org> > Acked-by: Lee Jones <lee.jones@linaro.org> > --- > > Changes since v2: None > > Changes since v1: > - Added Heiko Stuebner and Gwendal Grignou Tested-by tag > - Added Lee Jones Acked-by tag > - Use cros_ec instead of cros ec in the subject line to be consistent. > Suggested by Gwendal Grignou > --- > drivers/mfd/cros_ec_i2c.c | 1 - > drivers/mfd/cros_ec_spi.c | 1 - > drivers/platform/chrome/cros_ec_lpc.c | 1 - > include/linux/mfd/cros_ec.h | 2 -- > 4 files changed, 5 deletions(-) Applied, thanks. > diff --git a/drivers/mfd/cros_ec_i2c.c b/drivers/mfd/cros_ec_i2c.c > index c0c30f4f946f..82b4d6148698 100644 > --- a/drivers/mfd/cros_ec_i2c.c > +++ b/drivers/mfd/cros_ec_i2c.c > @@ -145,7 +145,6 @@ static int cros_ec_i2c_probe(struct i2c_client *client, > ec_dev->cmd_xfer = cros_ec_cmd_xfer_i2c; > ec_dev->ec_name = client->name; > ec_dev->phys_name = client->adapter->name; > - ec_dev->parent = &client->dev; > > err = cros_ec_register(ec_dev); > if (err) { > diff --git a/drivers/mfd/cros_ec_spi.c b/drivers/mfd/cros_ec_spi.c > index bf6e08e8013e..27bd52e5e8b7 100644 > --- a/drivers/mfd/cros_ec_spi.c > +++ b/drivers/mfd/cros_ec_spi.c > @@ -363,7 +363,6 @@ static int cros_ec_spi_probe(struct spi_device *spi) > ec_dev->cmd_xfer = cros_ec_cmd_xfer_spi; > ec_dev->ec_name = ec_spi->spi->modalias; > ec_dev->phys_name = dev_name(&ec_spi->spi->dev); > - ec_dev->parent = &ec_spi->spi->dev; > ec_dev->din_size = EC_MSG_BYTES + EC_MSG_PREAMBLE_COUNT; > ec_dev->dout_size = EC_MSG_BYTES; > > diff --git a/drivers/platform/chrome/cros_ec_lpc.c b/drivers/platform/chrome/cros_ec_lpc.c > index 8f9ac4d7bbd0..860310513cf0 100644 > --- a/drivers/platform/chrome/cros_ec_lpc.c > +++ b/drivers/platform/chrome/cros_ec_lpc.c > @@ -214,7 +214,6 @@ static int cros_ec_lpc_probe(struct platform_device *pdev) > ec_dev->dev = dev; > ec_dev->ec_name = pdev->name; > ec_dev->phys_name = dev_name(dev); > - ec_dev->parent = dev; > ec_dev->cmd_xfer = cros_ec_cmd_xfer_lpc; > ec_dev->cmd_readmem = cros_ec_lpc_readmem; > > diff --git a/include/linux/mfd/cros_ec.h b/include/linux/mfd/cros_ec.h > index 324a34683971..14cf522123dd 100644 > --- a/include/linux/mfd/cros_ec.h > +++ b/include/linux/mfd/cros_ec.h > @@ -85,7 +85,6 @@ struct cros_ec_command { > * to using dword. > * @din_size: size of din buffer to allocate (zero to use static din) > * @dout_size: size of dout buffer to allocate (zero to use static dout) > - * @parent: pointer to parent device (e.g. i2c or spi device) > * @wake_enabled: true if this device can wake the system from sleep > * @cmd_xfer: send command to EC and get response > * Returns the number of bytes received if the communication succeeded, but > @@ -113,7 +112,6 @@ struct cros_ec_device { > uint8_t *dout; > int din_size; > int dout_size; > - struct device *parent; > bool wake_enabled; > int (*cmd_xfer)(struct cros_ec_device *ec, > struct cros_ec_command *msg); -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/2] mfd: cros_ec: Instantiate sub-devices from device tree 2015-05-20 9:31 [PATCH 0/2] mfd: cros_ec: Small cleanups Javier Martinez Canillas 2015-05-20 9:31 ` [PATCH 1/2] mfd: cros_ec: Remove parent field Javier Martinez Canillas @ 2015-05-20 9:31 ` Javier Martinez Canillas 2015-05-20 11:30 ` Lee Jones 1 sibling, 1 reply; 5+ messages in thread From: Javier Martinez Canillas @ 2015-05-20 9:31 UTC (permalink / raw) To: Lee Jones Cc: Samuel Ortiz, Olof Johansson, Doug Anderson, Bill Richardson, Simon Glass, Gwendal Grignou, Stephen Barber, Filipe Brandenburger, Todd Broch, Alexandru M Stan, Heiko Stuebner, linux-kernel, Javier Martinez Canillas From: Todd Broch <tbroch@chromium.org> If the EC device tree node has sub-nodes, try to instantiate them as MFD sub-devices. We can configure the EC features provided by the board. Signed-off-by: Todd Broch <tbroch@chromium.org> Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> Tested-by: Heiko Stuebner <heiko@sntech.de> Reviewed-by: Gwendal Grignou <gwendal@chromium.org> Tested-by: Gwendal Grignou <gwendal@chromium.org> Acked-by: Lee Jones <lee.jones@linaro.org> --- Changes since v2: - Added Lee Jones Acked-by tag. Changes since v1: - Added Heiko Stuebner and Gwendal Grignou Tested-by tag - Added Gwendal Grignou Reviewed-by tag - Use automatic device ID instead of 1 as suggested by Lee Jones - Remove #ifdeffery and check for of_node to register sub-devices Suggested by Lee Jones --- drivers/mfd/cros_ec.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/mfd/cros_ec.c b/drivers/mfd/cros_ec.c index c4aecc6f8373..1574a9352a6d 100644 --- a/drivers/mfd/cros_ec.c +++ b/drivers/mfd/cros_ec.c @@ -17,6 +17,7 @@ * battery charging and regulator control, firmware update. */ +#include <linux/of_platform.h> #include <linux/interrupt.h> #include <linux/slab.h> #include <linux/module.h> @@ -109,18 +110,8 @@ EXPORT_SYMBOL(cros_ec_cmd_xfer); static const struct mfd_cell cros_devs[] = { { - .name = "cros-ec-keyb", - .id = 1, - .of_compatible = "google,cros-ec-keyb", - }, - { - .name = "cros-ec-i2c-tunnel", - .id = 2, - .of_compatible = "google,cros-ec-i2c-tunnel", - }, - { .name = "cros-ec-ctl", - .id = 3, + .id = PLATFORM_DEVID_AUTO, }, }; @@ -150,6 +141,15 @@ int cros_ec_register(struct cros_ec_device *ec_dev) return err; } + if (IS_ENABLED(CONFIG_OF) && dev->of_node) { + err = of_platform_populate(dev->of_node, NULL, NULL, dev); + if (err) { + mfd_remove_devices(dev); + dev_err(dev, "Failed to register sub-devices\n"); + return err; + } + } + dev_info(dev, "Chrome EC device registered\n"); return 0; -- 2.1.4 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] mfd: cros_ec: Instantiate sub-devices from device tree 2015-05-20 9:31 ` [PATCH 2/2] mfd: cros_ec: Instantiate sub-devices from device tree Javier Martinez Canillas @ 2015-05-20 11:30 ` Lee Jones 0 siblings, 0 replies; 5+ messages in thread From: Lee Jones @ 2015-05-20 11:30 UTC (permalink / raw) To: Javier Martinez Canillas Cc: Samuel Ortiz, Olof Johansson, Doug Anderson, Bill Richardson, Simon Glass, Gwendal Grignou, Stephen Barber, Filipe Brandenburger, Todd Broch, Alexandru M Stan, Heiko Stuebner, linux-kernel On Wed, 20 May 2015, Javier Martinez Canillas wrote: > From: Todd Broch <tbroch@chromium.org> > > If the EC device tree node has sub-nodes, try to instantiate them as > MFD sub-devices. We can configure the EC features provided by the board. > > Signed-off-by: Todd Broch <tbroch@chromium.org> > Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> > Tested-by: Heiko Stuebner <heiko@sntech.de> > Reviewed-by: Gwendal Grignou <gwendal@chromium.org> > Tested-by: Gwendal Grignou <gwendal@chromium.org> > Acked-by: Lee Jones <lee.jones@linaro.org> > --- > > Changes since v2: > - Added Lee Jones Acked-by tag. > > Changes since v1: > - Added Heiko Stuebner and Gwendal Grignou Tested-by tag > - Added Gwendal Grignou Reviewed-by tag > - Use automatic device ID instead of 1 as suggested by Lee Jones > - Remove #ifdeffery and check for of_node to register sub-devices > Suggested by Lee Jones > --- > drivers/mfd/cros_ec.c | 22 +++++++++++----------- > 1 file changed, 11 insertions(+), 11 deletions(-) Applied, thanks. > diff --git a/drivers/mfd/cros_ec.c b/drivers/mfd/cros_ec.c > index c4aecc6f8373..1574a9352a6d 100644 > --- a/drivers/mfd/cros_ec.c > +++ b/drivers/mfd/cros_ec.c > @@ -17,6 +17,7 @@ > * battery charging and regulator control, firmware update. > */ > > +#include <linux/of_platform.h> > #include <linux/interrupt.h> > #include <linux/slab.h> > #include <linux/module.h> > @@ -109,18 +110,8 @@ EXPORT_SYMBOL(cros_ec_cmd_xfer); > > static const struct mfd_cell cros_devs[] = { > { > - .name = "cros-ec-keyb", > - .id = 1, > - .of_compatible = "google,cros-ec-keyb", > - }, > - { > - .name = "cros-ec-i2c-tunnel", > - .id = 2, > - .of_compatible = "google,cros-ec-i2c-tunnel", > - }, > - { > .name = "cros-ec-ctl", > - .id = 3, > + .id = PLATFORM_DEVID_AUTO, > }, > }; > > @@ -150,6 +141,15 @@ int cros_ec_register(struct cros_ec_device *ec_dev) > return err; > } > > + if (IS_ENABLED(CONFIG_OF) && dev->of_node) { > + err = of_platform_populate(dev->of_node, NULL, NULL, dev); > + if (err) { > + mfd_remove_devices(dev); > + dev_err(dev, "Failed to register sub-devices\n"); > + return err; > + } > + } > + > dev_info(dev, "Chrome EC device registered\n"); > > return 0; -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-05-20 11:30 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-05-20 9:31 [PATCH 0/2] mfd: cros_ec: Small cleanups Javier Martinez Canillas 2015-05-20 9:31 ` [PATCH 1/2] mfd: cros_ec: Remove parent field Javier Martinez Canillas 2015-05-20 11:30 ` Lee Jones 2015-05-20 9:31 ` [PATCH 2/2] mfd: cros_ec: Instantiate sub-devices from device tree Javier Martinez Canillas 2015-05-20 11:30 ` Lee Jones
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.