Re: [PATCH v2 0/2] input: misc: add support for Imagis ISA1200 haptic motor driver

From: Linus Walleij

Date: Thu Apr 30 2026 - 05:17:08 EST


On Tue, Apr 28, 2026 at 1:43 PM Svyatoslav Ryhel <clamor95@xxxxxxxxx> wrote:

> The ISA1200 is a haptic feedback unit from Imagis Technology using two
> motors for haptic feedback in mobile phones. Used in many mobile devices
> c. 2012 including Samsung Galxy S Advance GT-I9070 (Janice), Samsung Beam
> GT-I8350 (Gavini), LG Optimus 4X P880 and LG Optimus Vu P895.
>
> The exact datasheet for the ISA1200 is not available; all data was modeled
> based on available downstream kernel sources for various devices and
> fragments of information scattered across the internet.

I applied a patch to the Janice devicetree like this:

+ /* Haptic feedback unit Immersion ISA1200 */
+ haptic-engine@49 {
+ compatible = "immersion,isa1200";
+ reg = <0x49>;
+
+ /* clkout1 from ACLK divided by 8 */
+ clocks = <&clkout_clk DB8500_CLKOUT_1
DB8500_CLKOUT_SRC_ACLK 8>;
+
+ /*
+ * GPIO194 pin HEN (motor hardware enable)
+ * GPIO195 pin LEN (motor LDO enable)
+ */
+ control-gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>,
<&gpio6 3 GPIO_ACTIVE_HIGH>;
+
+ imagis,clk-div = <256>;
+ imagis,pll-div = <2>;
+
+ imagis,mode = <0>; /* LRA_MODE */
+
+ imagis,period-ns = <1340000>;
+ imagis,duty-cycle-ns = <100>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&isa1200_janice_default>;
+
+ ldo {
+ regulator-name = "vdd_vib";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ };
+ };

It works, I get rumble on the keys.

Tested-by: Linus Walleij <linusw@xxxxxxxxxx>

Yours,
Linus Walleij