[PATCH v1 dt-bindings]dt-bindings: debix-model-a: Add bindings for BT and audio

Krzysztof Kozlowski krzk at kernel.org
Tue Jul 29 00:14:35 PDT 2025


On 29/07/2025 05:13, WangErQian wrote:
> Add bindings for Debix Model A Bluetooth and audio
> 
> This patch adds device tree binding documentation for:

Read submitting patches. It explains how to write appropriate commit msg
and what should be in the patchset.

> - fsl,mxc_bt_rfkill.yaml: Bluetooth RF control node
> - fsl,imx-audio-es8316.yaml: Audio codec interface

Read submitting patches. There is VERY important paragraph called -
separate your changes.

> 
> Signed-off-by: WangErQian <WangErQianY at icloud.com>

No, you need real name.

Please use subject prefixes matching the subsystem. You can get them for
example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory
your patch is touching. For bindings, the preferred subjects are
explained here:
https://www.kernel.org/doc/html/latest/devicetree/bindings/submitting-patches.html#i-for-patch-submitters

Please use standard email subjects, so with the PATCH keyword in the
title. `git format-patch -vX` helps here to create proper versioned
patches. Another useful tool is b4. Skipping the PATCH keyword makes
filtering of emails more difficult thus making the review process less
convenient.

There is no patch prefix called "dt-bindings".


> ---
>  .../bindings/bluetooth/fsl,mxc_bt_rfkill.yaml | 70 +++++++++++++++
>  .../bindings/sound/fsl,imx-audio-es8316.yaml  | 88 +++++++++++++++++++
>  2 files changed, 158 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/bluetooth/fsl,mxc_bt_rfkill.yaml
>  create mode 100644 Documentation/devicetree/bindings/sound/fsl,imx-audio-es8316.yaml
> 
> diff --git a/Documentation/devicetree/bindings/bluetooth/fsl,mxc_bt_rfkill.yaml b/Documentation/devicetree/bindings/bluetooth/fsl,mxc_bt_rfkill.yaml
> new file mode 100644
> index 000000000000..b173de7a4102
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/bluetooth/fsl,mxc_bt_rfkill.yaml
> @@ -0,0 +1,70 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +$id: http://devicetree.org/schemas/bluetooth/fsl,mxc_bt_rfkill.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: NXP i.MX Bluetooth RFKill Controller
> +
> +maintainers:
> +  - WangErQian <wangerqiany at icloud.com>
> +
> +description: |
> +  Binding for NXP i.MX Bluetooth RFKill controller, managing power and wake signals via GPIOs.

No, explain the hardware, not what binding is.

> +
> +properties:
> +  compatible:
> +    const: fsl,mxc_bt_rfkill

There is no user of this, so why posting this binding?

> +
> +  pinctrl-names:
> +    maxItems: 1
> +    items:
> +      - const: default
> +
> +  pinctrl-0:
> +    type: phandle
> +    description: Phandle to default pin control configuration
> +
> +  bt-power-gpios:
> +    description: GPIO controlling Bluetooth power (active low)
> +    maxItems: 1
> +
> +  wake-bt-gpios:
> +    description: GPIO for waking Bluetooth device (active low)
> +    maxItems: 1
> +
> +  wake-host-gpios:
> +    description: GPIO for host wake-up signal (active low)
> +    maxItems: 1
> +
> +  status:
> +    type: string
> +    enum: [ "okay", "disabled" ]
> +    default: "okay"

Do you see ANY binding with such syntax? No. There is no and this should
be a hint that you are doing something wrong.

Anyway, entire binding does not describe the hardware, so this cannot be
accepted. Bindings describe real hardware devices, not virtual beings
like some containers for GPIOs.


...

> diff --git a/Documentation/devicetree/bindings/sound/fsl,imx-audio-es8316.yaml b/Documentation/devicetree/bindings/sound/fsl,imx-audio-es8316.yaml
> new file mode 100644
> index 000000000000..35f13d656caf
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/fsl,imx-audio-es8316.yaml
> @@ -0,0 +1,88 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +$id: http://devicetree.org/schemas/sound/fsl,imx-audio-es8316.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: NXP i.MX Audio Interface with ES8316 Codec
> +
> +maintainers:
> +  - WangErQian <wangerqiany at icloud.com>
> +
> +description: |
> +  Binding for NXP i.MX platforms using the Everest ES8316 audio codec.

Same comments

> +  Defines the connections between CPU DAI (SAI), codec, and audio routing.
> +
> +properties:
> +  compatible:
> +    const: fsl,imx-audio-es8316

There is no user for it or your commit msg is incomplete.

> +
> +  model:
> +    type: string
> +    description: Descriptive name of the audio setup (e.g., board-specific)
> +    default: "imx-audio-es8316"

How other bindings do this?

> +
> +  audio-cpu:
> +    type: phandle
> +    description: Phandle to the CPU audio interface (e.g., SAI node)
> +    maxItems: 1
> +
> +  audio-codec:
> +    type: phandle
> +    description: Phandle to the audio codec (ES8316 node)
> +    maxItems: 1
> +
> +  format:
> +    type: string
> +    description: Audio data format (e.g., i2s, left-justified)
> +    enum: ["i2s", "right-justified", "left-justified", "dsp-a", "dsp-b"]
> +    default: "i2s"

How other bindings do this?

> +
> +  hp-det-gpio:
> +    type: phandle-array
> +    description: GPIO for headphone detection (active high)
> +    maxItems: 1
> +    items:
> +      - description: GPIO specifier (controller + pin + flags)
> +
> +  audio-routing:
> +    type: string-array
> +    description: Connection mapping between codec pins and audio components
> +    items:
> +      minItems: 2
> +      maxItems: 2

These are redundant. I don't think this was tested.

> +      items:
> +        - description: Source endpoint (e.g., "Mic Jack")
> +        - description: Sink endpoint (e.g., "MIC2")
> +
> +required:
> +  - compatible
> +  - audio-cpu
> +  - audio-codec
> +  - audio-routing
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/gpio/gpio.h>
> +    sai3: sai at 40031000 {
> +        compatible = "fsl,imx8mp-sai";
> +        reg = <0x40031000 0x1000>;
> +    };

Drop node, not relevant.

> +
> +    codec: es8316 at 11 {
> +        compatible = "everest,es8316";
> +        reg = <0x11>;
> +    };

Drop node, not relevant.


> +
> +    sound {
> +        compatible = "fsl,imx-audio-es8316";
> +        model = "imx-audio-es8316";
> +        audio-cpu = <&sai3>;
> +        audio-codec = <&codec>;
> +        format = "i2s";
> +        hp-det-gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
> +        audio-routing =
> +            "Mic Jack", "MIC2",
> +            "Headphone Jack", "HPOL",
> +            "Headphone Jack", "HPOR";
> +    };


Best regards,
Krzysztof



More information about the linux-arm-kernel mailing list