From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com [209.85.218.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 82C9D3BB13E for ; Wed, 17 Jun 2026 07:06:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.45 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781679979; cv=none; b=TnZCJCFEYq70xclORa+7gIpZR46LQR0pFCgf+JplRZWNQpJiXbG+1DtIvhus3UDRKAjajGa34tHC6lM5ao91aifbUdlksX1RA/pNifwr9vv6MDW8MWnis6Rc1gecU1pjUFPQ5ureqRQ6Sd7yqsghLjUFJ1sQJ+kuGKgfVH36eqg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781679979; c=relaxed/simple; bh=1ZpgbLFhc7uTynHM6QmCi54UKtHyRhZrUYid+cJ3Fmg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=am2z0qut34jqyyHzpWPzoJMrX/QYJDT0EEk4HsvdlgMawebPUbjMypzoTcwyICB1zk76lIN6HUz6yTH3TmVV+vGAI+0QrBpX/MlU2QRqA2VzkunC494px/CqC+TJYtpUfALa8R0QFiCVM+PzcKgmeCkf8xfNVWvDBftDKKuntuo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=o5t+C5V1; arc=none smtp.client-ip=209.85.218.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="o5t+C5V1" Received: by mail-ej1-f45.google.com with SMTP id a640c23a62f3a-becfa735b9aso677735566b.1 for ; Wed, 17 Jun 2026 00:06:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781679976; x=1782284776; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VN85jO6g8etsAnhUc2JoU6sdjjboKtQLkjRbxbRf3MM=; b=o5t+C5V1OIX5WobFQEOuiasNOaVy0ZuFKRMARF2RPp86S+O7B7QJ0kLFJ24yh1/BBT Ea+8nSF6NSo3tcl+PrjywqevE+j5keuWUo7AzDjQjHd/FxGO5D0w5LTOIPM/kO7T+QQd KIO2Jl4D1N7glZUVloMN1r4s5zwZWOCLo0O9TxMyL+s09ne95rJg47S/MdkpYRa2fAWy KjenSNr2VAFs/3pMiByfNWJTHH1M1dqJmWhamZHKj+aHG0tYNL4q5rqbEbKsYB+OpiOF yDyRtmxqWtGBQ+6MsZZECI4dMNtVjNk3pt63jwIZ/MeokSn8sXpD0AjJq33rzF5e4oI5 K89A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781679976; x=1782284776; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=VN85jO6g8etsAnhUc2JoU6sdjjboKtQLkjRbxbRf3MM=; b=W1m7jCMQ3rkYOPgruYZR9ucUid27TjBjToKp4ZsE0NBCnLFeTUC3Y6Wi5MIKpWtgNM GCqCxm6Pf9R6k39VpG9eg4SaKc8gSxZCZTE05zEglEb2tIixIstpFShMDMedai+LI9za C919fdTbgw9iwUuqAnA456WtxChFEr/wSvwRQrdebZb02sJ8Hqa0Ltl0YjLBsFljIX5s SsBoI3oqntLWcKT120IXl16vm5FNH1r8k5DiJVXvnOHB2TScVwbs3nqNsnTAd/d6S6vq yN2uYS9usbp7W+1PpBuN7P68V0jcqtgR7K0nMXy3upysd6rySFUdzqk4JxdCyIDXcKVv 8ICg== X-Forwarded-Encrypted: i=1; AFNElJ9xaPrTu6IogQspFOn1bk++c+u/V9ZiMlfLP/FEJHUfhOSgyogwXldjgPFS5IKeJkZepgodX81ZYHXUNXs=@vger.kernel.org X-Gm-Message-State: AOJu0YxsfcvThbF3aHmlH7IlWKHuaPqCTY1zoGBfvxC7UmoUVtuYUlgj 4OqbNHvsKDJKOraCEyFtqHlpgKVOKJvFPQdXa9oVlAUsJPQHwu47nxb4 X-Gm-Gg: Acq92OGNIiWP1ekov23h/BJnUwqrVeFLM8jsLgtLrDZaQz2Uo9wMtLrcYhkbrLQxaVs cs/Hmj/UYosvosL0q5LvEEMyKCNe9EvmDJNmhfXKlINDJW9ZfHIBAfSV5fiK14KcGnDAyQZIu40 tlWoGA7HnHX+D1j5FQl5MNLY+nObUoVyZYfTjWNX4/9ZLag/pCWFFu/h4Y6me/Z/y3t3H+9tpwg IivugJg8ePMRNrisKOLXY8iiRkgMjmrUaHAOcvi4fuTlSgxij0xIrsBmjmAJ5Mh0BONRJx8trhh flGNLJEo760sJOhBBpDNfJfW0V84m2AtGZsBqzAEmChrlYKMosXjnFHFfSUFZ8xDuhslQ6fp1d8 aZLznUc6W0HXOBqCHca5LR5YgCJ/eawWQivkra8Ag0vEqjE8kxqY8k7mgJPIaULyTTgX8Vri+YH bNJQ== X-Received: by 2002:a17:907:3f0a:b0:bec:6c5c:cced with SMTP id a640c23a62f3a-c05a69ec26dmr196055766b.28.1781679975407; Wed, 17 Jun 2026 00:06:15 -0700 (PDT) Received: from xeon ([188.163.112.61]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bfdb7b6e6c9sm752857266b.39.2026.06.17.00.06.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Jun 2026 00:06:14 -0700 (PDT) From: Svyatoslav Ryhel To: Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Linus Walleij , Svyatoslav Ryhel Cc: linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 1/2] dt-bindings: input: Document Imagis ISA1200 haptic motor driver Date: Wed, 17 Jun 2026 10:05:26 +0300 Message-ID: <20260617070528.35006-2-clamor95@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260617070528.35006-1-clamor95@gmail.com> References: <20260617070528.35006-1-clamor95@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Document the Imagis ISA1200 haptic motor driver, used primarily in mobile handheld devices and capable of supporting up to two motors. 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. Signed-off-by: Svyatoslav Ryhel Reviewed-by: Rob Herring (Arm) --- .../bindings/input/imagis,isa1200.yaml | 141 ++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 Documentation/devicetree/bindings/input/imagis,isa1200.yaml diff --git a/Documentation/devicetree/bindings/input/imagis,isa1200.yaml b/Documentation/devicetree/bindings/input/imagis,isa1200.yaml new file mode 100644 index 000000000000..4bc8630edcdd --- /dev/null +++ b/Documentation/devicetree/bindings/input/imagis,isa1200.yaml @@ -0,0 +1,141 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/input/imagis,isa1200.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Imagis ISA1200 haptic motor driver + +maintainers: + - Svyatoslav Ryhel + - Linus Walleij + +description: + The ISA1200 is a high-performance enhanced haptic motor driver designed + for mobile hand-held devices. It supports various voltages for both ERM + (Eccentric Rotating Mass) and LRA (Linear Resonant Actuator) type + actuators. Thanks to an embedded LDO, battery power can be used directly + in handheld applications. + +properties: + compatible: + const: imagis,isa1200 + + reg: + maxItems: 1 + + control-gpios: + description: + One or two GPIOs flagged as active high linked to HEN and LEN pins + minItems: 1 + maxItems: 2 + + clocks: + maxItems: 1 + + pwms: + maxItems: 1 + + vdd-supply: + description: + Regulator for 2.4V - 5.5V power supply + + vddp-supply: + description: + Regulator for 2.4V - 3.6V IO power supply + + imagis,clk-div: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Divider for the external input clock/PWM + enum: [128, 256, 512, 1024] + default: 128 + + imagis,pll-div: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Divider for the internal PLL clock + minimum: 1 + maximum: 15 + default: 1 + + imagis,mode: + $ref: /schemas/types.yaml#/definitions/uint32 + description: | + Defines the motor type isa1200 drives + 0 - LRA (Linear Resonant Actuator) + 1 - ERM (Eccentric Rotating Mass) + enum: [0, 1] + default: 0 + + imagis,period-ns: + description: + Period of the internal PWM channel in nanoseconds. + minimum: 10000 + maximum: 30000 + + imagis,duty-cycle-ns: + description: + Duty cycle of the external/internal PWM channel in nanoseconds, + defaults to 50% of the channel's period + + ldo: + $ref: /schemas/regulator/regulator.yaml# + type: object + description: + Embedded LDO regulator with voltage range 2.3V - 3.8V + unevaluatedProperties: false + + required: + - regulator-min-microvolt + - regulator-max-microvolt + +required: + - compatible + - reg + - ldo + +oneOf: + - required: + - clocks + - imagis,period-ns + - required: + - pwms + +additionalProperties: false + +examples: + - | + #include + + i2c { + #address-cells = <1>; + #size-cells = <0>; + + haptic-engine@49 { + compatible = "imagis,isa1200"; + reg = <0x49>; + + clocks = <&isa1200_refclk>; + + control-gpios = <&gpio 22 GPIO_ACTIVE_HIGH>, + <&gpio 23 GPIO_ACTIVE_HIGH>; + + vdd-supply = <&vdd_3v3_vbat>; + vddp-supply = <&vdd_2v8_vvib>; + + imagis,clk-div = <256>; + imagis,pll-div = <2>; + + imagis,mode = <0>; /* LRA_MODE */ + + imagis,period-ns = <13400>; + imagis,duty-cycle-ns = <100>; + + ldo { + regulator-name = "vdd_vib"; + regulator-min-microvolt = <2300000>; + regulator-max-microvolt = <2300000>; + }; + }; + }; -- 2.53.0