Commit 1957339b authored by David Heidelberg's avatar David Heidelberg Committed by Rob Herring
Browse files

dt-bindings: input: pwm-vibrator: Convert txt bindings to yaml



Converts txt binding to new YAML format and simplify example.

Reviewed-by: default avatarSebastian Reichel <sre@kernel.org>
Signed-off-by: default avatarDavid Heidelberg <david@ixit.cz>
Signed-off-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20211208183434.98087-1-david@ixit.cz
parent b92225b0
Loading
Loading
Loading
Loading
+0 −66
Original line number Diff line number Diff line
* PWM vibrator device tree bindings

Registers a PWM device as vibrator. It is expected, that the vibrator's
strength increases based on the duty cycle of the enable PWM channel
(100% duty cycle meaning strongest vibration, 0% meaning no vibration).

The binding supports an optional direction PWM channel, that can be
driven at fixed duty cycle. If available this is can be used to increase
the vibration effect of some devices.

Required properties:
- compatible: should contain "pwm-vibrator"
- pwm-names: Should contain "enable" and optionally "direction"
- pwms: Should contain a PWM handle for each entry in pwm-names

Optional properties:
- vcc-supply: Phandle for the regulator supplying power
- direction-duty-cycle-ns: Duty cycle of the direction PWM channel in
                           nanoseconds, defaults to 50% of the channel's
			   period.

Example from Motorola Droid 4:

&omap4_pmx_core {
	vibrator_direction_pin: pinmux_vibrator_direction_pin {
		pinctrl-single,pins = <
		OMAP4_IOPAD(0x1ce, PIN_OUTPUT | MUX_MODE1) /* dmtimer8_pwm_evt (gpio_27) */
		>;
	};

	vibrator_enable_pin: pinmux_vibrator_enable_pin {
		pinctrl-single,pins = <
		OMAP4_IOPAD(0X1d0, PIN_OUTPUT | MUX_MODE1) /* dmtimer9_pwm_evt (gpio_28) */
		>;
	};
};

/ {
	pwm8: dmtimer-pwm {
		pinctrl-names = "default";
		pinctrl-0 = <&vibrator_direction_pin>;

		compatible = "ti,omap-dmtimer-pwm";
		#pwm-cells = <3>;
		ti,timers = <&timer8>;
		ti,clock-source = <0x01>;
	};

	pwm9: dmtimer-pwm {
		pinctrl-names = "default";
		pinctrl-0 = <&vibrator_enable_pin>;

		compatible = "ti,omap-dmtimer-pwm";
		#pwm-cells = <3>;
		ti,timers = <&timer9>;
		ti,clock-source = <0x01>;
	};

	vibrator {
		compatible = "pwm-vibrator";
		pwms = <&pwm9 0 1000000000 0>,
                       <&pwm8 0 1000000000 0>;
		pwm-names = "enable", "direction";
		direction-duty-cycle-ns = <1000000000>;
	};
};
+57 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/input/pwm-vibrator.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: PWM vibrator

maintainers:
  - Sebastian Reichel <sre@kernel.org>

description: >
  Registers a PWM device as vibrator. It is expected, that the vibrator's
  strength increases based on the duty cycle of the enable PWM channel
  (100% duty cycle meaning strongest vibration, 0% meaning no vibration).

  The binding supports an optional direction PWM channel, that can be
  driven at fixed duty cycle. If available this is can be used to increase
  the vibration effect of some devices.

properties:
  compatible:
    const: pwm-vibrator

  pwm-names:
    items:
      - const: enable
      - const: direction
    minItems: 1

  pwms:
    minItems: 1
    maxItems: 2

  vcc-supply: true

  direction-duty-cycle-ns:
    description: >
      Duty cycle of the direction PWM channel in nanoseconds,
      defaults to 50% of the channel's period.

required:
  - compatible
  - pwm-names
  - pwms

additionalProperties: false

examples:
  - |
    vibrator {
        compatible = "pwm-vibrator";
        pwms = <&pwm9 0 1000000000 0>,
               <&pwm8 0 1000000000 0>;
        pwm-names = "enable", "direction";
        direction-duty-cycle-ns = <1000000000>;
    };