2021-11-08 21:48:11

by Jarrett Schultz

[permalink] [raw]
Subject: [PATCH v2 1/5] dt-bindings: platform: microsoft: Document surface xbl

Introduce yaml for surface xbl driver.

Signed-off-by: Jarrett Schultz <[email protected]>

---

Changes in v2:
- Removed json-schema dependence
- Elaborated on description of driver
- Updated example

---

.../platform/microsoft/surface-xbl.yaml | 57 +++++++++++++++++++
MAINTAINERS | 7 +++
2 files changed, 64 insertions(+)
create mode 100644 Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml

diff --git a/Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml b/Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml
new file mode 100644
index 000000000000..09f806f373bd
--- /dev/null
+++ b/Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml
@@ -0,0 +1,57 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/platform/microsoft/surface-xbl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Surface Extensible Bootloader for Microsoft Surface Duo
+
+maintainers:
+ - Jarrett Schultz <[email protected]>
+
+description: |
+ Exposes the following device information to user space via sysfs -
+ * board_id
+ * battery_present
+ * hw_init_retries
+ * is_customer_mode
+ * is_act_mode
+ * pmic_reset_reason
+ * touch_fw_version
+ * ocp_error_location
+ See sysfs documentation for more information.
+
+properties:
+ compatible:
+ const: microsoft,sm8150-surface-duo-xbl
+
+ reg:
+ maxItems: 1
+
+unevaluatedProperties: false
+
+required:
+ - compatible
+ - reg
+ - interrupts
+
+examples:
+ - |
+ xbl@146bfa94 {
+ compatible = "microsoft,sm8150-surface-duo-xbl";
+ reg = <0x00 0x146bfa94 0x00 0x100>;
+ };
+ - |
+ imem@146bf000 {
+ compatible = "simple-mfd";
+ reg = <0x0 0x146bf000 0x0 0x1000>;
+ ranges = <0x0 0x0 0x146bf000 0x1000>;
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ xbl@a94 {
+ compatible = "microsoft,sm8150-surface-duo-xbl";
+ reg = <0xa94 0x100>;
+ };
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index eeb4c70b3d5b..8643546f8fab 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -12423,6 +12423,13 @@ F: Documentation/driver-api/surface_aggregator/clients/dtx.rst
F: drivers/platform/surface/surface_dtx.c
F: include/uapi/linux/surface_aggregator/dtx.h

+MICROSOFT SURFACE DUO XBL DRIVER
+M: Jarrett Schultz <[email protected]>
+L: [email protected]
+L: [email protected]
+S: Supported
+F: Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml
+
MICROSOFT SURFACE GPE LID SUPPORT DRIVER
M: Maximilian Luz <[email protected]>
L: [email protected]
--
2.25.1


2021-11-09 02:56:24

by Bjorn Andersson

[permalink] [raw]
Subject: Re: [PATCH v2 1/5] dt-bindings: platform: microsoft: Document surface xbl

On Mon 08 Nov 08:44 PST 2021, Jarrett Schultz wrote:

> Introduce yaml for surface xbl driver.
>
> Signed-off-by: Jarrett Schultz <[email protected]>
>
> ---
>
> Changes in v2:
> - Removed json-schema dependence
> - Elaborated on description of driver
> - Updated example
>
> ---
>
> .../platform/microsoft/surface-xbl.yaml | 57 +++++++++++++++++++
> MAINTAINERS | 7 +++
> 2 files changed, 64 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml
>
> diff --git a/Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml b/Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml
> new file mode 100644
> index 000000000000..09f806f373bd
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml
> @@ -0,0 +1,57 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/platform/microsoft/surface-xbl.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Surface Extensible Bootloader for Microsoft Surface Duo
> +
> +maintainers:
> + - Jarrett Schultz <[email protected]>
> +
> +description: |
> + Exposes the following device information to user space via sysfs -

The devicetree should describe the hardware, or in this case the imem
region. User space, sysfs etc are concepts of one possible consumer of
this information and should not be part of the binding.

It might make sense to update this description to still document what's
to be found in the memory region though.

> + * board_id
> + * battery_present
> + * hw_init_retries
> + * is_customer_mode
> + * is_act_mode
> + * pmic_reset_reason
> + * touch_fw_version
> + * ocp_error_location
> + See sysfs documentation for more information.
> +
> +properties:
> + compatible:
> + const: microsoft,sm8150-surface-duo-xbl
> +
> + reg:
> + maxItems: 1
> +
> +unevaluatedProperties: false
> +
> +required:
> + - compatible
> + - reg
> + - interrupts

I believe interrupts is a leftover...

> +
> +examples:
> + - |
> + xbl@146bfa94 {
> + compatible = "microsoft,sm8150-surface-duo-xbl";
> + reg = <0x00 0x146bfa94 0x00 0x100>;

The example is compiled with #address-cells == #size-cells = <1>, so
you should omit the extra 0 in both address and size, in both examples.

Regards,
Bjorn

> + };
> + - |
> + imem@146bf000 {
> + compatible = "simple-mfd";
> + reg = <0x0 0x146bf000 0x0 0x1000>;
> + ranges = <0x0 0x0 0x146bf000 0x1000>;
> +
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + xbl@a94 {
> + compatible = "microsoft,sm8150-surface-duo-xbl";
> + reg = <0xa94 0x100>;
> + };
> + };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index eeb4c70b3d5b..8643546f8fab 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -12423,6 +12423,13 @@ F: Documentation/driver-api/surface_aggregator/clients/dtx.rst
> F: drivers/platform/surface/surface_dtx.c
> F: include/uapi/linux/surface_aggregator/dtx.h
>
> +MICROSOFT SURFACE DUO XBL DRIVER
> +M: Jarrett Schultz <[email protected]>
> +L: [email protected]
> +L: [email protected]
> +S: Supported
> +F: Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml
> +
> MICROSOFT SURFACE GPE LID SUPPORT DRIVER
> M: Maximilian Luz <[email protected]>
> L: [email protected]
> --
> 2.25.1
>

2021-11-09 13:39:45

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH v2 1/5] dt-bindings: platform: microsoft: Document surface xbl

On Mon, 08 Nov 2021 08:44:45 -0800, Jarrett Schultz wrote:
> Introduce yaml for surface xbl driver.
>
> Signed-off-by: Jarrett Schultz <[email protected]>
>
> ---
>
> Changes in v2:
> - Removed json-schema dependence
> - Elaborated on description of driver
> - Updated example
>
> ---
>
> .../platform/microsoft/surface-xbl.yaml | 57 +++++++++++++++++++
> MAINTAINERS | 7 +++
> 2 files changed, 64 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml
>

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml: 'additionalProperties' is a required property
hint: A schema without a "$ref" to another schema must define all properties and use "additionalProperties"
from schema $id: http://devicetree.org/meta-schemas/base.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml: ignoring, error in schema:
warning: no schema found in file: ./Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml
Documentation/devicetree/bindings/platform/microsoft/surface-xbl.example.dts:44.11-48: Warning (ranges_format): /example-1/imem@146bf000:ranges: "ranges" property has invalid length (16 bytes) (parent #address-cells == 1, child #address-cells == 1, #size-cells == 1)
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/platform/microsoft/surface-xbl.example.dt.yaml: example-0: xbl@146bfa94:reg:0: [0, 342620820, 0, 256] is too long
From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/reg.yaml
Documentation/devicetree/bindings/platform/microsoft/surface-xbl.example.dt.yaml:0:0: /example-0/xbl@146bfa94: failed to match any schema with compatible: ['microsoft,sm8150-surface-duo-xbl']
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/platform/microsoft/surface-xbl.example.dt.yaml: example-1: imem@146bf000:reg:0: [0, 342618112, 0, 4096] is too long
From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/reg.yaml
Documentation/devicetree/bindings/platform/microsoft/surface-xbl.example.dt.yaml:0:0: /example-1/imem@146bf000/xbl@a94: failed to match any schema with compatible: ['microsoft,sm8150-surface-duo-xbl']

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/patch/1552442

This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit.

2021-11-12 14:39:30

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH v2 1/5] dt-bindings: platform: microsoft: Document surface xbl

On Mon, Nov 08, 2021 at 08:44:45AM -0800, Jarrett Schultz wrote:
> Introduce yaml for surface xbl driver.
>
> Signed-off-by: Jarrett Schultz <[email protected]>

Author and Sob emails need to match.

>
> ---
>
> Changes in v2:
> - Removed json-schema dependence
> - Elaborated on description of driver
> - Updated example
>
> ---
>
> .../platform/microsoft/surface-xbl.yaml | 57 +++++++++++++++++++
> MAINTAINERS | 7 +++
> 2 files changed, 64 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml
>
> diff --git a/Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml b/Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml
> new file mode 100644
> index 000000000000..09f806f373bd
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml
> @@ -0,0 +1,57 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/platform/microsoft/surface-xbl.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Surface Extensible Bootloader for Microsoft Surface Duo
> +
> +maintainers:
> + - Jarrett Schultz <[email protected]>
> +
> +description: |
> + Exposes the following device information to user space via sysfs -

What's sysfs? :) Linux details don't go in bindings.

> + * board_id
> + * battery_present
> + * hw_init_retries
> + * is_customer_mode
> + * is_act_mode
> + * pmic_reset_reason
> + * touch_fw_version
> + * ocp_error_location
> + See sysfs documentation for more information.
> +
> +properties:
> + compatible:
> + const: microsoft,sm8150-surface-duo-xbl
> +
> + reg:
> + maxItems: 1
> +
> +unevaluatedProperties: false
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> +
> +examples:
> + - |
> + xbl@146bfa94 {
> + compatible = "microsoft,sm8150-surface-duo-xbl";
> + reg = <0x00 0x146bfa94 0x00 0x100>;
> + };
> + - |
> + imem@146bf000 {
> + compatible = "simple-mfd";

'simple-mfd' needs a specific compatible for the block.

> + reg = <0x0 0x146bf000 0x0 0x1000>;
> + ranges = <0x0 0x0 0x146bf000 0x1000>;
> +
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + xbl@a94 {
> + compatible = "microsoft,sm8150-surface-duo-xbl";
> + reg = <0xa94 0x100>;
> + };
> + };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index eeb4c70b3d5b..8643546f8fab 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -12423,6 +12423,13 @@ F: Documentation/driver-api/surface_aggregator/clients/dtx.rst
> F: drivers/platform/surface/surface_dtx.c
> F: include/uapi/linux/surface_aggregator/dtx.h
>
> +MICROSOFT SURFACE DUO XBL DRIVER
> +M: Jarrett Schultz <[email protected]>
> +L: [email protected]
> +L: [email protected]
> +S: Supported
> +F: Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml
> +
> MICROSOFT SURFACE GPE LID SUPPORT DRIVER
> M: Maximilian Luz <[email protected]>
> L: [email protected]
> --
> 2.25.1
>
>

2021-11-16 16:17:54

by Jarrett Schultz

[permalink] [raw]
Subject: Re: [PATCH v2 1/5] dt-bindings: platform: microsoft: Document surface xbl

On Fri, Nov 12, 2021 at 08:39:24AM -0600, Rob Herring wrote:
> On Mon, Nov 08, 2021 at 08:44:45AM -0800, Jarrett Schultz wrote:
> > Introduce yaml for surface xbl driver.
> >
> > Signed-off-by: Jarrett Schultz <[email protected]>
>
> Author and Sob emails need to match.
>
> >
> > ---
> >
> > Changes in v2:
> > - Removed json-schema dependence
> > - Elaborated on description of driver
> > - Updated example
> >
> > ---
> >
> > .../platform/microsoft/surface-xbl.yaml | 57 +++++++++++++++++++
> > MAINTAINERS | 7 +++
> > 2 files changed, 64 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml b/Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml
> > new file mode 100644
> > index 000000000000..09f806f373bd
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml
> > @@ -0,0 +1,57 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/platform/microsoft/surface-xbl.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Surface Extensible Bootloader for Microsoft Surface Duo
> > +
> > +maintainers:
> > + - Jarrett Schultz <[email protected]>
> > +
> > +description: |
> > + Exposes the following device information to user space via sysfs -
>
> What's sysfs? :) Linux details don't go in bindings.
>
> > + * board_id
> > + * battery_present
> > + * hw_init_retries
> > + * is_customer_mode
> > + * is_act_mode
> > + * pmic_reset_reason
> > + * touch_fw_version
> > + * ocp_error_location
> > + See sysfs documentation for more information.
> > +
> > +properties:
> > + compatible:
> > + const: microsoft,sm8150-surface-duo-xbl
> > +
> > + reg:
> > + maxItems: 1
> > +
> > +unevaluatedProperties: false
> > +
> > +required:
> > + - compatible
> > + - reg
> > + - interrupts
> > +
> > +examples:
> > + - |
> > + xbl@146bfa94 {
> > + compatible = "microsoft,sm8150-surface-duo-xbl";
> > + reg = <0x00 0x146bfa94 0x00 0x100>;
> > + };
> > + - |
> > + imem@146bf000 {
> > + compatible = "simple-mfd";
>
> 'simple-mfd' needs a specific compatible for the block.
>

Is there any need to describe the inner "xbl@a94" binding? If so, could
you point me in the right direction?

> > + reg = <0x0 0x146bf000 0x0 0x1000>;
> > + ranges = <0x0 0x0 0x146bf000 0x1000>;
> > +
> > + #address-cells = <1>;
> > + #size-cells = <1>;
> > +
> > + xbl@a94 {
> > + compatible = "microsoft,sm8150-surface-duo-xbl";
> > + reg = <0xa94 0x100>;
> > + };
> > + };
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index eeb4c70b3d5b..8643546f8fab 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -12423,6 +12423,13 @@ F: Documentation/driver-api/surface_aggregator/clients/dtx.rst
> > F: drivers/platform/surface/surface_dtx.c
> > F: include/uapi/linux/surface_aggregator/dtx.h
> >
> > +MICROSOFT SURFACE DUO XBL DRIVER
> > +M: Jarrett Schultz <[email protected]>
> > +L: [email protected]
> > +L: [email protected]
> > +S: Supported
> > +F: Documentation/devicetree/bindings/platform/microsoft/surface-xbl.yaml
> > +
> > MICROSOFT SURFACE GPE LID SUPPORT DRIVER
> > M: Maximilian Luz <[email protected]>
> > L: [email protected]
> > --
> > 2.25.1
> >
> >