Message ID | 20210813125414.104467-1-krzysztof.kozlowski@canonical.com |
---|---|
State | Superseded |
Headers | show |
Series | dt-bindings: memory: convert Samsung Exynos DMC to dtschema | expand |
Hi Krzysztof, On 8/13/21 1:54 PM, Krzysztof Kozlowski wrote: > Convert Samsung Exynos5422 SoC frequency and voltage scaling for > Dynamic Memory Controller to DT schema format using json-schema. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> > --- > .../memory-controllers/exynos5422-dmc.txt | 84 ----------- > .../samsung,exynos5422-dmc.yaml | 137 ++++++++++++++++++ > MAINTAINERS | 2 +- I'm not an expert in this DT scripts and why it complains. Maybe it complains because the "samsung,exynos-ppmu" is defined in the .txt file... (?) Although, in general looks OK. Acked-by: Lukasz Luba <lukasz.luba@arm.com> Regards, Lukasz
On 8/16/21 9:32 AM, Krzysztof Kozlowski wrote: > On 16/08/2021 09:53, Lukasz Luba wrote: >> Hi Krzysztof, >> >> On 8/13/21 1:54 PM, Krzysztof Kozlowski wrote: >>> Convert Samsung Exynos5422 SoC frequency and voltage scaling for >>> Dynamic Memory Controller to DT schema format using json-schema. >>> >>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> >>> --- >>> .../memory-controllers/exynos5422-dmc.txt | 84 ----------- >>> .../samsung,exynos5422-dmc.yaml | 137 ++++++++++++++++++ >>> MAINTAINERS | 2 +- >> >> I'm not an expert in this DT scripts and why it complains. Maybe it >> complains because the "samsung,exynos-ppmu" is defined in the .txt >> file... (?) >> Although, in general looks OK. >> >> Acked-by: Lukasz Luba <lukasz.luba@arm.com> > > I think the warning (triggered by DT_CHECKER_FLAGS=-m) can be ignored > because it complains about compatible in example which is not present in > the bindings. Usually it means someone wrote example not matching the > bindings (e.g. a typo in compatible) but here it is on purpose. Fair enough. Thanks for working on it!
On Mon, Aug 16, 2021 at 3:32 AM Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> wrote: > > On 16/08/2021 09:53, Lukasz Luba wrote: > > Hi Krzysztof, > > > > On 8/13/21 1:54 PM, Krzysztof Kozlowski wrote: > >> Convert Samsung Exynos5422 SoC frequency and voltage scaling for > >> Dynamic Memory Controller to DT schema format using json-schema. > >> > >> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> > >> --- > >> .../memory-controllers/exynos5422-dmc.txt | 84 ----------- > >> .../samsung,exynos5422-dmc.yaml | 137 ++++++++++++++++++ > >> MAINTAINERS | 2 +- > > > > I'm not an expert in this DT scripts and why it complains. Maybe it > > complains because the "samsung,exynos-ppmu" is defined in the .txt > > file... (?) > > Although, in general looks OK. > > > > Acked-by: Lukasz Luba <lukasz.luba@arm.com> > > I think the warning (triggered by DT_CHECKER_FLAGS=-m) can be ignored > because it complains about compatible in example which is not present in > the bindings. Usually it means someone wrote example not matching the > bindings (e.g. a typo in compatible) but here it is on purpose. Ultimately, it will mean the binding is undocumented (or a typo). But right now, it means the binding is undocumented with a schema. It's off by default because there's still about 80 warnings. It's turned on for the bot so we don't add more. So please don't ignore it. Rob
On 18/08/2021 16:31, Rob Herring wrote: > On Mon, Aug 16, 2021 at 3:32 AM Krzysztof Kozlowski > <krzysztof.kozlowski@canonical.com> wrote: >> >> On 16/08/2021 09:53, Lukasz Luba wrote: >>> Hi Krzysztof, >>> >>> On 8/13/21 1:54 PM, Krzysztof Kozlowski wrote: >>>> Convert Samsung Exynos5422 SoC frequency and voltage scaling for >>>> Dynamic Memory Controller to DT schema format using json-schema. >>>> >>>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> >>>> --- >>>> .../memory-controllers/exynos5422-dmc.txt | 84 ----------- >>>> .../samsung,exynos5422-dmc.yaml | 137 ++++++++++++++++++ >>>> MAINTAINERS | 2 +- >>> >>> I'm not an expert in this DT scripts and why it complains. Maybe it >>> complains because the "samsung,exynos-ppmu" is defined in the .txt >>> file... (?) >>> Although, in general looks OK. >>> >>> Acked-by: Lukasz Luba <lukasz.luba@arm.com> >> >> I think the warning (triggered by DT_CHECKER_FLAGS=-m) can be ignored >> because it complains about compatible in example which is not present in >> the bindings. Usually it means someone wrote example not matching the >> bindings (e.g. a typo in compatible) but here it is on purpose. > > Ultimately, it will mean the binding is undocumented (or a typo). But > right now, it means the binding is undocumented with a schema. It's > off by default because there's still about 80 warnings. It's turned on > for the bot so we don't add more. So please don't ignore it. > By "Ignore" I meant here that it is a false positive, so it can be ignored. The warning is about compatible "samsung,exynos-ppmu" used in the example. However this exynos-ppmu is not part of this bindings and is documented elsewhere: Documentation/devicetree/bindings/devfreq/event/exynos-ppmu.txt Best regards, Krzysztof
On Wed, Aug 18, 2021 at 9:43 AM Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> wrote: > > On 18/08/2021 16:31, Rob Herring wrote: > > On Mon, Aug 16, 2021 at 3:32 AM Krzysztof Kozlowski > > <krzysztof.kozlowski@canonical.com> wrote: > >> > >> On 16/08/2021 09:53, Lukasz Luba wrote: > >>> Hi Krzysztof, > >>> > >>> On 8/13/21 1:54 PM, Krzysztof Kozlowski wrote: > >>>> Convert Samsung Exynos5422 SoC frequency and voltage scaling for > >>>> Dynamic Memory Controller to DT schema format using json-schema. > >>>> > >>>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> > >>>> --- > >>>> .../memory-controllers/exynos5422-dmc.txt | 84 ----------- > >>>> .../samsung,exynos5422-dmc.yaml | 137 ++++++++++++++++++ > >>>> MAINTAINERS | 2 +- > >>> > >>> I'm not an expert in this DT scripts and why it complains. Maybe it > >>> complains because the "samsung,exynos-ppmu" is defined in the .txt > >>> file... (?) > >>> Although, in general looks OK. > >>> > >>> Acked-by: Lukasz Luba <lukasz.luba@arm.com> > >> > >> I think the warning (triggered by DT_CHECKER_FLAGS=-m) can be ignored > >> because it complains about compatible in example which is not present in > >> the bindings. Usually it means someone wrote example not matching the > >> bindings (e.g. a typo in compatible) but here it is on purpose. > > > > Ultimately, it will mean the binding is undocumented (or a typo). But > > right now, it means the binding is undocumented with a schema. It's > > off by default because there's still about 80 warnings. It's turned on > > for the bot so we don't add more. So please don't ignore it. > > > > By "Ignore" I meant here that it is a false positive, so it can be > ignored. The warning is about compatible "samsung,exynos-ppmu" used in > the example. However this exynos-ppmu is not part of this bindings and > is documented elsewhere: > Documentation/devicetree/bindings/devfreq/event/exynos-ppmu.txt Yes, I understood all that. Let me be clear. I don't want examples which don't have a schema. So drop the node or convert exynos-ppmu.txt. First, when we do add a schema, then we likely have to go fix the examples. It happens a lot and is not caught with folks using DT_SCHEMA_FILES. Second, I don't like reporting errors that users should have gotten by default. We can't turn this check on by default until the 80 or so cases we already have in the binding examples are fixed. Rob
On 20/08/2021 15:31, Rob Herring wrote: > On Wed, Aug 18, 2021 at 9:43 AM Krzysztof Kozlowski > <krzysztof.kozlowski@canonical.com> wrote: >> >> On 18/08/2021 16:31, Rob Herring wrote: >>> On Mon, Aug 16, 2021 at 3:32 AM Krzysztof Kozlowski >>> <krzysztof.kozlowski@canonical.com> wrote: >>>> >>>> On 16/08/2021 09:53, Lukasz Luba wrote: >>>>> Hi Krzysztof, >>>>> >>>>> On 8/13/21 1:54 PM, Krzysztof Kozlowski wrote: >>>>>> Convert Samsung Exynos5422 SoC frequency and voltage scaling for >>>>>> Dynamic Memory Controller to DT schema format using json-schema. >>>>>> >>>>>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> >>>>>> --- >>>>>> .../memory-controllers/exynos5422-dmc.txt | 84 ----------- >>>>>> .../samsung,exynos5422-dmc.yaml | 137 ++++++++++++++++++ >>>>>> MAINTAINERS | 2 +- >>>>> >>>>> I'm not an expert in this DT scripts and why it complains. Maybe it >>>>> complains because the "samsung,exynos-ppmu" is defined in the .txt >>>>> file... (?) >>>>> Although, in general looks OK. >>>>> >>>>> Acked-by: Lukasz Luba <lukasz.luba@arm.com> >>>> >>>> I think the warning (triggered by DT_CHECKER_FLAGS=-m) can be ignored >>>> because it complains about compatible in example which is not present in >>>> the bindings. Usually it means someone wrote example not matching the >>>> bindings (e.g. a typo in compatible) but here it is on purpose. >>> >>> Ultimately, it will mean the binding is undocumented (or a typo). But >>> right now, it means the binding is undocumented with a schema. It's >>> off by default because there's still about 80 warnings. It's turned on >>> for the bot so we don't add more. So please don't ignore it. >>> >> >> By "Ignore" I meant here that it is a false positive, so it can be >> ignored. The warning is about compatible "samsung,exynos-ppmu" used in >> the example. However this exynos-ppmu is not part of this bindings and >> is documented elsewhere: >> Documentation/devicetree/bindings/devfreq/event/exynos-ppmu.txt > > Yes, I understood all that. Let me be clear. I don't want examples > which don't have a schema. So drop the node or convert > exynos-ppmu.txt. > > First, when we do add a schema, then we likely have to go fix the > examples. It happens a lot and is not caught with folks using > DT_SCHEMA_FILES. Second, I don't like reporting errors that users > should have gotten by default. We can't turn this check on by default > until the 80 or so cases we already have in the binding examples are > fixed. Understood, I'll send both of these bindings. Best regards, Krzysztof
diff --git a/Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt b/Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt deleted file mode 100644 index 02e4a1f862f1..000000000000 --- a/Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt +++ /dev/null @@ -1,84 +0,0 @@ -* Exynos5422 frequency and voltage scaling for Dynamic Memory Controller device - -The Samsung Exynos5422 SoC has DMC (Dynamic Memory Controller) to which the DRAM -memory chips are connected. The driver is to monitor the controller in runtime -and switch frequency and voltage. To monitor the usage of the controller in -runtime, the driver uses the PPMU (Platform Performance Monitoring Unit), which -is able to measure the current load of the memory. -When 'userspace' governor is used for the driver, an application is able to -switch the DMC and memory frequency. - -Required properties for DMC device for Exynos5422: -- compatible: Should be "samsung,exynos5422-dmc". -- clocks : list of clock specifiers, must contain an entry for each - required entry in clock-names for CLK_FOUT_SPLL, CLK_MOUT_SCLK_SPLL, - CLK_FF_DOUT_SPLL2, CLK_FOUT_BPLL, CLK_MOUT_BPLL, CLK_SCLK_BPLL, - CLK_MOUT_MX_MSPLL_CCORE, CLK_MOUT_MX_MSPLL_CCORE_PHY, CLK_MOUT_MCLK_CDREX, -- clock-names : should include "fout_spll", "mout_sclk_spll", "ff_dout_spll2", - "fout_bpll", "mout_bpll", "sclk_bpll", "mout_mx_mspll_ccore", - "mout_mclk_cdrex" entries -- devfreq-events : phandles for PPMU devices connected to this DMC. -- vdd-supply : phandle for voltage regulator which is connected. -- reg : registers of two CDREX controllers. -- operating-points-v2 : phandle for OPPs described in v2 definition. -- device-handle : phandle of the connected DRAM memory device. For more - information please refer to documentation file: - Documentation/devicetree/bindings/ddr/lpddr3.txt -- devfreq-events : phandles of the PPMU events used by the controller. -- samsung,syscon-clk : phandle of the clock register set used by the controller, - these registers are used for enabling a 'pause' feature and are not - exposed by clock framework but they must be used in a safe way. - The register offsets are in the driver code and specyfic for this SoC - type. - -Optional properties for DMC device for Exynos5422: -- interrupt-parent : The parent interrupt controller. -- interrupts : Contains the IRQ line numbers for the DMC internal performance - event counters in DREX0 and DREX1 channels. Align with specification of the - interrupt line(s) in the interrupt-parent controller. -- interrupt-names : IRQ names "drex_0" and "drex_1", the order should be the - same as in the 'interrupts' list above. - -Example: - - ppmu_dmc0_0: ppmu@10d00000 { - compatible = "samsung,exynos-ppmu"; - reg = <0x10d00000 0x2000>; - clocks = <&clock CLK_PCLK_PPMU_DREX0_0>; - clock-names = "ppmu"; - events { - ppmu_event_dmc0_0: ppmu-event3-dmc0_0 { - event-name = "ppmu-event3-dmc0_0"; - }; - }; - }; - - dmc: memory-controller@10c20000 { - compatible = "samsung,exynos5422-dmc"; - reg = <0x10c20000 0x10000>, <0x10c30000 0x10000>; - clocks = <&clock CLK_FOUT_SPLL>, - <&clock CLK_MOUT_SCLK_SPLL>, - <&clock CLK_FF_DOUT_SPLL2>, - <&clock CLK_FOUT_BPLL>, - <&clock CLK_MOUT_BPLL>, - <&clock CLK_SCLK_BPLL>, - <&clock CLK_MOUT_MX_MSPLL_CCORE>, - <&clock CLK_MOUT_MCLK_CDREX>; - clock-names = "fout_spll", - "mout_sclk_spll", - "ff_dout_spll2", - "fout_bpll", - "mout_bpll", - "sclk_bpll", - "mout_mx_mspll_ccore", - "mout_mclk_cdrex"; - operating-points-v2 = <&dmc_opp_table>; - devfreq-events = <&ppmu_event3_dmc0_0>, <&ppmu_event3_dmc0_1>, - <&ppmu_event3_dmc1_0>, <&ppmu_event3_dmc1_1>; - device-handle = <&samsung_K3QF2F20DB>; - vdd-supply = <&buck1_reg>; - samsung,syscon-clk = <&clock>; - interrupt-parent = <&combiner>; - interrupts = <16 0>, <16 1>; - interrupt-names = "drex_0", "drex_1"; - }; diff --git a/Documentation/devicetree/bindings/memory-controllers/samsung,exynos5422-dmc.yaml b/Documentation/devicetree/bindings/memory-controllers/samsung,exynos5422-dmc.yaml new file mode 100644 index 000000000000..b168a9c8bfde --- /dev/null +++ b/Documentation/devicetree/bindings/memory-controllers/samsung,exynos5422-dmc.yaml @@ -0,0 +1,137 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/memory-controllers/samsung,exynos5422-dmc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: | + Samsung Exynos5422 SoC frequency and voltage scaling for Dynamic Memory + Controller device + +maintainers: + - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> + - Lukasz Luba <lukasz.luba@arm.com> + +description: | + The Samsung Exynos5422 SoC has DMC (Dynamic Memory Controller) to which the + DRAM memory chips are connected. The driver is to monitor the controller in + runtime and switch frequency and voltage. To monitor the usage of the + controller in runtime, the driver uses the PPMU (Platform Performance + Monitoring Unit), which is able to measure the current load of the memory. + When 'userspace' governor is used for the driver, an application is able to + switch the DMC and memory frequency. + +properties: + compatible: + items: + - const: samsung,exynos5422-dmc + + clock-names: + items: + - const: fout_spll + - const: mout_sclk_spll + - const: ff_dout_spll2 + - const: fout_bpll + - const: mout_bpll + - const: sclk_bpll + - const: mout_mx_mspll_ccore + - const: mout_mclk_cdrex + + clocks: + minItems: 8 + maxItems: 8 + + devfreq-events: + $ref: '/schemas/types.yaml#/definitions/phandle-array' + minItems: 1 + maxItems: 16 + description: phandles of the PPMU events used by the controller. + + device-handle: + $ref: '/schemas/types.yaml#/definitions/phandle' + description: | + phandle of the connected DRAM memory device. For more information please + refer to documentation file: Documentation/devicetree/bindings/ddr/lpddr3.txt + + operating-points-v2: true + + interrupts: + items: + - description: DMC internal performance event counters in DREX0 + - description: DMC internal performance event counters in DREX1 + + interrupt-names: + items: + - const: drex_0 + - const: drex_1 + + reg: + items: + - description: registers of DREX0 + - description: registers of DREX1 + + samsung,syscon-clk: + $ref: '/schemas/types.yaml#/definitions/phandle' + description: | + Phandle of the clock register set used by the controller, these registers + are used for enabling a 'pause' feature and are not exposed by clock + framework but they must be used in a safe way. The register offsets are + in the driver code and specyfic for this SoC type. + + vdd-supply: true + +required: + - compatible + - clock-names + - clocks + - devfreq-events + - device-handle + - reg + - samsung,syscon-clk + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/exynos5420.h> + ppmu_dmc0_0: ppmu@10d00000 { + compatible = "samsung,exynos-ppmu"; + reg = <0x10d00000 0x2000>; + clocks = <&clock CLK_PCLK_PPMU_DREX0_0>; + clock-names = "ppmu"; + events { + ppmu_event_dmc0_0: ppmu-event3-dmc0_0 { + event-name = "ppmu-event3-dmc0_0"; + }; + }; + }; + + memory-controller@10c20000 { + compatible = "samsung,exynos5422-dmc"; + reg = <0x10c20000 0x10000>, <0x10c30000 0x10000>; + clocks = <&clock CLK_FOUT_SPLL>, + <&clock CLK_MOUT_SCLK_SPLL>, + <&clock CLK_FF_DOUT_SPLL2>, + <&clock CLK_FOUT_BPLL>, + <&clock CLK_MOUT_BPLL>, + <&clock CLK_SCLK_BPLL>, + <&clock CLK_MOUT_MX_MSPLL_CCORE>, + <&clock CLK_MOUT_MCLK_CDREX>; + clock-names = "fout_spll", + "mout_sclk_spll", + "ff_dout_spll2", + "fout_bpll", + "mout_bpll", + "sclk_bpll", + "mout_mx_mspll_ccore", + "mout_mclk_cdrex"; + operating-points-v2 = <&dmc_opp_table>; + devfreq-events = <&ppmu_event3_dmc0_0>, <&ppmu_event3_dmc0_1>, + <&ppmu_event3_dmc1_0>, <&ppmu_event3_dmc1_1>; + device-handle = <&samsung_K3QF2F20DB>; + vdd-supply = <&buck1_reg>; + samsung,syscon-clk = <&clock>; + interrupt-parent = <&combiner>; + interrupts = <16 0>, <16 1>; + interrupt-names = "drex_0", "drex_1"; + }; diff --git a/MAINTAINERS b/MAINTAINERS index ebdb07a49b02..eb4ada858826 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -5570,7 +5570,7 @@ M: Lukasz Luba <lukasz.luba@arm.com> L: linux-pm@vger.kernel.org L: linux-samsung-soc@vger.kernel.org S: Maintained -F: Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt +F: Documentation/devicetree/bindings/memory-controllers/samsung,exynos5422-dmc.yaml F: drivers/memory/samsung/exynos5422-dmc.c DME1737 HARDWARE MONITOR DRIVER
Convert Samsung Exynos5422 SoC frequency and voltage scaling for Dynamic Memory Controller to DT schema format using json-schema. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> --- .../memory-controllers/exynos5422-dmc.txt | 84 ----------- .../samsung,exynos5422-dmc.yaml | 137 ++++++++++++++++++ MAINTAINERS | 2 +- 3 files changed, 138 insertions(+), 85 deletions(-) delete mode 100644 Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt create mode 100644 Documentation/devicetree/bindings/memory-controllers/samsung,exynos5422-dmc.yaml