2020-11-06 02:17:50

by Sowjanya Komatineni

[permalink] [raw]
Subject: [PATCH v1 0/4] Add AHCI support for Tegra186

This series adds support for AHCI-compliant SATA to Tegra186 SoC.

This series includes patches for
- Converting text based dt-binding document to YAML.
- Adding dt-bindings for Tegra186.
- Enabling AHCI-compliance SATA for Jetson TX2.
- Adding Tegra186 support to Tegra AHCI driver.

Sowjanya Komatineni (4):
dt-bindings: ata: tegra: Convert binding documentation to YAML
dt-binding: ata: tegra: Add dt-binding documentation for Tegra186
arm64: tegra: Enable AHCI on Jetson TX2
ata: ahci_tegra: Add AHCI support for Tegra186

.../devicetree/bindings/ata/nvidia,tegra-ahci.yaml | 199 +++++++++++++++++++++
.../bindings/ata/nvidia,tegra124-ahci.txt | 44 -----
arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts | 4 +
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 28 +++
drivers/ata/ahci_tegra.c | 60 +++++--
5 files changed, 278 insertions(+), 57 deletions(-)
create mode 100644 Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
delete mode 100644 Documentation/devicetree/bindings/ata/nvidia,tegra124-ahci.txt

--
2.7.4


2020-11-06 02:17:53

by Sowjanya Komatineni

[permalink] [raw]
Subject: [PATCH v1 1/4] dt-bindings: ata: tegra: Convert binding documentation to YAML

This patch converts text based dt-binding document to YAML based
dt-binding document.

Signed-off-by: Sowjanya Komatineni <[email protected]>
---
.../devicetree/bindings/ata/nvidia,tegra-ahci.yaml | 152 +++++++++++++++++++++
.../bindings/ata/nvidia,tegra124-ahci.txt | 44 ------
2 files changed, 152 insertions(+), 44 deletions(-)
create mode 100644 Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
delete mode 100644 Documentation/devicetree/bindings/ata/nvidia,tegra124-ahci.txt

diff --git a/Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml b/Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
new file mode 100644
index 0000000..ac20f6e
--- /dev/null
+++ b/Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
@@ -0,0 +1,152 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/ata/nvidia,tegra-ahci.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Tegra AHCI SATA Controller
+
+maintainers:
+ - Thierry Reding <[email protected]>
+ - Jonathan Hunter <[email protected]>
+
+properties:
+ compatible:
+ enum:
+ - nvidia,tegra124-ahci
+ - nvidia,tegra132-ahci
+ - nvidia,tegra210-ahci
+
+ reg:
+ minItems: 2
+ maxItems: 3
+ items:
+ - description: AHCI registers
+ - description: SATA configuration and IPFS registers
+ - description: SATA AUX registers
+
+ interrupts:
+ maxItems: 1
+
+ clock-names:
+ maxItems: 2
+ items:
+ - const: sata
+ - const: sata-oob
+
+ clocks:
+ maxItems: 2
+ description:
+ Must contain an entry for each entry in clock-names.
+ See ../clocks/clock-bindings.txt for details.
+
+ reset-names:
+ maxItems: 3
+
+ resets:
+ maxItems: 3
+ description:
+ Must contain an entry for each entry in reset-names.
+ See ../reset/reset.txt for details.
+
+ phy-names:
+ items:
+ - const: sata-0
+
+ phys:
+ maxItems: 1
+ description:
+ Must contain an entry for each entry in phy-names.
+ See ../phy/phy-bindings.txt for details.
+
+ hvdd-supply:
+ description: SATA HVDD regulator supply.
+
+ vddio-supply:
+ description: SATA VDDIO regulator supply.
+
+ avdd-supply:
+ description: SATA AVDD regulator supply.
+
+ target-5v-supply:
+ description: SATA 5V power regulator supply.
+
+ target-12v-supply:
+ description: SATA 12V power regulator supply.
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - clock-names
+ - clocks
+ - reset-names
+ - resets
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - nvidia,tegra124-ahci
+ - nvidia,tegra132-ahci
+ then:
+ properties:
+ reg:
+ maxItems: 2
+ reset-names:
+ minItems: 3
+ items:
+ - const: sata
+ - const: sata-oob
+ - const: sata-cold
+ resets:
+ minItems: 3
+ required:
+ - phys
+ - phy-names
+ - hvdd-supply
+ - vddio-supply
+ - avdd-supply
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - nvidia,tegra210-ahci
+ then:
+ properties:
+ reg:
+ minItems: 3
+ reset-names:
+ minItems: 3
+ items:
+ - const: sata
+ - const: sata-oob
+ - const: sata-cold
+ resets:
+ minItems: 3
+
+additionalProperties: true
+
+examples:
+ - |
+ #include <dt-bindings/clock/tegra210-car.h>
+ #include <dt-bindings/reset/tegra210-car.h>
+
+ sata@70020000 {
+ compatible = "nvidia,tegra210-ahci";
+ reg = <0x0 0x70027000 0x0 0x00002000>, /* AHCI */
+ <0x0 0x70020000 0x0 0x00007000>, /* SATA */
+ <0x0 0x70001100 0x0 0x00010000>; /* SATA AUX */
+ interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&tegra_car TEGRA210_CLK_SATA>,
+ <&tegra_car TEGRA210_CLK_SATA_OOB>;
+ clock-names = "sata", "sata-oob";
+ resets = <&tegra_car 124>,
+ <&tegra_car 123>,
+ <&tegra_car 129>;
+ reset-names = "sata", "sata-oob", "sata-cold";
+ };
diff --git a/Documentation/devicetree/bindings/ata/nvidia,tegra124-ahci.txt b/Documentation/devicetree/bindings/ata/nvidia,tegra124-ahci.txt
deleted file mode 100644
index 12ab2f7..0000000
--- a/Documentation/devicetree/bindings/ata/nvidia,tegra124-ahci.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-Tegra SoC SATA AHCI controller
-
-Required properties :
-- compatible : Must be one of:
- - Tegra124 : "nvidia,tegra124-ahci"
- - Tegra132 : "nvidia,tegra132-ahci", "nvidia,tegra124-ahci"
- - Tegra210 : "nvidia,tegra210-ahci"
-- reg : Should contain 2 entries:
- - AHCI register set (SATA BAR5)
- - SATA register set
-- interrupts : Defines the interrupt used by SATA
-- clocks : Must contain an entry for each entry in clock-names.
- See ../clocks/clock-bindings.txt for details.
-- clock-names : Must include the following entries:
- - sata
- - sata-oob
-- resets : Must contain an entry for each entry in reset-names.
- See ../reset/reset.txt for details.
-- reset-names : Must include the following entries:
- - sata
- - sata-oob
- - sata-cold
-- phys : Must contain an entry for each entry in phy-names.
- See ../phy/phy-bindings.txt for details.
-- phy-names : Must include the following entries:
- - For Tegra124 and Tegra132:
- - sata-phy : XUSB PADCTL SATA PHY
-- For Tegra124 and Tegra132:
- - hvdd-supply : Defines the SATA HVDD regulator
- - vddio-supply : Defines the SATA VDDIO regulator
- - avdd-supply : Defines the SATA AVDD regulator
- - target-5v-supply : Defines the SATA 5V power regulator
- - target-12v-supply : Defines the SATA 12V power regulator
-
-Optional properties:
-- reg :
- - AUX register set
-- clock-names :
- - cml1 :
- cml1 clock should be defined here if the PHY driver
- doesn't manage them. If it does, they should not be.
-- phy-names :
- - For T210:
- - sata-phy
--
2.7.4

2020-11-06 02:18:02

by Sowjanya Komatineni

[permalink] [raw]
Subject: [PATCH v1 2/4] dt-binding: ata: tegra: Add dt-binding documentation for Tegra186

This patch adds dt-bindings documentation for Tegra186 AHCI
controller.

Signed-off-by: Sowjanya Komatineni <[email protected]>
---
.../devicetree/bindings/ata/nvidia,tegra-ahci.yaml | 47 ++++++++++++++++++++++
1 file changed, 47 insertions(+)

diff --git a/Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml b/Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
index ac20f6e..db382a0 100644
--- a/Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
+++ b/Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
@@ -16,6 +16,7 @@ properties:
- nvidia,tegra124-ahci
- nvidia,tegra132-ahci
- nvidia,tegra210-ahci
+ - nvidia,tegra186-ahci

reg:
minItems: 2
@@ -41,14 +42,37 @@ properties:
See ../clocks/clock-bindings.txt for details.

reset-names:
+ minItems: 2
maxItems: 3

resets:
+ minItems: 2
maxItems: 3
description:
Must contain an entry for each entry in reset-names.
See ../reset/reset.txt for details.

+ iommus:
+ maxItems: 1
+ description:
+ A reference to the IOMMU. See ../iommu/iommu.txt for details.
+
+ interconnect-names:
+ items:
+ - const: dma-mem
+ - const: write
+
+ interconnects:
+ maxItems: 2
+ description:
+ Pairs of phandles and interconnect provider specififer to denote
+ the edge source and destination ports of the interconnect path.
+ See ../interconnect/interconnect.txt for details.
+
+ power-domains:
+ items:
+ - description: SAX power-domain
+
phy-names:
items:
- const: sata-0
@@ -129,6 +153,29 @@ allOf:
resets:
minItems: 3

+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - nvidia,tegra186-ahci
+ then:
+ properties:
+ reg:
+ minItems: 3
+ reset-names:
+ maxItems: 2
+ items:
+ - const: sata
+ - const: sata-cold
+ resets:
+ maxItems: 2
+ required:
+ - iommus
+ - interconnect-names
+ - interconnects
+ - power-domains
+
additionalProperties: true

examples:
--
2.7.4

2020-11-06 02:18:03

by Sowjanya Komatineni

[permalink] [raw]
Subject: [PATCH v1 3/4] arm64: tegra: Enable AHCI on Jetson TX2

This patch enables AHCI on Jetson TX2.

Signed-off-by: Sowjanya Komatineni <[email protected]>
---
arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts | 4 ++++
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 28 ++++++++++++++++++++++
2 files changed, 32 insertions(+)

diff --git a/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts b/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts
index 381a84912..7e1723e 100644
--- a/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts
+++ b/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts
@@ -297,6 +297,10 @@
};
};

+ sata@3507000 {
+ status = "okay";
+ };
+
gpio-keys {
compatible = "gpio-keys";

diff --git a/arch/arm64/boot/dts/nvidia/tegra186.dtsi b/arch/arm64/boot/dts/nvidia/tegra186.dtsi
index 0c46ab7..7f5c002 100644
--- a/arch/arm64/boot/dts/nvidia/tegra186.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra186.dtsi
@@ -1501,6 +1501,34 @@
};
};

+ sata@3507000 {
+ compatible = "nvidia,tegra186-ahci";
+ reg = <0x0 0x03507000 0x0 0x00002000>, /* AHCI */
+ <0x0 0x03500000 0x0 0x00007000>, /* SATA */
+ <0x0 0x03A90000 0x0 0x00010000>; /* SATA AUX */
+ interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
+
+ power-domains = <&bpmp TEGRA186_POWER_DOMAIN_SAX>;
+ interconnects = <&mc TEGRA186_MEMORY_CLIENT_SATAR &emc>,
+ <&mc TEGRA186_MEMORY_CLIENT_SATAW &emc>;
+ interconnect-names = "dma-mem", "write";
+ iommus = <&smmu TEGRA186_SID_SATA>;
+
+ clocks = <&bpmp TEGRA186_CLK_SATA>,
+ <&bpmp TEGRA186_CLK_SATA_OOB>;
+ clock-names = "sata", "sata-oob";
+ assigned-clocks = <&bpmp TEGRA186_CLK_SATA>,
+ <&bpmp TEGRA186_CLK_SATA_OOB>;
+ assigned-clock-parents = <&bpmp TEGRA186_CLK_PLLP_OUT0>,
+ <&bpmp TEGRA186_CLK_PLLP>;
+ assigned-clock-rates = <102000000>,
+ <204000000>;
+ resets = <&bpmp TEGRA186_RESET_SATA>,
+ <&bpmp TEGRA186_RESET_SATACOLD>;
+ reset-names = "sata", "sata-cold";
+ status = "disabled";
+ };
+
bpmp: bpmp {
compatible = "nvidia,tegra186-bpmp";
interconnects = <&mc TEGRA186_MEMORY_CLIENT_BPMPR &emc>,
--
2.7.4

2020-11-06 02:18:17

by Sowjanya Komatineni

[permalink] [raw]
Subject: [PATCH v1 4/4] ata: ahci_tegra: Add AHCI support for Tegra186

This patch adds support for AHCI-compliant Serial ATA controller
on Tegra186 SoC.

Tegra186 does not have sata-oob reset.
Tegra186 SATA_NVOOB register filed COMMA_CNT position and width are
different compared to Tegra210 and prior.

So, this patch adds a flag has_sata_oob_rst and tegra_ahci_regs to
SoC specific strcuture tegra_ahci_soc and updated their implementation
accordingly.

Signed-off-by: Sowjanya Komatineni <[email protected]>
---
drivers/ata/ahci_tegra.c | 60 +++++++++++++++++++++++++++++++++++++-----------
1 file changed, 47 insertions(+), 13 deletions(-)

diff --git a/drivers/ata/ahci_tegra.c b/drivers/ata/ahci_tegra.c
index cb55ebc1..56612af 100644
--- a/drivers/ata/ahci_tegra.c
+++ b/drivers/ata/ahci_tegra.c
@@ -59,8 +59,6 @@
#define T_SATA0_CFG_PHY_1_PAD_PLL_IDDQ_EN BIT(22)

#define T_SATA0_NVOOB 0x114
-#define T_SATA0_NVOOB_COMMA_CNT_MASK (0xff << 16)
-#define T_SATA0_NVOOB_COMMA_CNT (0x07 << 16)
#define T_SATA0_NVOOB_SQUELCH_FILTER_MODE_MASK (0x3 << 24)
#define T_SATA0_NVOOB_SQUELCH_FILTER_MODE (0x1 << 24)
#define T_SATA0_NVOOB_SQUELCH_FILTER_LENGTH_MASK (0x3 << 26)
@@ -154,11 +152,18 @@ struct tegra_ahci_ops {
int (*init)(struct ahci_host_priv *hpriv);
};

+struct tegra_ahci_regs {
+ unsigned int nvoob_comma_cnt_mask;
+ unsigned int nvoob_comma_cnt_val;
+};
+
struct tegra_ahci_soc {
const char *const *supply_names;
u32 num_supplies;
bool supports_devslp;
+ bool has_sata_oob_rst;
const struct tegra_ahci_ops *ops;
+ const struct tegra_ahci_regs *regs;
};

struct tegra_ahci_priv {
@@ -240,11 +245,13 @@ static int tegra_ahci_power_on(struct ahci_host_priv *hpriv)
if (ret)
return ret;

- ret = tegra_powergate_sequence_power_up(TEGRA_POWERGATE_SATA,
- tegra->sata_clk,
- tegra->sata_rst);
- if (ret)
- goto disable_regulators;
+ if (!tegra->pdev->dev.pm_domain) {
+ ret = tegra_powergate_sequence_power_up(TEGRA_POWERGATE_SATA,
+ tegra->sata_clk,
+ tegra->sata_rst);
+ if (ret)
+ goto disable_regulators;
+ }

reset_control_assert(tegra->sata_oob_rst);
reset_control_assert(tegra->sata_cold_rst);
@@ -330,10 +337,10 @@ static int tegra_ahci_controller_init(struct ahci_host_priv *hpriv)
writel(val, tegra->sata_regs + SCFG_OFFSET + T_SATA_CFG_PHY_0);

val = readl(tegra->sata_regs + SCFG_OFFSET + T_SATA0_NVOOB);
- val &= ~(T_SATA0_NVOOB_COMMA_CNT_MASK |
+ val &= ~(tegra->soc->regs->nvoob_comma_cnt_mask |
T_SATA0_NVOOB_SQUELCH_FILTER_LENGTH_MASK |
T_SATA0_NVOOB_SQUELCH_FILTER_MODE_MASK);
- val |= (T_SATA0_NVOOB_COMMA_CNT |
+ val |= (tegra->soc->regs->nvoob_comma_cnt_val |
T_SATA0_NVOOB_SQUELCH_FILTER_LENGTH |
T_SATA0_NVOOB_SQUELCH_FILTER_MODE);
writel(val, tegra->sata_regs + SCFG_OFFSET + T_SATA0_NVOOB);
@@ -449,15 +456,35 @@ static const struct tegra_ahci_ops tegra124_ahci_ops = {
.init = tegra124_ahci_init,
};

+static const struct tegra_ahci_regs tegra124_ahci_regs = {
+ .nvoob_comma_cnt_mask = GENMASK(30, 28),
+ .nvoob_comma_cnt_val = (7 << 28),
+};
+
static const struct tegra_ahci_soc tegra124_ahci_soc = {
.supply_names = tegra124_supply_names,
.num_supplies = ARRAY_SIZE(tegra124_supply_names),
.supports_devslp = false,
+ .has_sata_oob_rst = true,
.ops = &tegra124_ahci_ops,
+ .regs = &tegra124_ahci_regs,
};

static const struct tegra_ahci_soc tegra210_ahci_soc = {
.supports_devslp = false,
+ .has_sata_oob_rst = true,
+ .regs = &tegra124_ahci_regs,
+};
+
+static const struct tegra_ahci_regs tegra186_ahci_regs = {
+ .nvoob_comma_cnt_mask = GENMASK(23, 16),
+ .nvoob_comma_cnt_val = (7 << 16),
+};
+
+static const struct tegra_ahci_soc tegra186_ahci_soc = {
+ .supports_devslp = false,
+ .has_sata_oob_rst = false,
+ .regs = &tegra186_ahci_regs,
};

static const struct of_device_id tegra_ahci_of_match[] = {
@@ -469,6 +496,10 @@ static const struct of_device_id tegra_ahci_of_match[] = {
.compatible = "nvidia,tegra210-ahci",
.data = &tegra210_ahci_soc
},
+ {
+ .compatible = "nvidia,tegra186-ahci",
+ .data = &tegra186_ahci_soc
+ },
{}
};
MODULE_DEVICE_TABLE(of, tegra_ahci_of_match);
@@ -518,10 +549,13 @@ static int tegra_ahci_probe(struct platform_device *pdev)
return PTR_ERR(tegra->sata_rst);
}

- tegra->sata_oob_rst = devm_reset_control_get(&pdev->dev, "sata-oob");
- if (IS_ERR(tegra->sata_oob_rst)) {
- dev_err(&pdev->dev, "Failed to get sata-oob reset\n");
- return PTR_ERR(tegra->sata_oob_rst);
+ if (tegra->soc->has_sata_oob_rst) {
+ tegra->sata_oob_rst = devm_reset_control_get(&pdev->dev,
+ "sata-oob");
+ if (IS_ERR(tegra->sata_oob_rst)) {
+ dev_err(&pdev->dev, "Failed to get sata-oob reset\n");
+ return PTR_ERR(tegra->sata_oob_rst);
+ }
}

tegra->sata_cold_rst = devm_reset_control_get(&pdev->dev, "sata-cold");
--
2.7.4

2020-11-06 16:13:50

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH v1 1/4] dt-bindings: ata: tegra: Convert binding documentation to YAML

On Thu, 05 Nov 2020 18:16:05 -0800, Sowjanya Komatineni wrote:
> This patch converts text based dt-binding document to YAML based
> dt-binding document.
>
> Signed-off-by: Sowjanya Komatineni <[email protected]>
> ---
> .../devicetree/bindings/ata/nvidia,tegra-ahci.yaml | 152 +++++++++++++++++++++
> .../bindings/ata/nvidia,tegra124-ahci.txt | 44 ------
> 2 files changed, 152 insertions(+), 44 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
> delete mode 100644 Documentation/devicetree/bindings/ata/nvidia,tegra124-ahci.txt
>


My bot found errors running 'make dt_binding_check' on your patch:

yamllint warnings/errors:

dtschema/dtc warnings/errors:
Error: Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.example.dts:27.31-32 syntax error
FATAL ERROR: Unable to parse input tree
make[1]: *** [scripts/Makefile.lib:342: Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.example.dt.yaml] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:1364: dt_binding_check] Error 2


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

The base for the patch is generally the last rc1. Any dependencies
should be noted.

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.

2020-11-06 16:17:22

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH v1 1/4] dt-bindings: ata: tegra: Convert binding documentation to YAML

On Thu, Nov 05, 2020 at 06:16:05PM -0800, Sowjanya Komatineni wrote:
> This patch converts text based dt-binding document to YAML based
> dt-binding document.
>
> Signed-off-by: Sowjanya Komatineni <[email protected]>
> ---
> .../devicetree/bindings/ata/nvidia,tegra-ahci.yaml | 152 +++++++++++++++++++++
> .../bindings/ata/nvidia,tegra124-ahci.txt | 44 ------
> 2 files changed, 152 insertions(+), 44 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
> delete mode 100644 Documentation/devicetree/bindings/ata/nvidia,tegra124-ahci.txt
>
> diff --git a/Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml b/Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
> new file mode 100644
> index 0000000..ac20f6e
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
> @@ -0,0 +1,152 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/ata/nvidia,tegra-ahci.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Tegra AHCI SATA Controller
> +
> +maintainers:
> + - Thierry Reding <[email protected]>
> + - Jonathan Hunter <[email protected]>
> +
> +properties:
> + compatible:
> + enum:
> + - nvidia,tegra124-ahci
> + - nvidia,tegra132-ahci
> + - nvidia,tegra210-ahci
> +
> + reg:
> + minItems: 2
> + maxItems: 3
> + items:
> + - description: AHCI registers
> + - description: SATA configuration and IPFS registers
> + - description: SATA AUX registers
> +
> + interrupts:
> + maxItems: 1
> +
> + clock-names:
> + maxItems: 2

Don't need maxItems, implied by the size of 'items'.

> + items:
> + - const: sata
> + - const: sata-oob
> +
> + clocks:
> + maxItems: 2
> + description:
> + Must contain an entry for each entry in clock-names.
> + See ../clocks/clock-bindings.txt for details.

Drop 'description'. Says nothing specific to this binding.

> +
> + reset-names:
> + maxItems: 3

Need to define what each reset is.

> +
> + resets:
> + maxItems: 3
> + description:
> + Must contain an entry for each entry in reset-names.
> + See ../reset/reset.txt for details.

Drop 'description'. Says nothing specific to this binding.

> +
> + phy-names:
> + items:
> + - const: sata-0
> +
> + phys:
> + maxItems: 1
> + description:
> + Must contain an entry for each entry in phy-names.
> + See ../phy/phy-bindings.txt for details.

Drop 'description'. Says nothing specific to this binding.

> +
> + hvdd-supply:
> + description: SATA HVDD regulator supply.
> +
> + vddio-supply:
> + description: SATA VDDIO regulator supply.
> +
> + avdd-supply:
> + description: SATA AVDD regulator supply.
> +
> + target-5v-supply:
> + description: SATA 5V power regulator supply.
> +
> + target-12v-supply:
> + description: SATA 12V power regulator supply.
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - clock-names
> + - clocks
> + - reset-names
> + - resets
> +
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - nvidia,tegra124-ahci
> + - nvidia,tegra132-ahci
> + then:
> + properties:
> + reg:
> + maxItems: 2

> + reset-names:
> + minItems: 3
> + items:
> + - const: sata
> + - const: sata-oob
> + - const: sata-cold
> + resets:
> + minItems: 3

This doesn't need to be conditional.

> + required:
> + - phys
> + - phy-names
> + - hvdd-supply
> + - vddio-supply
> + - avdd-supply
> +
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - nvidia,tegra210-ahci
> + then:
> + properties:
> + reg:
> + minItems: 3
> + reset-names:
> + minItems: 3
> + items:
> + - const: sata
> + - const: sata-oob
> + - const: sata-cold
> + resets:
> + minItems: 3
> +
> +additionalProperties: true
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/tegra210-car.h>
> + #include <dt-bindings/reset/tegra210-car.h>
> +
> + sata@70020000 {
> + compatible = "nvidia,tegra210-ahci";
> + reg = <0x0 0x70027000 0x0 0x00002000>, /* AHCI */
> + <0x0 0x70020000 0x0 0x00007000>, /* SATA */
> + <0x0 0x70001100 0x0 0x00010000>; /* SATA AUX */
> + interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&tegra_car TEGRA210_CLK_SATA>,
> + <&tegra_car TEGRA210_CLK_SATA_OOB>;
> + clock-names = "sata", "sata-oob";
> + resets = <&tegra_car 124>,
> + <&tegra_car 123>,
> + <&tegra_car 129>;
> + reset-names = "sata", "sata-oob", "sata-cold";
> + };
> diff --git a/Documentation/devicetree/bindings/ata/nvidia,tegra124-ahci.txt b/Documentation/devicetree/bindings/ata/nvidia,tegra124-ahci.txt
> deleted file mode 100644
> index 12ab2f7..0000000
> --- a/Documentation/devicetree/bindings/ata/nvidia,tegra124-ahci.txt
> +++ /dev/null
> @@ -1,44 +0,0 @@
> -Tegra SoC SATA AHCI controller
> -
> -Required properties :
> -- compatible : Must be one of:
> - - Tegra124 : "nvidia,tegra124-ahci"
> - - Tegra132 : "nvidia,tegra132-ahci", "nvidia,tegra124-ahci"
> - - Tegra210 : "nvidia,tegra210-ahci"
> -- reg : Should contain 2 entries:
> - - AHCI register set (SATA BAR5)
> - - SATA register set
> -- interrupts : Defines the interrupt used by SATA
> -- clocks : Must contain an entry for each entry in clock-names.
> - See ../clocks/clock-bindings.txt for details.
> -- clock-names : Must include the following entries:
> - - sata
> - - sata-oob
> -- resets : Must contain an entry for each entry in reset-names.
> - See ../reset/reset.txt for details.
> -- reset-names : Must include the following entries:
> - - sata
> - - sata-oob
> - - sata-cold
> -- phys : Must contain an entry for each entry in phy-names.
> - See ../phy/phy-bindings.txt for details.
> -- phy-names : Must include the following entries:
> - - For Tegra124 and Tegra132:
> - - sata-phy : XUSB PADCTL SATA PHY
> -- For Tegra124 and Tegra132:
> - - hvdd-supply : Defines the SATA HVDD regulator
> - - vddio-supply : Defines the SATA VDDIO regulator
> - - avdd-supply : Defines the SATA AVDD regulator
> - - target-5v-supply : Defines the SATA 5V power regulator
> - - target-12v-supply : Defines the SATA 12V power regulator
> -
> -Optional properties:
> -- reg :
> - - AUX register set
> -- clock-names :
> - - cml1 :
> - cml1 clock should be defined here if the PHY driver
> - doesn't manage them. If it does, they should not be.
> -- phy-names :
> - - For T210:
> - - sata-phy
> --
> 2.7.4
>

2020-11-06 16:43:35

by Sowjanya Komatineni

[permalink] [raw]
Subject: Re: [PATCH v1 1/4] dt-bindings: ata: tegra: Convert binding documentation to YAML


On 11/6/20 8:11 AM, Rob Herring wrote:
> On Thu, 05 Nov 2020 18:16:05 -0800, Sowjanya Komatineni wrote:
>> This patch converts text based dt-binding document to YAML based
>> dt-binding document.
>>
>> Signed-off-by: Sowjanya Komatineni <[email protected]>
>> ---
>> .../devicetree/bindings/ata/nvidia,tegra-ahci.yaml | 152 +++++++++++++++++++++
>> .../bindings/ata/nvidia,tegra124-ahci.txt | 44 ------
>> 2 files changed, 152 insertions(+), 44 deletions(-)
>> create mode 100644 Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
>> delete mode 100644 Documentation/devicetree/bindings/ata/nvidia,tegra124-ahci.txt
>>
>
> My bot found errors running 'make dt_binding_check' on your patch:
>
> yamllint warnings/errors:
>
> dtschema/dtc warnings/errors:
> Error: Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.example.dts:27.31-32 syntax error
> FATAL ERROR: Unable to parse input tree
> make[1]: *** [scripts/Makefile.lib:342: Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.example.dt.yaml] Error 1
> make[1]: *** Waiting for unfinished jobs....
> make: *** [Makefile:1364: dt_binding_check] Error 2
>
>
> See https://patchwork.ozlabs.org/patch/1395390
>
> The base for the patch is generally the last rc1. Any dependencies
> should be noted.
>
> 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.
Thanks Rob. Will re-try after installing up-to-date.

2020-11-06 16:49:11

by Sowjanya Komatineni

[permalink] [raw]
Subject: Re: [PATCH v1 1/4] dt-bindings: ata: tegra: Convert binding documentation to YAML


On 11/6/20 8:15 AM, Rob Herring wrote:
> On Thu, Nov 05, 2020 at 06:16:05PM -0800, Sowjanya Komatineni wrote:
>> This patch converts text based dt-binding document to YAML based
>> dt-binding document.
>>
>> Signed-off-by: Sowjanya Komatineni <[email protected]>
>> ---
>> .../devicetree/bindings/ata/nvidia,tegra-ahci.yaml | 152 +++++++++++++++++++++
>> .../bindings/ata/nvidia,tegra124-ahci.txt | 44 ------
>> 2 files changed, 152 insertions(+), 44 deletions(-)
>> create mode 100644 Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
>> delete mode 100644 Documentation/devicetree/bindings/ata/nvidia,tegra124-ahci.txt
>>
>> diff --git a/Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml b/Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
>> new file mode 100644
>> index 0000000..ac20f6e
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
>> @@ -0,0 +1,152 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/ata/nvidia,tegra-ahci.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Tegra AHCI SATA Controller
>> +
>> +maintainers:
>> + - Thierry Reding <[email protected]>
>> + - Jonathan Hunter <[email protected]>
>> +
>> +properties:
>> + compatible:
>> + enum:
>> + - nvidia,tegra124-ahci
>> + - nvidia,tegra132-ahci
>> + - nvidia,tegra210-ahci
>> +
>> + reg:
>> + minItems: 2
>> + maxItems: 3
>> + items:
>> + - description: AHCI registers
>> + - description: SATA configuration and IPFS registers
>> + - description: SATA AUX registers
>> +
>> + interrupts:
>> + maxItems: 1
>> +
>> + clock-names:
>> + maxItems: 2
> Don't need maxItems, implied by the size of 'items'.
>
>> + items:
>> + - const: sata
>> + - const: sata-oob
>> +
>> + clocks:
>> + maxItems: 2
>> + description:
>> + Must contain an entry for each entry in clock-names.
>> + See ../clocks/clock-bindings.txt for details.
> Drop 'description'. Says nothing specific to this binding.
>
>> +
>> + reset-names:
>> + maxItems: 3
> Need to define what each reset is.
reset-names are specified as conditional below.
>
>> +
>> + resets:
>> + maxItems: 3
>> + description:
>> + Must contain an entry for each entry in reset-names.
>> + See ../reset/reset.txt for details.
> Drop 'description'. Says nothing specific to this binding.
>
>> +
>> + phy-names:
>> + items:
>> + - const: sata-0
>> +
>> + phys:
>> + maxItems: 1
>> + description:
>> + Must contain an entry for each entry in phy-names.
>> + See ../phy/phy-bindings.txt for details.
> Drop 'description'. Says nothing specific to this binding.
>
>> +
>> + hvdd-supply:
>> + description: SATA HVDD regulator supply.
>> +
>> + vddio-supply:
>> + description: SATA VDDIO regulator supply.
>> +
>> + avdd-supply:
>> + description: SATA AVDD regulator supply.
>> +
>> + target-5v-supply:
>> + description: SATA 5V power regulator supply.
>> +
>> + target-12v-supply:
>> + description: SATA 12V power regulator supply.
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - interrupts
>> + - clock-names
>> + - clocks
>> + - reset-names
>> + - resets
>> +
>> +allOf:
>> + - if:
>> + properties:
>> + compatible:
>> + contains:
>> + enum:
>> + - nvidia,tegra124-ahci
>> + - nvidia,tegra132-ahci
>> + then:
>> + properties:
>> + reg:
>> + maxItems: 2
>> + reset-names:
>> + minItems: 3
>> + items:
>> + - const: sata
>> + - const: sata-oob
>> + - const: sata-cold
>> + resets:
>> + minItems: 3
> This doesn't need to be conditional.

Reason for specifying reset-names as conditional is as items are ordered
list, index: 0 - sata, 1 - sata-oob, and 2 - sata-cold

Tegra124 thru Tegra210 has all 3 resets but Tegra186 don't have sata-oob
and using reset-names as sata, sata-cold will change index of sata-cold
and I see dtbs_check shows error for sata-cold as index being wrong.

So added conditional reset-names to specify different order of these
names for Tegra186 and prior.

Please suggest any other way of forcing order of these names separately.

Otherwise, removing conditional reset-names and specifying in main
section also need to update all old dtbs to change order of the
reset-names in device tree to be sata, sata-cold and sata-oob so same
order will work for all SoC's.

>> + required:
>> + - phys
>> + - phy-names
>> + - hvdd-supply
>> + - vddio-supply
>> + - avdd-supply
>> +
>> + - if:
>> + properties:
>> + compatible:
>> + contains:
>> + enum:
>> + - nvidia,tegra210-ahci
>> + then:
>> + properties:
>> + reg:
>> + minItems: 3
>> + reset-names:
>> + minItems: 3
>> + items:
>> + - const: sata
>> + - const: sata-oob
>> + - const: sata-cold
>> + resets:
>> + minItems: 3
>> +
>> +additionalProperties: true
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/clock/tegra210-car.h>
>> + #include <dt-bindings/reset/tegra210-car.h>
>> +
>> + sata@70020000 {
>> + compatible = "nvidia,tegra210-ahci";
>> + reg = <0x0 0x70027000 0x0 0x00002000>, /* AHCI */
>> + <0x0 0x70020000 0x0 0x00007000>, /* SATA */
>> + <0x0 0x70001100 0x0 0x00010000>; /* SATA AUX */
>> + interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
>> + clocks = <&tegra_car TEGRA210_CLK_SATA>,
>> + <&tegra_car TEGRA210_CLK_SATA_OOB>;
>> + clock-names = "sata", "sata-oob";
>> + resets = <&tegra_car 124>,
>> + <&tegra_car 123>,
>> + <&tegra_car 129>;
>> + reset-names = "sata", "sata-oob", "sata-cold";
>> + };
>> diff --git a/Documentation/devicetree/bindings/ata/nvidia,tegra124-ahci.txt b/Documentation/devicetree/bindings/ata/nvidia,tegra124-ahci.txt
>> deleted file mode 100644
>> index 12ab2f7..0000000
>> --- a/Documentation/devicetree/bindings/ata/nvidia,tegra124-ahci.txt
>> +++ /dev/null
>> @@ -1,44 +0,0 @@
>> -Tegra SoC SATA AHCI controller
>> -
>> -Required properties :
>> -- compatible : Must be one of:
>> - - Tegra124 : "nvidia,tegra124-ahci"
>> - - Tegra132 : "nvidia,tegra132-ahci", "nvidia,tegra124-ahci"
>> - - Tegra210 : "nvidia,tegra210-ahci"
>> -- reg : Should contain 2 entries:
>> - - AHCI register set (SATA BAR5)
>> - - SATA register set
>> -- interrupts : Defines the interrupt used by SATA
>> -- clocks : Must contain an entry for each entry in clock-names.
>> - See ../clocks/clock-bindings.txt for details.
>> -- clock-names : Must include the following entries:
>> - - sata
>> - - sata-oob
>> -- resets : Must contain an entry for each entry in reset-names.
>> - See ../reset/reset.txt for details.
>> -- reset-names : Must include the following entries:
>> - - sata
>> - - sata-oob
>> - - sata-cold
>> -- phys : Must contain an entry for each entry in phy-names.
>> - See ../phy/phy-bindings.txt for details.
>> -- phy-names : Must include the following entries:
>> - - For Tegra124 and Tegra132:
>> - - sata-phy : XUSB PADCTL SATA PHY
>> -- For Tegra124 and Tegra132:
>> - - hvdd-supply : Defines the SATA HVDD regulator
>> - - vddio-supply : Defines the SATA VDDIO regulator
>> - - avdd-supply : Defines the SATA AVDD regulator
>> - - target-5v-supply : Defines the SATA 5V power regulator
>> - - target-12v-supply : Defines the SATA 12V power regulator
>> -
>> -Optional properties:
>> -- reg :
>> - - AUX register set
>> -- clock-names :
>> - - cml1 :
>> - cml1 clock should be defined here if the PHY driver
>> - doesn't manage them. If it does, they should not be.
>> -- phy-names :
>> - - For T210:
>> - - sata-phy
>> --
>> 2.7.4
>>

2020-11-06 17:21:15

by Sowjanya Komatineni

[permalink] [raw]
Subject: Re: [PATCH v1 1/4] dt-bindings: ata: tegra: Convert binding documentation to YAML


On 11/6/20 8:41 AM, Sowjanya Komatineni wrote:
>
> On 11/6/20 8:11 AM, Rob Herring wrote:
>> On Thu, 05 Nov 2020 18:16:05 -0800, Sowjanya Komatineni wrote:
>>> This patch converts text based dt-binding document to YAML based
>>> dt-binding document.
>>>
>>> Signed-off-by: Sowjanya Komatineni <[email protected]>
>>> ---
>>>   .../devicetree/bindings/ata/nvidia,tegra-ahci.yaml | 152
>>> +++++++++++++++++++++
>>>   .../bindings/ata/nvidia,tegra124-ahci.txt          |  44 ------
>>>   2 files changed, 152 insertions(+), 44 deletions(-)
>>>   create mode 100644
>>> Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
>>>   delete mode 100644
>>> Documentation/devicetree/bindings/ata/nvidia,tegra124-ahci.txt
>>>
>>
>> My bot found errors running 'make dt_binding_check' on your patch:
>>
>> yamllint warnings/errors:
>>
>> dtschema/dtc warnings/errors:
>> Error:
>> Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.example.dts:27.31-32
>> syntax error
>> FATAL ERROR: Unable to parse input tree
>> make[1]: *** [scripts/Makefile.lib:342:
>> Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.example.dt.yaml]
>> Error 1
>> make[1]: *** Waiting for unfinished jobs....
>> make: *** [Makefile:1364: dt_binding_check] Error 2
>>
>>
>> See https://patchwork.ozlabs.org/patch/1395390
>>
>> The base for the patch is generally the last rc1. Any dependencies
>> should be noted.
>>
>> 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.
> Thanks Rob. Will re-try after installing up-to-date.

Somehow running 'make dt_binding_check' gives below error.

I have yamllint newest version (1.2.1-1). Any specific version of
yamllint is needed?

 LINT    Documentation/devicetree/bindings
invalid config: unknown option "max-spaces-inside-empty" for rule "braces"
xargs: /usr/bin/yamllint: exited with status 255; aborting
Documentation/devicetree/bindings/Makefile:59: recipe for target
'Documentation/devicetree/bindings/processed-schema-examples.json' failed
make[1]: ***
[Documentation/devicetree/bindings/processed-schema-examples.json] Error 124
Makefile:1362: recipe for target 'dt_binding_check' failed
make: *** [dt_binding_check] Error 2

2020-11-13 03:56:41

by Sowjanya Komatineni

[permalink] [raw]
Subject: Re: [PATCH v1 1/4] dt-bindings: ata: tegra: Convert binding documentation to YAML

Hi Rob,

Updated yamllint and dt-schema as well.

When I do make dt_binding_check, I see it failed as
processed-schema-examples.json is not generated.
Any idea of what I may be missing?

Also it did not go thru bindings/ata path. Tried with DT_SCHEMA_FILES to
tegra-ahci.yaml as well and I see same.
make dt_binding_check
DT_SCHEMA_FILES=Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml

LINT    Documentation/devicetree/bindings
./Documentation/devicetree/bindings/mmc/mtk-sd.yaml:20:9: [warning]
wrong indentation: expected 10 but found 8 (indentation)
./Documentation/devicetree/bindings/mmc/mtk-sd.yaml:30:9: [warning]
wrong indentation: expected 10 but found 8 (indentation)
./Documentation/devicetree/bindings/mmc/mtk-sd.yaml:33:9: [warning]
wrong indentation: expected 10 but found 8 (indentation)
./Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml:37:2:
[error] syntax error: expected <block end>, but found '<scalar>' (syntax)
./Documentation/devicetree/bindings/soc/aspeed/xdma.yaml:10:2: [warning]
wrong indentation: expected 2 but found 1 (indentation)
./Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml:10:4:
[warning] wrong indentation: expected 2 but found 3 (indentation)
./Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml:18:7:
[warning] wrong indentation: expected 4 but found 6 (indentation)
./Documentation/devicetree/bindings/sound/mt8192-afe-pcm.yaml:10:4:
[warning] wrong indentation: expected 2 but found 3 (indentation)
./Documentation/devicetree/bindings/sound/mt8192-afe-pcm.yaml:15:7:
[warning] wrong indentation: expected 4 but found 6 (indentation)
./Documentation/devicetree/bindings/display/panel/novatek,nt36672a.yaml:25:10:
[warning] wrong indentation: expected 10 but found 9 (indentation)
./Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml:52:9:
[warning] wrong indentation: expected 6 but found 8 (indentation)
./Documentation/devicetree/bindings/clock/imx8qxp-lpcg.yaml:32:13:
[warning] wrong indentation: expected 14 but found 12 (indentation)
./Documentation/devicetree/bindings/clock/imx8qxp-lpcg.yaml:35:9:
[warning] wrong indentation: expected 10 but found 8 (indentation)
Documentation/devicetree/bindings/Makefile:59: recipe for target
'Documentation/devicetree/bindings/processed-schema-examples.json' failed
make[1]: ***
[Documentation/devicetree/bindings/processed-schema-examples.json] Error 123
Makefile:1362: recipe for target 'dt_binding_check' failed
make: *** [dt_binding_check] Error 2


When I do dtbs_check, I see
Documentation/devicetree/bindings/processed-schema.json generated and
also it passes for tegra-ahci.yaml

make ARCH=arm64 dtbs_check
DT_SCHEMA_FILES=Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml

Regards,

Sowjanya


On 11/6/20 9:18 AM, Sowjanya Komatineni wrote:
>
> On 11/6/20 8:41 AM, Sowjanya Komatineni wrote:
>>
>> On 11/6/20 8:11 AM, Rob Herring wrote:
>>> On Thu, 05 Nov 2020 18:16:05 -0800, Sowjanya Komatineni wrote:
>>>> This patch converts text based dt-binding document to YAML based
>>>> dt-binding document.
>>>>
>>>> Signed-off-by: Sowjanya Komatineni <[email protected]>
>>>> ---
>>>>   .../devicetree/bindings/ata/nvidia,tegra-ahci.yaml | 152
>>>> +++++++++++++++++++++
>>>>   .../bindings/ata/nvidia,tegra124-ahci.txt          |  44 ------
>>>>   2 files changed, 152 insertions(+), 44 deletions(-)
>>>>   create mode 100644
>>>> Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
>>>>   delete mode 100644
>>>> Documentation/devicetree/bindings/ata/nvidia,tegra124-ahci.txt
>>>>
>>>
>>> My bot found errors running 'make dt_binding_check' on your patch:
>>>
>>> yamllint warnings/errors:
>>>
>>> dtschema/dtc warnings/errors:
>>> Error:
>>> Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.example.dts:27.31-32
>>> syntax error
>>> FATAL ERROR: Unable to parse input tree
>>> make[1]: *** [scripts/Makefile.lib:342:
>>> Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.example.dt.yaml]
>>> Error 1
>>> make[1]: *** Waiting for unfinished jobs....
>>> make: *** [Makefile:1364: dt_binding_check] Error 2
>>>
>>>
>>> See https://patchwork.ozlabs.org/patch/1395390
>>>
>>> The base for the patch is generally the last rc1. Any dependencies
>>> should be noted.
>>>
>>> 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.
>> Thanks Rob. Will re-try after installing up-to-date.
>
> Somehow running 'make dt_binding_check' gives below error.
>
> I have yamllint newest version (1.2.1-1). Any specific version of
> yamllint is needed?
>
>  LINT    Documentation/devicetree/bindings
> invalid config: unknown option "max-spaces-inside-empty" for rule
> "braces"
> xargs: /usr/bin/yamllint: exited with status 255; aborting
> Documentation/devicetree/bindings/Makefile:59: recipe for target
> 'Documentation/devicetree/bindings/processed-schema-examples.json' failed
> make[1]: ***
> [Documentation/devicetree/bindings/processed-schema-examples.json]
> Error 124
> Makefile:1362: recipe for target 'dt_binding_check' failed
> make: *** [dt_binding_check] Error 2
>

2020-11-13 14:02:03

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH v1 1/4] dt-bindings: ata: tegra: Convert binding documentation to YAML

On Thu, Nov 12, 2020 at 9:54 PM Sowjanya Komatineni
<[email protected]> wrote:
>
> Hi Rob,
>
> Updated yamllint and dt-schema as well.
>
> When I do make dt_binding_check, I see it failed as
> processed-schema-examples.json is not generated.
> Any idea of what I may be missing?
>
> Also it did not go thru bindings/ata path. Tried with DT_SCHEMA_FILES to
> tegra-ahci.yaml as well and I see same.
> make dt_binding_check
> DT_SCHEMA_FILES=Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
>
> LINT Documentation/devicetree/bindings
> ./Documentation/devicetree/bindings/mmc/mtk-sd.yaml:20:9: [warning]
> wrong indentation: expected 10 but found 8 (indentation)
> ./Documentation/devicetree/bindings/mmc/mtk-sd.yaml:30:9: [warning]
> wrong indentation: expected 10 but found 8 (indentation)
> ./Documentation/devicetree/bindings/mmc/mtk-sd.yaml:33:9: [warning]
> wrong indentation: expected 10 but found 8 (indentation)
> ./Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml:37:2:
> [error] syntax error: expected <block end>, but found '<scalar>' (syntax)

I believe this error only occurred on linux-next. linux-next is not a
base you should develop on (usually). rc2 is good. Unfortunately
someone broke rc3.

> ./Documentation/devicetree/bindings/soc/aspeed/xdma.yaml:10:2: [warning]
> wrong indentation: expected 2 but found 1 (indentation)
> ./Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml:10:4:
> [warning] wrong indentation: expected 2 but found 3 (indentation)
> ./Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml:18:7:
> [warning] wrong indentation: expected 4 but found 6 (indentation)
> ./Documentation/devicetree/bindings/sound/mt8192-afe-pcm.yaml:10:4:
> [warning] wrong indentation: expected 2 but found 3 (indentation)
> ./Documentation/devicetree/bindings/sound/mt8192-afe-pcm.yaml:15:7:
> [warning] wrong indentation: expected 4 but found 6 (indentation)
> ./Documentation/devicetree/bindings/display/panel/novatek,nt36672a.yaml:25:10:
> [warning] wrong indentation: expected 10 but found 9 (indentation)
> ./Documentation/devicetree/bindings/display/bridge/analogix,anx7625.yaml:52:9:
> [warning] wrong indentation: expected 6 but found 8 (indentation)
> ./Documentation/devicetree/bindings/clock/imx8qxp-lpcg.yaml:32:13:
> [warning] wrong indentation: expected 14 but found 12 (indentation)
> ./Documentation/devicetree/bindings/clock/imx8qxp-lpcg.yaml:35:9:
> [warning] wrong indentation: expected 10 but found 8 (indentation)
> Documentation/devicetree/bindings/Makefile:59: recipe for target
> 'Documentation/devicetree/bindings/processed-schema-examples.json' failed
> make[1]: ***
> [Documentation/devicetree/bindings/processed-schema-examples.json] Error 123
> Makefile:1362: recipe for target 'dt_binding_check' failed
> make: *** [dt_binding_check] Error 2

Use 'make -k' if there are unrelated errors.

>
> When I do dtbs_check, I see
> Documentation/devicetree/bindings/processed-schema.json generated and
> also it passes for tegra-ahci.yaml

Then it should be good.

Rob

>
> make ARCH=arm64 dtbs_check
> DT_SCHEMA_FILES=Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
>
> Regards,
>
> Sowjanya
>
>
> On 11/6/20 9:18 AM, Sowjanya Komatineni wrote:
> >
> > On 11/6/20 8:41 AM, Sowjanya Komatineni wrote:
> >>
> >> On 11/6/20 8:11 AM, Rob Herring wrote:
> >>> On Thu, 05 Nov 2020 18:16:05 -0800, Sowjanya Komatineni wrote:
> >>>> This patch converts text based dt-binding document to YAML based
> >>>> dt-binding document.
> >>>>
> >>>> Signed-off-by: Sowjanya Komatineni <[email protected]>
> >>>> ---
> >>>> .../devicetree/bindings/ata/nvidia,tegra-ahci.yaml | 152
> >>>> +++++++++++++++++++++
> >>>> .../bindings/ata/nvidia,tegra124-ahci.txt | 44 ------
> >>>> 2 files changed, 152 insertions(+), 44 deletions(-)
> >>>> create mode 100644
> >>>> Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.yaml
> >>>> delete mode 100644
> >>>> Documentation/devicetree/bindings/ata/nvidia,tegra124-ahci.txt
> >>>>
> >>>
> >>> My bot found errors running 'make dt_binding_check' on your patch:
> >>>
> >>> yamllint warnings/errors:
> >>>
> >>> dtschema/dtc warnings/errors:
> >>> Error:
> >>> Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.example.dts:27.31-32
> >>> syntax error
> >>> FATAL ERROR: Unable to parse input tree
> >>> make[1]: *** [scripts/Makefile.lib:342:
> >>> Documentation/devicetree/bindings/ata/nvidia,tegra-ahci.example.dt.yaml]
> >>> Error 1
> >>> make[1]: *** Waiting for unfinished jobs....
> >>> make: *** [Makefile:1364: dt_binding_check] Error 2
> >>>
> >>>
> >>> See https://patchwork.ozlabs.org/patch/1395390
> >>>
> >>> The base for the patch is generally the last rc1. Any dependencies
> >>> should be noted.
> >>>
> >>> 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.
> >> Thanks Rob. Will re-try after installing up-to-date.
> >
> > Somehow running 'make dt_binding_check' gives below error.
> >
> > I have yamllint newest version (1.2.1-1). Any specific version of
> > yamllint is needed?
> >
> > LINT Documentation/devicetree/bindings
> > invalid config: unknown option "max-spaces-inside-empty" for rule
> > "braces"
> > xargs: /usr/bin/yamllint: exited with status 255; aborting
> > Documentation/devicetree/bindings/Makefile:59: recipe for target
> > 'Documentation/devicetree/bindings/processed-schema-examples.json' failed
> > make[1]: ***
> > [Documentation/devicetree/bindings/processed-schema-examples.json]
> > Error 124
> > Makefile:1362: recipe for target 'dt_binding_check' failed
> > make: *** [dt_binding_check] Error 2
> >