Re: [PATCH v4 3/7] misc: Add cros_ec_lpc driver for x86 devices
Hello, On 01/30/2015 01:51 PM, Javier Martinez Canillas wrote: > On 01/29/2015 10:11 PM, Paul Bolle wrote: >>> + help >>> + If you say Y here, you get support for talking to the ChromeOS EC >>> + over an LPC bus. This uses a simple byte-level protocol with a >>> + checksum. This is used for userspace access only. The kernel >>> + typically has its own communication methods. >>> + >> >> What happens when you say M? >> > > Since it is a tristate kconfig symbol, it can be built as a kernel module > but since there isn't a LPC subsystem, the platform device is registered > in the module_init() function. So, building as a module is trickier since > there won't be an uevent that can trigger a module auto-load based on the > modinfo aliases information. > FYI, I noticed that other x86 platform drivers use the dmi system information to fill dmi modaliases so the modules are auto-loaded. So I did the same and posted a new version 5 [0] of this series. Best regards, Javier [0]: https://lkml.org/lkml/2015/2/2/214 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v4 3/7] misc: Add cros_ec_lpc driver for x86 devices
Hello, On 01/30/2015 01:51 PM, Javier Martinez Canillas wrote: On 01/29/2015 10:11 PM, Paul Bolle wrote: + help + If you say Y here, you get support for talking to the ChromeOS EC + over an LPC bus. This uses a simple byte-level protocol with a + checksum. This is used for userspace access only. The kernel + typically has its own communication methods. + What happens when you say M? Since it is a tristate kconfig symbol, it can be built as a kernel module but since there isn't a LPC subsystem, the platform device is registered in the module_init() function. So, building as a module is trickier since there won't be an uevent that can trigger a module auto-load based on the modinfo aliases information. FYI, I noticed that other x86 platform drivers use the dmi system information to fill dmi modaliases so the modules are auto-loaded. So I did the same and posted a new version 5 [0] of this series. Best regards, Javier [0]: https://lkml.org/lkml/2015/2/2/214 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v4 3/7] misc: Add cros_ec_lpc driver for x86 devices
Hello Paul, Thanks a lot for your feedback. On 01/29/2015 10:11 PM, Paul Bolle wrote: >> >> +config CROS_EC_LPC >> +tristate "ChromeOS Embedded Controller (LPC)" >> +depends on MFD_CROS_EC >> + > > Please drop this empty line. > Ok. >> +help >> + If you say Y here, you get support for talking to the ChromeOS EC >> + over an LPC bus. This uses a simple byte-level protocol with a >> + checksum. This is used for userspace access only. The kernel >> + typically has its own communication methods. >> + > > What happens when you say M? > Since it is a tristate kconfig symbol, it can be built as a kernel module but since there isn't a LPC subsystem, the platform device is registered in the module_init() function. So, building as a module is trickier since there won't be an uevent that can trigger a module auto-load based on the modinfo aliases information. One can of course force udev to load the module by adding to modules.conf or such but I wonder if is better to change from tristate to boolean or add to the help that it can be built as a module but auto-load does not work in that case. Best regards, Javier -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v4 3/7] misc: Add cros_ec_lpc driver for x86 devices
Hello Paul, Thanks a lot for your feedback. On 01/29/2015 10:11 PM, Paul Bolle wrote: +config CROS_EC_LPC +tristate ChromeOS Embedded Controller (LPC) +depends on MFD_CROS_EC + Please drop this empty line. Ok. +help + If you say Y here, you get support for talking to the ChromeOS EC + over an LPC bus. This uses a simple byte-level protocol with a + checksum. This is used for userspace access only. The kernel + typically has its own communication methods. + What happens when you say M? Since it is a tristate kconfig symbol, it can be built as a kernel module but since there isn't a LPC subsystem, the platform device is registered in the module_init() function. So, building as a module is trickier since there won't be an uevent that can trigger a module auto-load based on the modinfo aliases information. One can of course force udev to load the module by adding to modules.conf or such but I wonder if is better to change from tristate to boolean or add to the help that it can be built as a module but auto-load does not work in that case. Best regards, Javier -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v4 3/7] misc: Add cros_ec_lpc driver for x86 devices
Javier, Trivial nits below. On Thu, 2015-01-29 at 14:37 +0100, Javier Martinez Canillas wrote: > From: Bill Richardson > > Chromebooks have an Embedded Controller (EC) that is used to > implement various functions such as keyboard, power and battery. > > The AP can communicate with the EC through different bus types > such as I2C, SPI or LPC. > > The cros_ec mfd driver is then composed of a core driver that > register the sub-devices as mfd cells and provide a high level > communication interface that is used by the rest of the kernel > and bus specific interfaces modules. > > Each connection method then has its own driver, which register > with the EC driver interface-agnostic interface. > > Currently, there are drivers to communicate with the EC over > I2C and SPI and this driver adds support for LPC. > > Signed-off-by: Bill Richardson > Signed-off-by: Javier Martinez Canillas > [...] > drivers/misc/Kconfig | 10 ++ > drivers/misc/Makefile | 1 + > drivers/misc/cros_ec_lpc.c | 291 > + > 3 files changed, 302 insertions(+) > create mode 100644 drivers/misc/cros_ec_lpc.c > > diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig > index 006242c8bca0..142393e84a43 100644 > --- a/drivers/misc/Kconfig > +++ b/drivers/misc/Kconfig > @@ -515,6 +515,16 @@ config VEXPRESS_SYSCFG > bus. System Configuration interface is one of the possible means > of generating transactions on this bus. > > +config CROS_EC_LPC > + tristate "ChromeOS Embedded Controller (LPC)" > + depends on MFD_CROS_EC > + Please drop this empty line. > + help > + If you say Y here, you get support for talking to the ChromeOS EC > + over an LPC bus. This uses a simple byte-level protocol with a > + checksum. This is used for userspace access only. The kernel > + typically has its own communication methods. > + What happens when you say M? > source "drivers/misc/c2port/Kconfig" > source "drivers/misc/eeprom/Kconfig" > source "drivers/misc/cb710/Kconfig" Paul Bolle -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v4 3/7] misc: Add cros_ec_lpc driver for x86 devices
On Thu, Jan 29, 2015 at 7:07 PM, Javier Martinez Canillas wrote: > From: Bill Richardson > > Chromebooks have an Embedded Controller (EC) that is used to > implement various functions such as keyboard, power and battery. > > The AP can communicate with the EC through different bus types > such as I2C, SPI or LPC. > > The cros_ec mfd driver is then composed of a core driver that > register the sub-devices as mfd cells and provide a high level > communication interface that is used by the rest of the kernel > and bus specific interfaces modules. > > Each connection method then has its own driver, which register > with the EC driver interface-agnostic interface. > > Currently, there are drivers to communicate with the EC over > I2C and SPI and this driver adds support for LPC. > > Signed-off-by: Bill Richardson > Signed-off-by: Javier Martinez Canillas > --- > > Changes since v3: > - Rename MYNAME to DRV_NAME > - Use devm_request_region() instead of request_region. >Suggested by Varka Bhadram. > - Remove release_region from cleanup handle logic by using devres API. >Suggested by Varka Bhadram. > - Use {dev,pr}_err() instead of {dev,pr}_warn() to log errors. > Addressed all of my comments... Thanks Reviewed-by: Varka Bhadram -- Regards, Varka Bhadram. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v4 3/7] misc: Add cros_ec_lpc driver for x86 devices
On Thu, Jan 29, 2015 at 7:07 PM, Javier Martinez Canillas javier.marti...@collabora.co.uk wrote: From: Bill Richardson wfric...@chromium.org Chromebooks have an Embedded Controller (EC) that is used to implement various functions such as keyboard, power and battery. The AP can communicate with the EC through different bus types such as I2C, SPI or LPC. The cros_ec mfd driver is then composed of a core driver that register the sub-devices as mfd cells and provide a high level communication interface that is used by the rest of the kernel and bus specific interfaces modules. Each connection method then has its own driver, which register with the EC driver interface-agnostic interface. Currently, there are drivers to communicate with the EC over I2C and SPI and this driver adds support for LPC. Signed-off-by: Bill Richardson wfric...@chromium.org Signed-off-by: Javier Martinez Canillas javier.marti...@collabora.co.uk --- Changes since v3: - Rename MYNAME to DRV_NAME - Use devm_request_region() instead of request_region. Suggested by Varka Bhadram. - Remove release_region from cleanup handle logic by using devres API. Suggested by Varka Bhadram. - Use {dev,pr}_err() instead of {dev,pr}_warn() to log errors. Addressed all of my comments... Thanks Reviewed-by: Varka Bhadram varkabhad...@gmail.com -- Regards, Varka Bhadram. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v4 3/7] misc: Add cros_ec_lpc driver for x86 devices
Javier, Trivial nits below. On Thu, 2015-01-29 at 14:37 +0100, Javier Martinez Canillas wrote: From: Bill Richardson wfric...@chromium.org Chromebooks have an Embedded Controller (EC) that is used to implement various functions such as keyboard, power and battery. The AP can communicate with the EC through different bus types such as I2C, SPI or LPC. The cros_ec mfd driver is then composed of a core driver that register the sub-devices as mfd cells and provide a high level communication interface that is used by the rest of the kernel and bus specific interfaces modules. Each connection method then has its own driver, which register with the EC driver interface-agnostic interface. Currently, there are drivers to communicate with the EC over I2C and SPI and this driver adds support for LPC. Signed-off-by: Bill Richardson wfric...@chromium.org Signed-off-by: Javier Martinez Canillas javier.marti...@collabora.co.uk [...] drivers/misc/Kconfig | 10 ++ drivers/misc/Makefile | 1 + drivers/misc/cros_ec_lpc.c | 291 + 3 files changed, 302 insertions(+) create mode 100644 drivers/misc/cros_ec_lpc.c diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig index 006242c8bca0..142393e84a43 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig @@ -515,6 +515,16 @@ config VEXPRESS_SYSCFG bus. System Configuration interface is one of the possible means of generating transactions on this bus. +config CROS_EC_LPC + tristate ChromeOS Embedded Controller (LPC) + depends on MFD_CROS_EC + Please drop this empty line. + help + If you say Y here, you get support for talking to the ChromeOS EC + over an LPC bus. This uses a simple byte-level protocol with a + checksum. This is used for userspace access only. The kernel + typically has its own communication methods. + What happens when you say M? source drivers/misc/c2port/Kconfig source drivers/misc/eeprom/Kconfig source drivers/misc/cb710/Kconfig Paul Bolle -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/