Re: [RFC PATCH 00/10] Netronix embedded controller driver for Kobo and Tolino ebook readers
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
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
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
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
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
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
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