Hi, just a little note what is going on here and why LetuxOS is involved. We think these type of e-book readers are really nice pieces of hardware to be supported by LetuxOS.
Andreas has bought a Kobo Clara and I have got a Tolino Shine 3 (there are IMHO other brand names as well) assuming they are identical (except branding). It is easy to snap-open the device and replace the µSD inside so keeping the original system safely and trying other things is easy. There is also an RS232 (3.3V level) interface for the console and I have soldered a cable with a connector to it so that I can plug it on demand and connect to an adapter for a FTDI cable. Unfortunately it turned out that despite exactly the same board designation there are two options for populating the processors. One is with i.MX6SL and the other with i.MX6SLL. These are pin-compatible, but not 100% functionally compatible. And worse, the published u-boot source for the Clara only supports the i.MX6SLL while the u-boot for the Shine only supports the i.MX6SL - but does not even work. Simply taking the i.MX6SLL does boot but the µSD is not readable. Therefore we have started an u-boot project aiming at building our own LetuxOS-U-Boot for all the E60K02 board variations: http://git.goldelico.com/?p=letux-uboot.git;a=shortlog;h=refs/heads/e60k02 Regarding the kernel, Andreas has started to upstream some patches and I plan start to integrate them with letux-5.4-rc1. Hope you appreciate and support this efforts. BR, Nikolaus > Am 27.09.2019 um 08:14 schrieb Andreas Kemnade <andr...@kemnade.info>: > > The Netronix board E60K02 can be found some several Ebook-Readers, > at least the Kobo Clara HD and the Tolino Shine 3. The board > is equipped with different SoCs. > > For now the following peripherals are included: > - LED > - Power Key > - Cover (gpio via hall sensor) > - RC5T619 PMIC (the kernel misses support for rtc and charger > subdevices). > - Backlight via lm3630a > - Wifi sdio chip detection (mmc-powerseq and stuff) > > It is based on vendor kernel but heavily reworked due to many > changed bindings. > > Signed-off-by: Andreas Kemnade <andr...@kemnade.info> > --- > backligt dependencies: > module autoloading: > https://patchwork.kernel.org/patch/11139987/ > enable-gpios property: > https://patchwork.kernel.org/patch/11143795/ > > arch/arm/boot/dts/e60k02.dtsi | 339 ++++++++++++++++++++++++++++++++++ > 1 file changed, 339 insertions(+) > create mode 100644 arch/arm/boot/dts/e60k02.dtsi > > diff --git a/arch/arm/boot/dts/e60k02.dtsi b/arch/arm/boot/dts/e60k02.dtsi > new file mode 100644 > index 000000000000..c4fa8e314e2e > --- /dev/null > +++ b/arch/arm/boot/dts/e60k02.dtsi > @@ -0,0 +1,339 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * Copyright 2019 Andreas Kemnade > + * based on works > + * Copyright 2016 Freescale Semiconductor, Inc. > + * and > + * Copyright (C) 2014 Ricoh Electronic Devices Co., Ltd > + * > + * Netronix E60K02 board common. > + * This board is equipped with different SoCs and > + * found in ebook-readers like the Kobo Clara HD (with i.MX6SLL) and > + * the Tolino Shine 3 (with i.MX6SL) > + */ > + > +/ { > + > + memory { > + reg = <0x80000000 0x80000000>; > + }; > + > + chosen { > + stdout-path = &uart1; > + }; > + > + wifi_pwrseq: wifi_pwrseq { > + compatible = "mmc-pwrseq-simple"; > + post-power-on-delay-ms = <20>; > + reset-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; > + }; > + > + regulators { > + compatible = "simple-bus"; > + #address-cells = <1>; > + #size-cells = <0>; > + > + reg_sd3_vmmc: wifi_regulator { > + compatible = "regulator-fixed"; > + regulator-name = "SD3_SPWR"; > + regulator-min-microvolt = <3000000>; > + regulator-max-microvolt = <3000000>; > + > + gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + > + }; > + }; > + > + leds { > + compatible = "gpio-leds"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_led>; > + > + GLED { > + gpios = <&gpio5 7 GPIO_ACTIVE_LOW>; > + linux,default-trigger = "timer"; > + }; > + }; > + > + gpio-keys { > + compatible = "gpio-keys"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_gpio_keys>; > + power { > + label = "Power"; > + gpios = <&gpio5 8 GPIO_ACTIVE_LOW>; > + linux,code = <KEY_POWER>; > + gpio-key,wakeup; > + }; > + cover { > + label = "Cover"; > + gpios = <&gpio5 12 GPIO_ACTIVE_LOW>; > + linux,code = <SW_LID>; > + linux,input-type = <0x05>; /* EV_SW */ > + gpio-key,wakeup; > + }; > + }; > + > +}; > + > + > + > +&audmux { > + pinctrl-names = "default"; > + status = "disabled"; > +}; > + > +&snvs_rtc { > + status = "disabled"; > +}; > + > +&i2c1 { > + clock-frequency = <100000>; > + pinctrl-names = "default","sleep"; > + pinctrl-0 = <&pinctrl_i2c1 &pinctrl_lm3630a_bl_gpio>; > + pinctrl-1 = <&pinctrl_i2c1_sleep>; > + status = "okay"; > + > + lm3630a: lm3630a-i2c@36 { > + reg = <0x36>; > + status = "ok"; > + > + compatible = "ti,lm3630a"; > + enable-gpios = <&gpio2 10 0>; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + led@0 { > + reg = <0>; > + led-sources = <0>; > + label = "backlight_warm"; > + default-brightness = <0>; > + max-brightness = <255>; > + }; > + > + led@1 { > + reg = <1>; > + led-sources = <1>; > + label = "backlight_cold"; > + default-brightness = <0>; > + max-brightness = <255>; > + }; > + > + }; > +}; > + > +&i2c3 { > + clock-frequency = <100000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_i2c3 &pinctrl_ricoh_gpio>; > + status = "okay"; > + > + ricoh619: ricoh619-i2c@32 { > + compatible = "ricoh,rc5t619"; > + reg = <0x32>; > + > + system-power-controller; > + gpios = <&gpio5 11 GPIO_ACTIVE_LOW>; > + gpio_chg = <&gpio5 15 GPIO_ACTIVE_LOW>; > + gpio_bat_low = <&gpio3 28 GPIO_ACTIVE_LOW>; > + }; > + > +}; > + > +&ricoh619 > +{ > + compatible = "ricoh,rc5t619"; > + > + regulators { > + ricoh619_dcdc1_reg: DCDC1 { > + regulator-name = "DCDC1"; > + regulator-min-microvolt = <300000>; > + regulator-max-microvolt = <1875000>; > + regulator-always-on; > + regulator-boot-on; > + regulator-state-mem { > + regulator-on-in-suspend; > + regulator-suspend-microvolt = <900000>; > + }; > + }; > + > + /* Core3_3V3 */ > + ricoh619_dcdc2_reg: DCDC2 { > + regulator-name = "DCDC2"; > + regulator-always-on; > + regulator-boot-on; > + regulator-state-mem { > + regulator-on-in-suspend; > + regulator-suspend-microvolt = <3300000>; > + }; > + }; > + > + ricoh619_dcdc3_reg: DCDC3 { > + regulator-name = "DCDC3"; > + regulator-min-microvolt = <300000>; > + regulator-max-microvolt = <1875000>; > + regulator-always-on;// > + regulator-boot-on; > + regulator-state-mem { > + regulator-on-in-suspend; > + regulator-suspend-microvolt = <1140000>; > + }; > + }; > + > + /* Core4_1V2 */ > + ricoh619_dcdc4_reg: DCDC4 { > + regulator-name = "DCDC4"; > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + regulator-always-on; > + regulator-boot-on; > + regulator-state-mem { > + regulator-on-in-suspend; > + regulator-suspend-microvolt = <1140000>; > + }; > + }; > + > + /* Core4_1V8 */ > + ricoh619_dcdc5_reg: DCDC5 { > + regulator-name = "DCDC5"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-always-on; > + regulator-boot-on; > + regulator-state-mem { > + regulator-on-in-suspend; > + regulator-suspend-microvolt = <1700000>; > + }; > + }; > + > + /* IR_3V3 */ > + ricoh619_ldo1_reg: LDO1 { > + regulator-name = "LDO1"; > + //regulator-always-on; > + regulator-boot-on; > + }; > + > + /* Core1_3V3 */ > + ricoh619_ldo2_reg: LDO2 { > + regulator-name = "LDO2"; > + regulator-always-on; > + regulator-boot-on; > + regulator-state-mem { > + regulator-on-in-suspend; > + regulator-suspend-microvolt = <3000000>; > + }; > + }; > + > + /* Core5_1V2 */ > + ricoh619_ldo3_reg: LDO3 { > + regulator-name = "LDO3"; > + regulator-always-on; > + regulator-boot-on; > + }; > + > + ricoh619_ldo4_reg: LDO4 { > + regulator-name = "LDO4"; > + regulator-boot-on; > + }; > + > + /* SPD_3V3 */ > + ricoh619_ldo5_reg: LDO5 { > + regulator-name = "LDO5"; > + regulator-always-on; > + regulator-boot-on; > + }; > + > + /* DDR_0V6 */ > + ricoh619_ldo6_reg: LDO6 { > + regulator-name = "LDO6"; > + regulator-always-on; > + regulator-boot-on; > + }; > + > + /* VDD_PWM */ > + ricoh619_ldo7_reg: LDO7 { > + regulator-name = "LDO7"; > + regulator-always-on; > + regulator-boot-on; > + }; > + > + /* ldo_1v8 */ > + ricoh619_ldo8_reg: LDO8 { > + regulator-name = "LDO8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-always-on; > + regulator-boot-on; > + }; > + > + ricoh619_ldo9_reg: LDO9 { > + regulator-name = "LDO9"; > + regulator-boot-on; > + }; > + > + ricoh619_ldo10_reg: LDO10 { > + regulator-name = "LDO10"; > + regulator-boot-on; > + }; > + > + ricoh619_ldortc1_reg: LDORTC1 { > + regulator-name = "LDORTC1"; > + regulator-boot-on; > + }; > + > + ricoh619_ldortc2_reg: LDORTC2 { > + regulator-name = "LDORTC2"; > + regulator-boot-on; > + }; > + }; > +}; > + > +&uart1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_uart1>; > + status = "okay"; > +}; > + > +&usdhc1 { > + status = "disabled"; > +}; > + > +&usdhc2 { > + pinctrl-names = "default", "state_100mhz", "state_200mhz","sleep"; > + pinctrl-0 = <&pinctrl_usdhc2>; > + pinctrl-1 = <&pinctrl_usdhc2_100mhz>; > + pinctrl-2 = <&pinctrl_usdhc2_200mhz>; > + pinctrl-3 = <&pinctrl_usdhc2_sleep>; > + non-removable; > + status = "okay"; > +}; > + > +&usdhc3 { > + pinctrl-names = "default", "state_100mhz", "state_200mhz","sleep"; > + pinctrl-0 = <&pinctrl_usdhc3>, <&pinctrl_usdhc3_pwr>; > + pinctrl-1 = <&pinctrl_usdhc3_100mhz>; > + pinctrl-2 = <&pinctrl_usdhc3_200mhz>; > + pinctrl-3 = <&pinctrl_usdhc3_sleep>, <&pinctrl_usdhc3_pwr>; > + vmmc-supply = <®_sd3_vmmc>; > + mmc-pwrseq = <&wifi_pwrseq>; > + cap-power-off-card; > + non-removable; > + status = "okay"; > +}; > + > +&usbotg1 { > + pinctrl-names = "default"; > + disable-over-current; > + srp-disable; > + hnp-disable; > + adp-disable; > + status = "okay"; > +}; > + > + > +&ssi2 { > + status = "disabled"; > +}; > + > -- > 2.20.1 > > _______________________________________________ > http://projects.goldelico.com/p/gta04-kernel/ > Letux-kernel mailing list > letux-ker...@openphoenux.org > http://lists.goldelico.com/mailman/listinfo.cgi/letux-kernel _______________________________________________ Gta04-owner mailing list Gta04-owner@goldelico.com http://lists.goldelico.com/mailman/listinfo.cgi/gta04-owner