Hi James,
On Fri, Mar 08, 2024 at 10:24:18PM +0000, James Ogletree wrote:
> The CS40L50 is a haptic driver with waveform memory,
> integrated DSP, and closed-loop algorithms.
>
> Add a YAML DT binding document for this device.
>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
> Signed-off-by: James Ogletree <jogletre@xxxxxxxxxxxxxxxxxxxxx>
> ---
> .../bindings/input/cirrus,cs40l50.yaml | 70 +++++++++++++++++++
> MAINTAINERS | 8 +++
> 2 files changed, 78 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/input/cirrus,cs40l50.yaml
>
> diff --git a/Documentation/devicetree/bindings/input/cirrus,cs40l50.yaml b/Documentation/devicetree/bindings/input/cirrus,cs40l50.yaml
> new file mode 100644
> index 000000000000..6a5bdafed56b
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/input/cirrus,cs40l50.yaml
> @@ -0,0 +1,70 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/input/cirrus,cs40l50.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Cirrus Logic CS40L50 Advanced Haptic Driver
> +
> +maintainers:
> + - James Ogletree <james.ogletree@xxxxxxxxxx>
Nit: this email address and the one in MAINTAINERS don't match the one
you're using to sign off. There is no requirement that they do; I just
wanted to check whether this was intentional.
> +
> +description:
> + CS40L50 is a haptic driver with waveform memory,
> + integrated DSP, and closed-loop algorithms.
> +
> +properties:
> + compatible:
> + enum:
> + - cirrus,cs40l50
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + reset-gpios:
> + maxItems: 1
> +
> + va-supply:
> + description: Power supply for internal analog circuits.
> +
> + vp-supply:
> + description: Power supply for always-on circuits.
> +
> + vio-supply:
> + description: Power supply for digital input/output.
> +
> + vamp-supply:
> + description: Power supply for the Class D amplifier.
Does L50 support external boost mode? If not, it will always be shorted
directly to VBST on the board, and there is no reason to describe it in
the binding.
If external boost mode is supported, then I recommend extending support
for it in the driver. Perhaps some additional registers must be set if
this supply is present.
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - reset-gpios
> + - vp-supply
Making VP a required supply is likely inconvenient for customers; 99% of
them connect it to a battery, and end up tying this property to a dummy
regulator to keep the driver from bleating.
Only for a wall-powered case would VP be tied to something like a 3.3-V
switching supply, and I imagine those cases are rare. It seems that VP
should be optional.
> + - vio-supply
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> + #include <dt-bindings/interrupt-controller/irq.h>
> +
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
Nit: most device trees tend to use 8-column indentation as with kernel code.
> +
> + haptic-driver@34 {
> + compatible = "cirrus,cs40l50";
> + reg = <0x34>;
> + interrupt-parent = <&gpio>;
> + interrupts = <113 IRQ_TYPE_LEVEL_LOW>;
> + reset-gpios = <&gpio 112 GPIO_ACTIVE_LOW>;
> + vp-supply = <&vreg>;
> + vio-supply = <&vreg>;
Showing VP and VIO tied to the same supply is not a valid example; VP
typically connects to a battery, and VIO is likely a 1.8-V supply. Their
voltage ranges do not overlap, and hence they cannot be shared. I also
suspect there are sequencing restrictions between them as well.
> + };
> + };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index dd5de540ec0b..b71017a187f8 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -4933,6 +4933,14 @@ F: sound/pci/hda/cs*
> F: sound/pci/hda/hda_cs_dsp_ctl.*
> F: sound/soc/codecs/cs*
>
> +CIRRUS LOGIC HAPTIC DRIVERS
> +M: James Ogletree <james.ogletree@xxxxxxxxxx>
> +M: Fred Treven <fred.treven@xxxxxxxxxx>
> +M: Ben Bright <ben.bright@xxxxxxxxxx>
> +L: patches@xxxxxxxxxxxxxxxxxxxxx
> +S: Supported
> +F: Documentation/devicetree/bindings/input/cirrus,cs40l50.yaml
> +
> CIRRUS LOGIC DSP FIRMWARE DRIVER
> M: Simon Trimmer <simont@xxxxxxxxxxxxxxxxxxxxx>
> M: Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxx>
> --
> 2.25.1
>
Kind regards,
Jeff LaBundy
[Index of Archives]
[Pulseaudio]
[Linux Audio Users]
[ALSA Devel]
[Fedora Desktop]
[Fedora SELinux]
[Big List of Linux Books]
[Yosemite News]
[KDE Users]