| # 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 <clamor95@gmail.com> | |
| - Linus Walleij <linusw@kernel.org> | |
| 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 <dt-bindings/gpio/gpio.h> | |
| 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>; | |
| }; | |
| }; | |
| }; |