linux-rtc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers
@ 2020-06-20 22:39 Jonathan Neuschäfer
  2020-06-20 22:39 ` [RFC PATCH 01/10] DT bindings in plain text format Jonathan Neuschäfer
  2020-06-30  6:40 ` [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers Andreas Kemnade
  0 siblings, 2 replies; 10+ messages in thread
From: Jonathan Neuschäfer @ 2020-06-20 22:39 UTC (permalink / raw)
  To: linux-kernel
  Cc: Lee Jones, Rob Herring, Jonathan Neuschäfer, Thierry Reding,
	Uwe Kleine-König, Alessandro Zummo, Alexandre Belloni,
	Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	NXP Linux Team, Sam Ravnborg, Linus Walleij, Heiko Stuebner,
	Stephan Gerhold, Lubomir Rintel, Mark Brown, allen,
	Mauro Carvalho Chehab, David S. Miller, devicetree, linux-pwm,
	linux-rtc, linux-arm-kernel, Heiko Stuebner, Josua Mayer,
	Andreas Kemnade

Hi,

This patchset adds basic support for the embedded controller found on
older ebook reader boards designed by/with the ODM Netronix Inc.[1] and
sold by Kobo or Tolino, for example the Kobo Aura and the Tolino Shine.
These drivers are based on the vendor kernel sources, but in order to
all information in a single place, I documented the register interface
of the EC on GitHub[4].

A few things still needs to be ironed out, hence the RFC tag:
 - The reboot/reset handler in patch 3/10 calls into I2C code, which may
   sleep, but reboot handlers are apparently not allowed to sleep.
 - I'm not sure I got the YAML DT bindings right. I have also included
   the plain text DT bindings for reference.


Jonathan

[1]: http://www.netronixinc.com/products.aspx?ID=1
[2]: https://github.com/neuschaefer/linux/wiki/Netronix-MSP430-embedded-controller

Jonathan Neuschäfer (10):
  DT bindings in plain text format
  dt-bindings: Add vendor prefix for Netronix, Inc.
  dt-bindings: mfd: Add binding for Netronix's embedded controller
  mfd: Add base driver for Netronix embedded controller
  dt-bindings: pwm: Add bindings for PWM function in Netronix EC
  pwm: ntxec: Add driver for PWM function in Netronix EC
  dt-bindings: rtc: Add bindings for Netronix embedded controller RTC
  rtc: New driver for RTC in Netronix embedded controller
  MAINTAINERS: Add entry for Netronix embedded controller
  ARM: dts: imx50-kobo-aura: Add Netronix embedded controller

 .../bindings/mfd/netronix,ntxec.txt           |  58 ++++++
 .../bindings/mfd/netronix,ntxec.yaml          |  77 +++++++
 .../bindings/pwm/netronix,ntxec-pwm.txt       |  27 +++
 .../bindings/pwm/netronix,ntxec-pwm.yaml      |  33 +++
 .../bindings/rtc/netronix,ntxec-rtc.txt       |  17 ++
 .../bindings/rtc/netronix,ntxec-rtc.yaml      |  27 +++
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 MAINTAINERS                                   |  11 +
 arch/arm/boot/dts/imx50-kobo-aura.dts         |  27 ++-
 drivers/mfd/Kconfig                           |   7 +
 drivers/mfd/Makefile                          |   1 +
 drivers/mfd/ntxec.c                           | 188 ++++++++++++++++++
 drivers/pwm/Kconfig                           |   4 +
 drivers/pwm/Makefile                          |   1 +
 drivers/pwm/pwm-ntxec.c                       | 148 ++++++++++++++
 drivers/rtc/Kconfig                           |   4 +
 drivers/rtc/Makefile                          |   1 +
 drivers/rtc/rtc-ntxec.c                       | 115 +++++++++++
 include/linux/mfd/ntxec.h                     |  30 +++
 19 files changed, 777 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/mfd/netronix,ntxec.txt
 create mode 100644 Documentation/devicetree/bindings/mfd/netronix,ntxec.yaml
 create mode 100644 Documentation/devicetree/bindings/pwm/netronix,ntxec-pwm.txt
 create mode 100644 Documentation/devicetree/bindings/pwm/netronix,ntxec-pwm.yaml
 create mode 100644 Documentation/devicetree/bindings/rtc/netronix,ntxec-rtc.txt
 create mode 100644 Documentation/devicetree/bindings/rtc/netronix,ntxec-rtc.yaml
 create mode 100644 drivers/mfd/ntxec.c
 create mode 100644 drivers/pwm/pwm-ntxec.c
 create mode 100644 drivers/rtc/rtc-ntxec.c
 create mode 100644 include/linux/mfd/ntxec.h

--
2.27.0


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [RFC PATCH 01/10] DT bindings in plain text format
  2020-06-20 22:39 [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers Jonathan Neuschäfer
@ 2020-06-20 22:39 ` Jonathan Neuschäfer
  2020-06-22 10:32   ` Lee Jones
  2020-06-30  6:40 ` [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers Andreas Kemnade
  1 sibling, 1 reply; 10+ messages in thread
From: Jonathan Neuschäfer @ 2020-06-20 22:39 UTC (permalink / raw)
  To: linux-kernel
  Cc: Lee Jones, Rob Herring, Jonathan Neuschäfer, Thierry Reding,
	Uwe Kleine-König, Alessandro Zummo, Alexandre Belloni,
	Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	NXP Linux Team, Sam Ravnborg, Linus Walleij, Heiko Stuebner,
	Stephan Gerhold, Lubomir Rintel, Mark Brown, allen,
	Mauro Carvalho Chehab, David S. Miller, devicetree, linux-pwm,
	linux-rtc, linux-arm-kernel, Heiko Stuebner, Josua Mayer,
	Andreas Kemnade

For reference, here are the devicetree bindings in plaintext format.
(Not for merge.)

Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
---
 .../bindings/mfd/netronix,ntxec.txt           | 58 +++++++++++++++++++
 .../bindings/pwm/netronix,ntxec-pwm.txt       | 27 +++++++++
 .../bindings/rtc/netronix,ntxec-rtc.txt       | 17 ++++++
 3 files changed, 102 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mfd/netronix,ntxec.txt
 create mode 100644 Documentation/devicetree/bindings/pwm/netronix,ntxec-pwm.txt
 create mode 100644 Documentation/devicetree/bindings/rtc/netronix,ntxec-rtc.txt

diff --git a/Documentation/devicetree/bindings/mfd/netronix,ntxec.txt b/Documentation/devicetree/bindings/mfd/netronix,ntxec.txt
new file mode 100644
index 0000000000000..e303932657999
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/netronix,ntxec.txt
@@ -0,0 +1,58 @@
+Netronix Embedded Controller
+
+This EC is found in e-book readers of multiple brands (e.g. Kobo, Tolino), and
+is typically implemented as a TI MSP430 microcontroller.
+
+
+Required properties:
+- compatible: should be "netronix,ntxec"
+- reg: The I2C address of the EC
+
+Optional properties:
+- system-power-controller:
+  See Documentation/devicetree/bindings/power/power-controller.txt
+- interrupts or interrupts-extended
+- interrupt-controller
+- #interrupt-cells: Should be 1
+
+Optional subnodes:
+
+Sub-nodes are identified by their compatible string.
+
+ compatible string              | description
+--------------------------------|--------------------------------------
+ netronix,ntxec-pwm             | PWM (used for backlight)
+ netronix,ntxec-rtc             | real time clock
+
+
+Example:
+
+&i2c3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c3>;
+	status = "okay";
+
+	ec: embedded-controller@43 {
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_ntxec>;
+
+		compatible = "netronix,ntxec";
+		reg = <0x43>;
+		system-power-controller;
+		interrupt-parent = <&gpio4>;
+		interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
+		interrupt-controller;
+		#interrupt-cells = <1>;
+
+		pwm {
+			compatible = "netronix,ntxec-pwm";
+			#pwm-cells = <1>;
+		};
+
+		rtc {
+			compatible = "netronix,ntxec-rtc";
+			interrupts-extended = <&ec 15>;
+			interrupt-names = "alarm";
+		};
+	};
+};
diff --git a/Documentation/devicetree/bindings/pwm/netronix,ntxec-pwm.txt b/Documentation/devicetree/bindings/pwm/netronix,ntxec-pwm.txt
new file mode 100644
index 0000000000000..50be27f82559e
--- /dev/null
+++ b/Documentation/devicetree/bindings/pwm/netronix,ntxec-pwm.txt
@@ -0,0 +1,27 @@
+PWM functionality in Netronix Embedded Controller
+
+Required properties:
+- compatible: should be "netronix,ntxec-pwm"
+- #pwm-cells: should be 1.
+
+Available PWM channels:
+- 0: The PWM channel controlled by registers 0xa1-0xa7
+
+Example:
+
+	embedded-controller@43 {
+		compatible = "netronix,ntxec";
+		...
+
+		ec_pwm: pwm {
+			compatible = "netronix,ntxec-pwm";
+			#pwm-cells = <1>;
+		};
+	};
+
+	...
+
+	backlight {
+		compatible = "pwm-backlight";
+		pwms = <&ec_pwm 0 50000>;
+	};
diff --git a/Documentation/devicetree/bindings/rtc/netronix,ntxec-rtc.txt b/Documentation/devicetree/bindings/rtc/netronix,ntxec-rtc.txt
new file mode 100644
index 0000000000000..0ef9e791b6a36
--- /dev/null
+++ b/Documentation/devicetree/bindings/rtc/netronix,ntxec-rtc.txt
@@ -0,0 +1,17 @@
+Netronix embedded controller RTC
+
+Required properties:
+
+- compatible: should be "netronix,ntxec-rtc"
+
+
+Example:
+
+	embedded-controller@43 {
+		compatible = "netronix,ntxec";
+		...
+
+		rtc {
+			compatible = "netronix,ntxec-rtc";
+		};
+	}
--
2.27.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH 01/10] DT bindings in plain text format
  2020-06-20 22:39 ` [RFC PATCH 01/10] DT bindings in plain text format Jonathan Neuschäfer
@ 2020-06-22 10:32   ` Lee Jones
  2020-06-27  0:07     ` Jonathan Neuschäfer
  0 siblings, 1 reply; 10+ messages in thread
From: Lee Jones @ 2020-06-22 10:32 UTC (permalink / raw)
  To: Jonathan Neuschäfer
  Cc: linux-kernel, Rob Herring, Thierry Reding, Uwe Kleine-König,
	Alessandro Zummo, Alexandre Belloni, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
	Sam Ravnborg, Linus Walleij, Heiko Stuebner, Stephan Gerhold,
	Lubomir Rintel, Mark Brown, allen, Mauro Carvalho Chehab,
	David S. Miller, devicetree, linux-pwm, linux-rtc,
	linux-arm-kernel, Heiko Stuebner, Josua Mayer, Andreas Kemnade

On Sun, 21 Jun 2020, Jonathan Neuschäfer wrote:

> For reference, here are the devicetree bindings in plaintext format.
> (Not for merge.)

This would be better placed inside the relevant patch(es), rather than
in a separate non-mergeable extra/superfluous patch.

> Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
> ---
>  .../bindings/mfd/netronix,ntxec.txt           | 58 +++++++++++++++++++
>  .../bindings/pwm/netronix,ntxec-pwm.txt       | 27 +++++++++
>  .../bindings/rtc/netronix,ntxec-rtc.txt       | 17 ++++++
>  3 files changed, 102 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/mfd/netronix,ntxec.txt
>  create mode 100644 Documentation/devicetree/bindings/pwm/netronix,ntxec-pwm.txt
>  create mode 100644 Documentation/devicetree/bindings/rtc/netronix,ntxec-rtc.txt

-- 
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH 01/10] DT bindings in plain text format
  2020-06-22 10:32   ` Lee Jones
@ 2020-06-27  0:07     ` Jonathan Neuschäfer
  0 siblings, 0 replies; 10+ messages in thread
From: Jonathan Neuschäfer @ 2020-06-27  0:07 UTC (permalink / raw)
  To: Lee Jones
  Cc: Jonathan Neuschäfer, linux-kernel, Rob Herring,
	Thierry Reding, Uwe Kleine-König, Alessandro Zummo,
	Alexandre Belloni, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
	Sam Ravnborg, Linus Walleij, Heiko Stuebner, Stephan Gerhold,
	Lubomir Rintel, Mark Brown, allen, Mauro Carvalho Chehab,
	David S. Miller, devicetree, linux-pwm, linux-rtc,
	linux-arm-kernel, Heiko Stuebner, Josua Mayer, Andreas Kemnade

[-- Attachment #1: Type: text/plain, Size: 701 bytes --]

On Mon, Jun 22, 2020 at 11:32:43AM +0100, Lee Jones wrote:
> On Sun, 21 Jun 2020, Jonathan Neuschäfer wrote:
> 
> > For reference, here are the devicetree bindings in plaintext format.
> > (Not for merge.)
> 
> This would be better placed inside the relevant patch(es), rather than
> in a separate non-mergeable extra/superfluous patch.

Ok, I'll put it in the patch descriptions (as long as the plaintext DT
bindings are relevant for review).

Thanks,
Jonathan Neuschäfer


> >  .../bindings/mfd/netronix,ntxec.txt           | 58 +++++++++++++++++++
> >  .../bindings/pwm/netronix,ntxec-pwm.txt       | 27 +++++++++
> >  .../bindings/rtc/netronix,ntxec-rtc.txt       | 17 ++++++

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers
  2020-06-20 22:39 [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers Jonathan Neuschäfer
  2020-06-20 22:39 ` [RFC PATCH 01/10] DT bindings in plain text format Jonathan Neuschäfer
@ 2020-06-30  6:40 ` Andreas Kemnade
  2020-06-30  7:15   ` Jonathan Neuschäfer
  1 sibling, 1 reply; 10+ messages in thread
From: Andreas Kemnade @ 2020-06-30  6:40 UTC (permalink / raw)
  To: Jonathan Neuschäfer
  Cc: linux-kernel, Lee Jones, Rob Herring, Thierry Reding,
	Uwe Kleine-König, Alessandro Zummo, Alexandre Belloni,
	Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	NXP Linux Team, Sam Ravnborg, Linus Walleij, Heiko Stuebner,
	Stephan Gerhold, Lubomir Rintel, Mark Brown, allen,
	Mauro Carvalho Chehab, David S. Miller, devicetree, linux-pwm,
	linux-rtc, linux-arm-kernel, Heiko Stuebner, Josua Mayer

Hi,

On Sun, 21 Jun 2020 00:39:04 +0200
Jonathan Neuschäfer <j.neuschaefer@gmx.net> wrote:

> Hi,
> 
> This patchset adds basic support for the embedded controller found on
> older ebook reader boards designed by/with the ODM Netronix Inc.[1] and
> sold by Kobo or Tolino, for example the Kobo Aura and the Tolino Shine.
> These drivers are based on the vendor kernel sources, but in order to
> all information in a single place, I documented the register interface
> of the EC on GitHub[4].
> 
> A few things still needs to be ironed out, hence the RFC tag:
>  - The reboot/reset handler in patch 3/10 calls into I2C code, which may
>    sleep, but reboot handlers are apparently not allowed to sleep.
>  - I'm not sure I got the YAML DT bindings right. I have also included
>    the plain text DT bindings for reference.
> 
> 
got a chance to test it on a Tolino Shine 2 HD.
It uses the RTC from the RC5T619 but backlight seems to go via MSP430
EC.

I got this.

[    1.453603] ntxec 0-0043: Netronix embedded controller version f110 detected.
[   10.723638] ntxec-rtc 21a0000.i2c:embedded-controller@43:rtc: registered as rtc0
[   10.775276] ntxec-pwm: probe of 21a0000.i2c:embedded-controller@43:pwm failed with error -5
[   10.850597] ntxec-rtc 21a0000.i2c:embedded-controller@43:rtc: hctosys: unable to read the hardware clock

version number matchess with what the vendor kernel reports. Maybe we
should document which version is running on which devices?

&i2c1 {
        pinctrl-names = "default","sleep";
        pinctrl-0 = <&pinctrl_i2c1>;
        pinctrl-1 = <&pinctrl_i2c1_sleep>;
        status = "okay";

        embedded-controller@43 {
//              pinctrl-names = "default";
//              pinctrl-0 = <&pinctrl_ec>;
                compatible = "netronix,ntxec";
                reg = <0x43>;
                interrupts-extended = <&gpio5 11 IRQ_TYPE_EDGE_FALLING>;
                interrupt-controller;
                #interrupt-cells = <1>;

                ec_pwm: pwm {
                        compatible = "netronix,ntxec-pwm";
                        #pwm-cells = <2>;
                };

                rtc {
                        compatible = "netronix,ntxec-rtc";
                };
        };
};

Regards,
Andreas

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers
  2020-06-30  6:40 ` [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers Andreas Kemnade
@ 2020-06-30  7:15   ` Jonathan Neuschäfer
  2020-06-30 19:22     ` Andreas Kemnade
  2020-06-30 20:14     ` Andreas Kemnade
  0 siblings, 2 replies; 10+ messages in thread
From: Jonathan Neuschäfer @ 2020-06-30  7:15 UTC (permalink / raw)
  To: Andreas Kemnade
  Cc: Jonathan Neuschäfer, linux-kernel, Lee Jones, Rob Herring,
	Thierry Reding, Uwe Kleine-König, Alessandro Zummo,
	Alexandre Belloni, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
	Sam Ravnborg, Linus Walleij, Heiko Stuebner, Stephan Gerhold,
	Lubomir Rintel, Mark Brown, allen, Mauro Carvalho Chehab,
	David S. Miller, devicetree, linux-pwm, linux-rtc,
	linux-arm-kernel, Heiko Stuebner, Josua Mayer

[-- Attachment #1: Type: text/plain, Size: 932 bytes --]

On Tue, Jun 30, 2020 at 08:40:51AM +0200, Andreas Kemnade wrote:
[...]
> got a chance to test it on a Tolino Shine 2 HD.
> It uses the RTC from the RC5T619 but backlight seems to go via MSP430
> EC.
> 
> I got this.
> 
> [    1.453603] ntxec 0-0043: Netronix embedded controller version f110 detected.
> [   10.723638] ntxec-rtc 21a0000.i2c:embedded-controller@43:rtc: registered as rtc0
> [   10.775276] ntxec-pwm: probe of 21a0000.i2c:embedded-controller@43:pwm failed with error -5

Hmm, -EIO from the PWM driver.

> [   10.850597] ntxec-rtc 21a0000.i2c:embedded-controller@43:rtc: hctosys: unable to read the hardware clock
> 
> version number matchess with what the vendor kernel reports. Maybe we
> should document which version is running on which devices?

Good idea, I've added a table to the wiki page:

  https://github.com/neuschaefer/linux/wiki/Netronix-MSP430-embedded-controller



Jonathan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers
  2020-06-30  7:15   ` Jonathan Neuschäfer
@ 2020-06-30 19:22     ` Andreas Kemnade
  2020-06-30 20:14     ` Andreas Kemnade
  1 sibling, 0 replies; 10+ messages in thread
From: Andreas Kemnade @ 2020-06-30 19:22 UTC (permalink / raw)
  To: Jonathan Neuschäfer
  Cc: linux-kernel, Lee Jones, Rob Herring, Thierry Reding,
	Uwe Kleine-König, Alessandro Zummo, Alexandre Belloni,
	Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	NXP Linux Team, Sam Ravnborg, Linus Walleij, Heiko Stuebner,
	Stephan Gerhold, Lubomir Rintel, Mark Brown, allen,
	Mauro Carvalho Chehab, David S. Miller, devicetree, linux-pwm,
	linux-rtc, linux-arm-kernel, Heiko Stuebner, Josua Mayer

On Tue, 30 Jun 2020 09:15:23 +0200
Jonathan Neuschäfer <j.neuschaefer@gmx.net> wrote:

> On Tue, Jun 30, 2020 at 08:40:51AM +0200, Andreas Kemnade wrote:
> [...]
> > got a chance to test it on a Tolino Shine 2 HD.
> > It uses the RTC from the RC5T619 but backlight seems to go via MSP430
> > EC.
> > 
> > I got this.
> > 
> > [    1.453603] ntxec 0-0043: Netronix embedded controller version f110 detected.
> > [   10.723638] ntxec-rtc 21a0000.i2c:embedded-controller@43:rtc: registered as rtc0
> > [   10.775276] ntxec-pwm: probe of 21a0000.i2c:embedded-controller@43:pwm failed with error -5  
> 
> Hmm, -EIO from the PWM driver.
>
Weird...
IOMUXC_SW_PAD_CTL_PAD_I2C1_SDA/SCL is identical between
vendor kernel (heavily patched 3.0.35) and patched mainline.
                        
MX6SL_PAD_I2C1_SCL__I2C1_SCL     0x4001f8b1
MX6SL_PAD_I2C1_SDA__I2C1_SDA     0x4001f8b1

root@tolino2:~# i2cset -f 0 0x43 0xa3 0x0001 w
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will write to device file /dev/i2c-0, chip address 0x43, data address
0xa3, data 0x01, mode word.
Continue? [Y/n] 
Error: Write failed
root@tolino2:~# i2cset -f 0 0x43 0xa3 0x0000 w
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will write to device file /dev/i2c-0, chip address 0x43, data address
0xa3, data 0x00, mode word.
Continue? [Y/n] 
Error: Write failed

but backlight gets toggled. Same behavior on vendor kernel and
in vendor uboot.
That smells.

Regards,
Andreas

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers
  2020-06-30  7:15   ` Jonathan Neuschäfer
  2020-06-30 19:22     ` Andreas Kemnade
@ 2020-06-30 20:14     ` Andreas Kemnade
  2020-07-04 20:58       ` Jonathan Neuschäfer
  1 sibling, 1 reply; 10+ messages in thread
From: Andreas Kemnade @ 2020-06-30 20:14 UTC (permalink / raw)
  To: Jonathan Neuschäfer
  Cc: linux-kernel, Lee Jones, Rob Herring, Thierry Reding,
	Uwe Kleine-König, Alessandro Zummo, Alexandre Belloni,
	Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	NXP Linux Team, Sam Ravnborg, Linus Walleij, Heiko Stuebner,
	Stephan Gerhold, Lubomir Rintel, Mark Brown, allen,
	Mauro Carvalho Chehab, David S. Miller, devicetree, linux-pwm,
	linux-rtc, linux-arm-kernel, Heiko Stuebner, Josua Mayer

On Tue, 30 Jun 2020 09:15:23 +0200
Jonathan Neuschäfer <j.neuschaefer@gmx.net> wrote:

> On Tue, Jun 30, 2020 at 08:40:51AM +0200, Andreas Kemnade wrote:
> [...]
> > got a chance to test it on a Tolino Shine 2 HD.
> > It uses the RTC from the RC5T619 but backlight seems to go via MSP430
> > EC.
> > 
> > I got this.
> > 
> > [    1.453603] ntxec 0-0043: Netronix embedded controller version f110 detected.
> > [   10.723638] ntxec-rtc 21a0000.i2c:embedded-controller@43:rtc: registered as rtc0
> > [   10.775276] ntxec-pwm: probe of 21a0000.i2c:embedded-controller@43:pwm failed with error -5  
> 
> Hmm, -EIO from the PWM driver.
> 
turing debugging on:

[  330.330599] i2c i2c-0: <i2c_imx_xfer_common>
[  330.330621] i2c i2c-0: <i2c_imx_start>
[  330.332927] i2c i2c-0: <i2c_imx_bus_busy>
[  330.332953] i2c i2c-0: <i2c_imx_xfer_common> transfer message: 0
[  330.332971] i2c i2c-0: <i2c_imx_write> write slave address: addr=0x86
[  330.334365] i2c i2c-0: <i2c_imx_trx_complete> TRX complete
[  330.334386] i2c i2c-0: <i2c_imx_acked> ACK received
[  330.334402] i2c i2c-0: <i2c_imx_write> write data
[  330.334420] i2c i2c-0: <i2c_imx_write> write byte: B0=0xA3
[  330.334756] i2c i2c-0: <i2c_imx_trx_complete> TRX complete
[  330.334774] i2c i2c-0: <i2c_imx_acked> ACK received
[  330.334790] i2c i2c-0: <i2c_imx_write> write byte: B1=0x0
[  330.351573] i2c i2c-0: <i2c_imx_trx_complete> TRX complete
[  330.351598] i2c i2c-0: <i2c_imx_acked> No ACK
[  330.351613] i2c i2c-0: <i2c_imx_stop>
[  330.351629] i2c i2c-0: <i2c_imx_bus_busy>
[  330.351648] i2c i2c-0: <i2c_imx_xfer_common> exit with: error: -6
[  330.351690] i2c i2c-0: <i2c_imx_xfer_common>
[  330.351704] i2c i2c-0: <i2c_imx_start>
[  330.352297] i2c i2c-0: <i2c_imx_bus_busy>
[  330.352321] i2c i2c-0: <i2c_imx_xfer_common> transfer message: 0
[  330.352339] i2c i2c-0: <i2c_imx_write> write slave address: addr=0x86
[  330.362152] i2c i2c-0: <i2c_imx_trx_complete> TRX complete
[  330.362176] i2c i2c-0: <i2c_imx_acked> ACK received
[  330.362191] i2c i2c-0: <i2c_imx_write> write data
[  330.362208] i2c i2c-0: <i2c_imx_write> write byte: B0=0xA1
[  330.362442] i2c i2c-0: <i2c_imx_trx_complete> TRX complete
[  330.362461] i2c i2c-0: <i2c_imx_acked> ACK received
[  330.362479] i2c i2c-0: <i2c_imx_write> write byte: B1=0xFF
[  330.362686] i2c i2c-0: <i2c_imx_trx_complete> TRX complete
[  330.362705] i2c i2c-0: <i2c_imx_acked> No ACK
[  330.362720] i2c i2c-0: <i2c_imx_stop>
[  330.362735] i2c i2c-0: <i2c_imx_bus_busy>
[  330.362753] i2c i2c-0: <i2c_imx_xfer_common> exit with: error: -6
[  330.362794] i2c i2c-0: <i2c_imx_xfer_common>
[  330.362808] i2c i2c-0: <i2c_imx_start>
[  330.363071] i2c i2c-0: <i2c_imx_bus_busy>
[  330.363094] i2c i2c-0: <i2c_imx_xfer_common> transfer message: 0
[  330.363112] i2c i2c-0: <i2c_imx_write> write slave address: addr=0x86
[  330.363313] i2c i2c-0: <i2c_imx_trx_complete> TRX complete
[  330.363331] i2c i2c-0: <i2c_imx_acked> ACK received
[  330.363346] i2c i2c-0: <i2c_imx_write> write data
[  330.363362] i2c i2c-0: <i2c_imx_write> write byte: B0=0xA2
[  330.363572] i2c i2c-0: <i2c_imx_trx_complete> TRX complete
[  330.363591] i2c i2c-0: <i2c_imx_acked> ACK received
[  330.363608] i2c i2c-0: <i2c_imx_write> write byte: B1=0xFF
[  330.363822] i2c i2c-0: <i2c_imx_trx_complete> TRX complete
[  330.363841] i2c i2c-0: <i2c_imx_acked> No ACK
[  330.363854] i2c i2c-0: <i2c_imx_stop>
[  330.363869] i2c i2c-0: <i2c_imx_bus_busy>
[  330.363886] i2c i2c-0: <i2c_imx_xfer_common> exit with: error: -6

Regards,
Andreas

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers
  2020-06-30 20:14     ` Andreas Kemnade
@ 2020-07-04 20:58       ` Jonathan Neuschäfer
  2020-07-06 19:28         ` Andreas Kemnade
  0 siblings, 1 reply; 10+ messages in thread
From: Jonathan Neuschäfer @ 2020-07-04 20:58 UTC (permalink / raw)
  To: Andreas Kemnade
  Cc: Jonathan Neuschäfer, linux-kernel, Lee Jones, Rob Herring,
	Thierry Reding, Uwe Kleine-König, Alessandro Zummo,
	Alexandre Belloni, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
	Sam Ravnborg, Linus Walleij, Heiko Stuebner, Stephan Gerhold,
	Lubomir Rintel, Mark Brown, allen, Mauro Carvalho Chehab,
	David S. Miller, devicetree, linux-pwm, linux-rtc,
	linux-arm-kernel, Heiko Stuebner, Josua Mayer

[-- Attachment #1: Type: text/plain, Size: 2039 bytes --]

On Tue, Jun 30, 2020 at 10:14:47PM +0200, Andreas Kemnade wrote:
> On Tue, 30 Jun 2020 09:15:23 +0200
> Jonathan Neuschäfer <j.neuschaefer@gmx.net> wrote:
> 
> > On Tue, Jun 30, 2020 at 08:40:51AM +0200, Andreas Kemnade wrote:
> > [...]
> > > got a chance to test it on a Tolino Shine 2 HD.
> > > It uses the RTC from the RC5T619 but backlight seems to go via MSP430
> > > EC.
> > > 
> > > I got this.
> > > 
> > > [    1.453603] ntxec 0-0043: Netronix embedded controller version f110 detected.
> > > [   10.723638] ntxec-rtc 21a0000.i2c:embedded-controller@43:rtc: registered as rtc0
> > > [   10.775276] ntxec-pwm: probe of 21a0000.i2c:embedded-controller@43:pwm failed with error -5  
> > 
> > Hmm, -EIO from the PWM driver.
> > 
> turing debugging on:

(edited for compactness:)
> [  330.332971] i2c i2c-0: write slave address: addr=0x86   ACK received
> [  330.334420] i2c i2c-0: write byte: B0=0xA3              ACK received
> [  330.334790] i2c i2c-0: write byte: B1=0x0               No ACK

> [  330.352339] i2c i2c-0: write slave address: addr=0x86   ACK received
> [  330.362208] i2c i2c-0: write byte: B0=0xA1              ACK received
> [  330.362479] i2c i2c-0: write byte: B1=0xFF              No ACK

> [  330.363112] i2c i2c-0: write slave address: addr=0x86   ACK received
> [  330.363362] i2c i2c-0: write byte: B0=0xA2              ACK received
> [  330.363608] i2c i2c-0: write byte: B1=0xFF              No ACK

Hmm, it doesn't ack the writes to 0xA3, 0xA1 and 0xA2, which should
disable the PWM output and then disable the auto-off timer (according to
the vendor kernel).

And you said in your other mail that you can actually toggle the light
with writes to 0xA3, so I suspect a bug in the EC firmware here (which
may have gone unnoticed because the vendor kernel doesn't check if the
i2c transfers succeed). :/

IMHO we should get this driver merged first, and perhaps add a quirk to
deal with the missing ACKs later (unless a better solution is found).


Jonathan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers
  2020-07-04 20:58       ` Jonathan Neuschäfer
@ 2020-07-06 19:28         ` Andreas Kemnade
  0 siblings, 0 replies; 10+ messages in thread
From: Andreas Kemnade @ 2020-07-06 19:28 UTC (permalink / raw)
  To: Jonathan Neuschäfer
  Cc: linux-kernel, Lee Jones, Rob Herring, Thierry Reding,
	Uwe Kleine-König, Alessandro Zummo, Alexandre Belloni,
	Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	NXP Linux Team, Sam Ravnborg, Linus Walleij, Heiko Stuebner,
	Stephan Gerhold, Lubomir Rintel, Mark Brown, allen,
	Mauro Carvalho Chehab, David S. Miller, devicetree, linux-pwm,
	linux-rtc, linux-arm-kernel, Heiko Stuebner, Josua Mayer

On Sat, 4 Jul 2020 22:58:08 +0200
Jonathan Neuschäfer <j.neuschaefer@gmx.net> wrote:

> On Tue, Jun 30, 2020 at 10:14:47PM +0200, Andreas Kemnade wrote:
> > On Tue, 30 Jun 2020 09:15:23 +0200
> > Jonathan Neuschäfer <j.neuschaefer@gmx.net> wrote:
> >   
> > > On Tue, Jun 30, 2020 at 08:40:51AM +0200, Andreas Kemnade wrote:
> > > [...]  
> > > > got a chance to test it on a Tolino Shine 2 HD.
> > > > It uses the RTC from the RC5T619 but backlight seems to go via MSP430
> > > > EC.
> > > > 
> > > > I got this.
> > > > 
> > > > [    1.453603] ntxec 0-0043: Netronix embedded controller version f110 detected.
> > > > [   10.723638] ntxec-rtc 21a0000.i2c:embedded-controller@43:rtc: registered as rtc0
> > > > [   10.775276] ntxec-pwm: probe of 21a0000.i2c:embedded-controller@43:pwm failed with error -5    
> > > 
> > > Hmm, -EIO from the PWM driver.
> > >   
> > turing debugging on:  
> 
> (edited for compactness:)
> > [  330.332971] i2c i2c-0: write slave address: addr=0x86   ACK received
> > [  330.334420] i2c i2c-0: write byte: B0=0xA3              ACK received
> > [  330.334790] i2c i2c-0: write byte: B1=0x0               No ACK  
> 
> > [  330.352339] i2c i2c-0: write slave address: addr=0x86   ACK received
> > [  330.362208] i2c i2c-0: write byte: B0=0xA1              ACK received
> > [  330.362479] i2c i2c-0: write byte: B1=0xFF              No ACK  
> 
> > [  330.363112] i2c i2c-0: write slave address: addr=0x86   ACK received
> > [  330.363362] i2c i2c-0: write byte: B0=0xA2              ACK received
> > [  330.363608] i2c i2c-0: write byte: B1=0xFF              No ACK  
> 
> Hmm, it doesn't ack the writes to 0xA3, 0xA1 and 0xA2, which should
> disable the PWM output and then disable the auto-off timer (according to
> the vendor kernel).
> 
> And you said in your other mail that you can actually toggle the light
> with writes to 0xA3, so I suspect a bug in the EC firmware here (which
> may have gone unnoticed because the vendor kernel doesn't check if the
> i2c transfers succeed). :/
> 
That is a also my theory.

> IMHO we should get this driver merged first, and perhaps add a quirk to
> deal with the missing ACKs later (unless a better solution is found).
> 
Yes, that can be done separately (after the Tolino Shine 2 HD dtb is
in, I am polishing it right now).

Regards,
Andreas

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2020-07-06 19:29 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-20 22:39 [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers Jonathan Neuschäfer
2020-06-20 22:39 ` [RFC PATCH 01/10] DT bindings in plain text format Jonathan Neuschäfer
2020-06-22 10:32   ` Lee Jones
2020-06-27  0:07     ` Jonathan Neuschäfer
2020-06-30  6:40 ` [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers Andreas Kemnade
2020-06-30  7:15   ` Jonathan Neuschäfer
2020-06-30 19:22     ` Andreas Kemnade
2020-06-30 20:14     ` Andreas Kemnade
2020-07-04 20:58       ` Jonathan Neuschäfer
2020-07-06 19:28         ` Andreas Kemnade

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).