new file mode 100644
@@ -0,0 +1,79 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/cml,cmx655d.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: CML Micro CMX655D codec
+
+maintainers:
+ - Richard Walton <rwalton@cmlmicro.com>
+ - Nikola Jelic <nikola.jelic83@gmail.com>
+
+description: |
+ The CMX655D is an ultra-low power voice codec.
+
+allOf:
+ - $ref: dai-common.yaml#
+
+properties:
+ compatible:
+ enum:
+ - cml,cmx655d
+
+ reg:
+ maxItems: 1
+
+ "#sound-dai-cells":
+ const: 0
+
+ reset-gpios:
+ description: GPIO used for codec reset, negative logic
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ interrupt-names:
+ maxItems: 1
+
+ pinctrl-names:
+ maxItems: 1
+
+ pinctr-0:
+ maxItems: 1
+
+ cmx655,classd-oc-reset-attempts:
+ description: Maximum number of times to reset CMX655 class-D
+ following a overcurrent event.
+ Default = 5, >10000 = disable limit.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ default: 5
+
+required:
+ - compatible
+ - reg
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+ codec: cmx655 {
+ reg = <0x54>;
+ #sound-dai-cells = <0>;
+ compatible = "cml,cmx655d";
+ reset-gpios = <&gpio 24 1>;
+ interrupt-parent = <&gpio>;
+ interrupts = <25 0x2>;
+ interrupt-names = "irq";
+ pinctrl-names = "default";
+ pinctrl-0 = <&ev6550DHAT_pins>;
+ cmx655,classd-oc-reset-attempts = <5>;
+ };
+
+ };
+...
new file mode 100644
@@ -0,0 +1,59 @@
+CMX655 audio CODEC
+
+Required properties:
+ - compatible : "cml,cmx655d"
+
+ - reg : the I2C address of the device for I2C.
+
+Optional properties:
+ - cmx655,classd-oc-reset-attempts: Maximum number of times to reset CMX655
+ class-D following a overcurrent event.
+ default = 5, >10000 = disable limit.
+ - reset-gpios : a GPIO spec for the reset pin. If specified, it will be
+ deasserted before communication to the codec starts.
+ - interrupt-parent: used to specify the controller for the interrupt
+ - interrupts: arguments given to interrupt controller
+ see devicetree/bindings/interrupt-controller/interrupts.txt for
+ more details on interrupt-parent and interrupts
+ - interrupt-names: Used by i2c driver to specify interrupt's use.
+ see devicetree/bindings/i2c/i2c.txt
+ and devicetree/bindings/resource-names.txt
+ for more details.
+ - pinctrl-names: see devicetree/bindings/pinctrl/pinctrl-bindings.txt
+ - pinctrl-0: see devicetree/bindings/pinctrl/pinctrl-bindings.txt
+
+Example:
+
+fragment@1 {
+ target = <&i2c>;
+ __overlay__ {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+ codec: cmx655 {
+ reg = <0x54>;
+ #sound-dai-cells = <0>;
+ compatible = "cml,cmx655D";
+ reset-gpios = <&gpio 24 1>;
+ interrupt-parent = <&gpio>;
+ interrupts = <25 0x2>; /* falling edge */
+ interrupt-names = "irq";
+ pinctrl-names = "default";
+ pinctrl-0 = <&ev6550DHAT_pins>;
+ cmx655,classd-oc-reset-attempts = <5>;
+ };
+ };
+};
+fragment@2 {
+ target = <&gpio>;
+ __overlay__ {
+ ev6550DHAT_pins: cmx655_pins {
+ // Pins resetN, IRQn
+ brcm,pins = <24 25>;
+ // Out, In
+ brcm,function = <1 0>;
+ // No pull, pull up
+ brcm,pull = <0 2>;
+ };
+ };
+};
@@ -308,6 +308,8 @@ patternProperties:
description: Carl Cloos Schweisstechnik GmbH.
"^cloudengines,.*":
description: Cloud Engines, Inc.
+ "^cml,.*":
+ description: CML Micro, Ltd.
"^cnm,.*":
description: Chips&Media, Inc.
"^cnxt,.*":
Signed-off-by: Nikola Jelic <nikola.jelic83@gmail.com> --- .../bindings/sound/cml,cmx655d.yaml | 79 +++++++++++++++++++ .../devicetree/bindings/sound/cmx655.txt | 59 ++++++++++++++ .../devicetree/bindings/vendor-prefixes.yaml | 2 + 3 files changed, 140 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/cml,cmx655d.yaml create mode 100644 Documentation/devicetree/bindings/sound/cmx655.txt