Trackpad Samsung Snow

This forum is for supported devices using an ARMv7 Samsung SoC.

Trackpad Samsung Snow

Postby issoeocio » Sun Jul 21, 2019 5:48 am

There is a problem of non recognized trackpad in whatever distro that is using a more recent kernel than 3.8 in the Snow boards. This is the case of the recommended installation of ALARM.

Where 3.8 is used, the kernel tree is taken is taken from the ChromiumOS. The linux-peach kernel of the repositories (that can be used with snow too) is an example.

There is two different models of Snow boards:

exynos5250-snow-rev5.dts
exynos5250-snow.dts (or rev4 in the chromium 3.8 tree)

The distinction, it was thought, was only the audio chips, see: https://patchwork.kernel.org/patch/7285491/

$this->bbcode_second_pass_quote('', 'T')here are 2 revisions of the Exynos5250 Snow Chromebook that were shipped:
Rev4 and Rev5. The only difference between these 2 revisions is the codec,
Rev4 has a max98095 codec while Rev5 has a max98090.


But, in fact, there is one more difference (maybe others): the touchpad chip. cyapa (for revision 4, I think - I don't have one) and atmel maxtouch for the revision 5. Other user already found this: viewtopic.php?f=47&t=13372&p=60346&hilit=touchpad#p60346

In the mainline kernel, they share the exynos5250-snow-common.dtsi file, and in this file there is a declaration of only one touchpad (as expected by the former pressuposition):

$this->bbcode_second_pass_code('', '
&i2c_1 {
status = "okay";
samsung,i2c-sda-delay = <100>;
samsung,i2c-max-bus-freq = <378000>;

trackpad@67 {
reg = <0x67>;
compatible = "cypress,cyapa";
interrupts = <2 IRQ_TYPE_NONE>;
interrupt-parent = <&gpx1>;
wakeup-source;
};
};
')

in the common file of the chromium tree, you can see that there are two (see https://chromium.googlesource.com/chrom ... ommon.dtsi)

$this->bbcode_second_pass_code('', '
i2c@12C70000 {
samsung,i2c-sda-delay = <100>;
samsung,i2c-max-bus-freq = <378000>;
/*
* TODO: for now config the IRQ at the i2c level since
* pinctrl can't handle sharing it between two children, even
* if one fails to probe.
* See crosbug.com/p/20329
*/
pinctrl-names = "default";
pinctrl-0 = <&i2c1_bus &trackpad_irq>;
trackpad {
reg = <0x67>;
compatible = "cypress,cyapa";
interrupts = <2 0>;
interrupt-parent = <&gpx1>;
wakeup-source;
};
trackpad-alt {
reg = <0x4b>;
compatible = "atmel,atmel_mxt_tp";
interrupts = <2 0>;
interrupt-parent = <&gpx1>;
wakeup-source;
};
trackpad-bootloader {
reg = <0x25>;
compatible = "atmel,atmel_mxt_tp";
interrupts = <2 0>;
interrupt-parent = <&gpx1>;
wakeup-source;
};
};
')


So I compiled a kernel and get the trackpad recognized by modifing the dts. Including in the exynos5250-snow-rev5.dts the following:

$this->bbcode_second_pass_code('', '
&i2c_1 {
status = "okay";
samsung,i2c-sda-delay = <100>;
samsung,i2c-max-bus-freq = <378000>;

trackpad@4b {
reg = <0x4b>;
compatible = "atmel,maxtouch";
interrupts = <2 IRQ_TYPE_NONE>;
interrupt-parent = <&gpx1>;
pinctrl-names = "default";
linux,gpio-keymap = <KEY_RESERVED
KEY_RESERVED
KEY_RESERVED
KEY_RESERVED
KEY_RESERVED
BTN_LEFT>;
wakeup-source;
};
};
')

and removing the cyapa declaration of exynos5250-snow-common.dtsi

The correct procedure may be of including the atmel in the exynos5250-snow-rev5, the cyapa in the exynos5250-snow.dts and removing the trackpad declaration of exynos5250-snow-common.dtsi
Attachments
0009-Trackpad-Samsung-Snow.patch
patch
(2.25 KiB) Downloaded 317 times
issoeocio
 
Posts: 1
Joined: Thu Nov 26, 2015 5:09 pm

Return to Samsung

Who is online

Users browsing this forum: No registered users and 19 guests

cron