1*66788475SSvyatoslav Ryhel# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*66788475SSvyatoslav Ryhel%YAML 1.2 3*66788475SSvyatoslav Ryhel--- 4*66788475SSvyatoslav Ryhel$id: http://devicetree.org/schemas/input/imagis,isa1200.yaml# 5*66788475SSvyatoslav Ryhel$schema: http://devicetree.org/meta-schemas/core.yaml# 6*66788475SSvyatoslav Ryhel 7*66788475SSvyatoslav Ryheltitle: Imagis ISA1200 haptic motor driver 8*66788475SSvyatoslav Ryhel 9*66788475SSvyatoslav Ryhelmaintainers: 10*66788475SSvyatoslav Ryhel - Svyatoslav Ryhel <clamor95@gmail.com> 11*66788475SSvyatoslav Ryhel - Linus Walleij <linusw@kernel.org> 12*66788475SSvyatoslav Ryhel 13*66788475SSvyatoslav Ryheldescription: 14*66788475SSvyatoslav Ryhel The ISA1200 is a high-performance enhanced haptic motor driver designed 15*66788475SSvyatoslav Ryhel for mobile hand-held devices. It supports various voltages for both ERM 16*66788475SSvyatoslav Ryhel (Eccentric Rotating Mass) and LRA (Linear Resonant Actuator) type 17*66788475SSvyatoslav Ryhel actuators. Thanks to an embedded LDO, battery power can be used directly 18*66788475SSvyatoslav Ryhel in handheld applications. 19*66788475SSvyatoslav Ryhel 20*66788475SSvyatoslav Ryhelproperties: 21*66788475SSvyatoslav Ryhel compatible: 22*66788475SSvyatoslav Ryhel const: imagis,isa1200 23*66788475SSvyatoslav Ryhel 24*66788475SSvyatoslav Ryhel reg: 25*66788475SSvyatoslav Ryhel maxItems: 1 26*66788475SSvyatoslav Ryhel 27*66788475SSvyatoslav Ryhel control-gpios: 28*66788475SSvyatoslav Ryhel description: 29*66788475SSvyatoslav Ryhel One or two GPIOs flagged as active high linked to HEN and LEN pins 30*66788475SSvyatoslav Ryhel minItems: 1 31*66788475SSvyatoslav Ryhel maxItems: 2 32*66788475SSvyatoslav Ryhel 33*66788475SSvyatoslav Ryhel clocks: 34*66788475SSvyatoslav Ryhel maxItems: 1 35*66788475SSvyatoslav Ryhel 36*66788475SSvyatoslav Ryhel pwms: 37*66788475SSvyatoslav Ryhel maxItems: 1 38*66788475SSvyatoslav Ryhel 39*66788475SSvyatoslav Ryhel vdd-supply: 40*66788475SSvyatoslav Ryhel description: 41*66788475SSvyatoslav Ryhel Regulator for 2.4V - 5.5V power supply 42*66788475SSvyatoslav Ryhel 43*66788475SSvyatoslav Ryhel vddp-supply: 44*66788475SSvyatoslav Ryhel description: 45*66788475SSvyatoslav Ryhel Regulator for 2.4V - 3.6V IO power supply 46*66788475SSvyatoslav Ryhel 47*66788475SSvyatoslav Ryhel imagis,clk-div: 48*66788475SSvyatoslav Ryhel $ref: /schemas/types.yaml#/definitions/uint32 49*66788475SSvyatoslav Ryhel description: 50*66788475SSvyatoslav Ryhel Divider for the external input clock/PWM 51*66788475SSvyatoslav Ryhel enum: [128, 256, 512, 1024] 52*66788475SSvyatoslav Ryhel default: 128 53*66788475SSvyatoslav Ryhel 54*66788475SSvyatoslav Ryhel imagis,pll-div: 55*66788475SSvyatoslav Ryhel $ref: /schemas/types.yaml#/definitions/uint32 56*66788475SSvyatoslav Ryhel description: 57*66788475SSvyatoslav Ryhel Divider for the internal PLL clock 58*66788475SSvyatoslav Ryhel minimum: 1 59*66788475SSvyatoslav Ryhel maximum: 15 60*66788475SSvyatoslav Ryhel default: 1 61*66788475SSvyatoslav Ryhel 62*66788475SSvyatoslav Ryhel imagis,mode: 63*66788475SSvyatoslav Ryhel $ref: /schemas/types.yaml#/definitions/uint32 64*66788475SSvyatoslav Ryhel description: | 65*66788475SSvyatoslav Ryhel Defines the motor type isa1200 drives 66*66788475SSvyatoslav Ryhel 0 - LRA (Linear Resonant Actuator) 67*66788475SSvyatoslav Ryhel 1 - ERM (Eccentric Rotating Mass) 68*66788475SSvyatoslav Ryhel enum: [0, 1] 69*66788475SSvyatoslav Ryhel default: 0 70*66788475SSvyatoslav Ryhel 71*66788475SSvyatoslav Ryhel imagis,period-ns: 72*66788475SSvyatoslav Ryhel description: 73*66788475SSvyatoslav Ryhel Period of the internal PWM channel in nanoseconds. 74*66788475SSvyatoslav Ryhel minimum: 10000 75*66788475SSvyatoslav Ryhel maximum: 30000 76*66788475SSvyatoslav Ryhel 77*66788475SSvyatoslav Ryhel imagis,duty-cycle-ns: 78*66788475SSvyatoslav Ryhel description: 79*66788475SSvyatoslav Ryhel Duty cycle of the external/internal PWM channel in nanoseconds, 80*66788475SSvyatoslav Ryhel defaults to 50% of the channel's period 81*66788475SSvyatoslav Ryhel 82*66788475SSvyatoslav Ryhel ldo: 83*66788475SSvyatoslav Ryhel $ref: /schemas/regulator/regulator.yaml# 84*66788475SSvyatoslav Ryhel type: object 85*66788475SSvyatoslav Ryhel description: 86*66788475SSvyatoslav Ryhel Embedded LDO regulator with voltage range 2.3V - 3.8V 87*66788475SSvyatoslav Ryhel unevaluatedProperties: false 88*66788475SSvyatoslav Ryhel 89*66788475SSvyatoslav Ryhel required: 90*66788475SSvyatoslav Ryhel - regulator-min-microvolt 91*66788475SSvyatoslav Ryhel - regulator-max-microvolt 92*66788475SSvyatoslav Ryhel 93*66788475SSvyatoslav Ryhelrequired: 94*66788475SSvyatoslav Ryhel - compatible 95*66788475SSvyatoslav Ryhel - reg 96*66788475SSvyatoslav Ryhel - ldo 97*66788475SSvyatoslav Ryhel 98*66788475SSvyatoslav RyheloneOf: 99*66788475SSvyatoslav Ryhel - required: 100*66788475SSvyatoslav Ryhel - clocks 101*66788475SSvyatoslav Ryhel - imagis,period-ns 102*66788475SSvyatoslav Ryhel - required: 103*66788475SSvyatoslav Ryhel - pwms 104*66788475SSvyatoslav Ryhel 105*66788475SSvyatoslav RyheladditionalProperties: false 106*66788475SSvyatoslav Ryhel 107*66788475SSvyatoslav Ryhelexamples: 108*66788475SSvyatoslav Ryhel - | 109*66788475SSvyatoslav Ryhel #include <dt-bindings/gpio/gpio.h> 110*66788475SSvyatoslav Ryhel 111*66788475SSvyatoslav Ryhel i2c { 112*66788475SSvyatoslav Ryhel #address-cells = <1>; 113*66788475SSvyatoslav Ryhel #size-cells = <0>; 114*66788475SSvyatoslav Ryhel 115*66788475SSvyatoslav Ryhel haptic-engine@49 { 116*66788475SSvyatoslav Ryhel compatible = "imagis,isa1200"; 117*66788475SSvyatoslav Ryhel reg = <0x49>; 118*66788475SSvyatoslav Ryhel 119*66788475SSvyatoslav Ryhel clocks = <&isa1200_refclk>; 120*66788475SSvyatoslav Ryhel 121*66788475SSvyatoslav Ryhel control-gpios = <&gpio 22 GPIO_ACTIVE_HIGH>, 122*66788475SSvyatoslav Ryhel <&gpio 23 GPIO_ACTIVE_HIGH>; 123*66788475SSvyatoslav Ryhel 124*66788475SSvyatoslav Ryhel vdd-supply = <&vdd_3v3_vbat>; 125*66788475SSvyatoslav Ryhel vddp-supply = <&vdd_2v8_vvib>; 126*66788475SSvyatoslav Ryhel 127*66788475SSvyatoslav Ryhel imagis,clk-div = <256>; 128*66788475SSvyatoslav Ryhel imagis,pll-div = <2>; 129*66788475SSvyatoslav Ryhel 130*66788475SSvyatoslav Ryhel imagis,mode = <0>; /* LRA_MODE */ 131*66788475SSvyatoslav Ryhel 132*66788475SSvyatoslav Ryhel imagis,period-ns = <13400>; 133*66788475SSvyatoslav Ryhel imagis,duty-cycle-ns = <100>; 134*66788475SSvyatoslav Ryhel 135*66788475SSvyatoslav Ryhel ldo { 136*66788475SSvyatoslav Ryhel regulator-name = "vdd_vib"; 137*66788475SSvyatoslav Ryhel regulator-min-microvolt = <2300000>; 138*66788475SSvyatoslav Ryhel regulator-max-microvolt = <2300000>; 139*66788475SSvyatoslav Ryhel }; 140*66788475SSvyatoslav Ryhel }; 141*66788475SSvyatoslav Ryhel }; 142