Re: [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers

2020-07-06 Thread Andreas Kemnade
On Sat, 4 Jul 2020 22:58:08 +0200
Jonathan Neuschäfer  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  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 21a.i2c:embedded-controller@43:rtc: 
> > > > registered as rtc0
> > > > [   10.775276] ntxec-pwm: probe of 
> > > > 21a.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


Re: [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers

2020-07-04 Thread Jonathan Neuschäfer
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  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 21a.i2c:embedded-controller@43:rtc: 
> > > registered as rtc0
> > > [   10.775276] ntxec-pwm: probe of 21a.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


signature.asc
Description: PGP signature


Re: [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers

2020-06-30 Thread Andreas Kemnade
On Tue, 30 Jun 2020 09:15:23 +0200
Jonathan Neuschäfer  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 21a.i2c:embedded-controller@43:rtc: registered 
> > as rtc0
> > [   10.775276] ntxec-pwm: probe of 21a.i2c:embedded-controller@43:pwm 
> > failed with error -5  
> 
> Hmm, -EIO from the PWM driver.
> 
turing debugging on:

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

Regards,
Andreas


Re: [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers

2020-06-30 Thread Andreas Kemnade
On Tue, 30 Jun 2020 09:15:23 +0200
Jonathan Neuschäfer  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 21a.i2c:embedded-controller@43:rtc: registered 
> > as rtc0
> > [   10.775276] ntxec-pwm: probe of 21a.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 0x 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


Re: [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers

2020-06-30 Thread Jonathan Neuschäfer
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 21a.i2c:embedded-controller@43:rtc: registered 
> as rtc0
> [   10.775276] ntxec-pwm: probe of 21a.i2c:embedded-controller@43:pwm 
> failed with error -5

Hmm, -EIO from the PWM driver.

> [   10.850597] ntxec-rtc 21a.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


signature.asc
Description: PGP signature


Re: [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers

2020-06-30 Thread Andreas Kemnade
Hi,

On Sun, 21 Jun 2020 00:39:04 +0200
Jonathan Neuschäfer  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 21a.i2c:embedded-controller@43:rtc: registered as 
rtc0
[   10.775276] ntxec-pwm: probe of 21a.i2c:embedded-controller@43:pwm 
failed with error -5
[   10.850597] ntxec-rtc 21a.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?

 {
pinctrl-names = "default","sleep";
pinctrl-0 = <_i2c1>;
pinctrl-1 = <_i2c1_sleep>;
status = "okay";

embedded-controller@43 {
//  pinctrl-names = "default";
//  pinctrl-0 = <_ec>;
compatible = "netronix,ntxec";
reg = <0x43>;
interrupts-extended = < 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


[RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers

2020-06-20 Thread Jonathan Neuschäfer
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