From: Sergio Paracuellos <sergio.paracuellos@gmail.com>
To: Rob Herring <robh@kernel.org>
Cc: Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
John Crispin <john@phrozen.org>,
Greg KH <gregkh@linuxfoundation.org>,
Chuanhong Guo <gch981213@gmail.com>,
Weijie Gao <hackpascal@gmail.com>,
jiaxun.yang@flygoat.com,
"open list:COMMON CLK FRAMEWORK" <linux-clk@vger.kernel.org>,
"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
<devicetree@vger.kernel.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
"open list:MIPS" <linux-mips@vger.kernel.org>,
"open list:STAGING SUBSYSTEM" <devel@driverdev.osuosl.org>,
NeilBrown <neil@brown.name>
Subject: Re: [PATCH v3 2/5] dt: bindings: add mt7621-clk device tree binding documentation
Date: Sat, 21 Nov 2020 17:22:58 +0100 [thread overview]
Message-ID: <CAMhs-H8j+OYmBuj-ZzTUr7jFYokS0H4+DSa-QCa4R=Fm00aagw@mail.gmail.com> (raw)
In-Reply-To: <CAMhs-H9JORHgPmq0-n=hx=yRo0SCT33mP_quxZoRtKYkiVDy_Q@mail.gmail.com>
On Sat, Nov 21, 2020 at 3:50 PM Sergio Paracuellos
<sergio.paracuellos@gmail.com> wrote:
>
> Hi Rob,
>
> Thanks for the review.
>
> On Sat, Nov 21, 2020 at 2:34 PM Rob Herring <robh@kernel.org> wrote:
> >
> > On Fri, Nov 13, 2020 at 04:46:29PM +0100, Sergio Paracuellos wrote:
> > > Adds device tree binding documentation for clocks in the
> > > MT7621 SOC.
> > >
> > > Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
> > > ---
> > > .../bindings/clock/mediatek,mt7621-clk.yaml | 61 +++++++++++++++++++
> > > 1 file changed, 61 insertions(+)
> > > create mode 100644 Documentation/devicetree/bindings/clock/mediatek,mt7621-clk.yaml
> > >
> > > diff --git a/Documentation/devicetree/bindings/clock/mediatek,mt7621-clk.yaml b/Documentation/devicetree/bindings/clock/mediatek,mt7621-clk.yaml
> > > new file mode 100644
> > > index 000000000000..363bd9880e29
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/clock/mediatek,mt7621-clk.yaml
> > > @@ -0,0 +1,61 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/clock/mediatek,mt7621-clk.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: MT7621 Clock Device Tree Bindings
> > > +
> > > +maintainers:
> > > + - Sergio Paracuellos <sergio.paracuellos@gmail.com>
> > > +
> > > +description: |
> > > + The MT7621 has a PLL controller from where the cpu clock is provided
> > > + as well as derived clocks for the bus and the peripherals. It also
> > > + can gate SoC device clocks.
> > > +
> > > + Each clock is assigned an identifier and client nodes use this identifier
> > > + to specify the clock which they consume.
> > > +
> > > + All these identifiers could be found in:
> > > + [1]: <include/dt-bindings/clock/mt7621-clk.h>.
> > > +
> > > +properties:
> > > + compatible:
> > > + const: mediatek,mt7621-clk
> > > +
> > > + ralink,sysctl:
> > > + $ref: /schemas/types.yaml#/definitions/phandle
> > > + description:
> > > + phandle to the syscon which is in the same address area with syscon
> > > + device.
> > > +
> > > + "#clock-cells":
> > > + description:
> > > + The first cell indicates the clock gate number, see [1] for available
> > > + clocks.
> > > + const: 1
> > > +
> > > + clock-output-names:
> > > + maxItems: 8
> > > +
> > > +required:
> > > + - compatible
> > > + - ralink,sysctl
> > > + - '#clock-cells'
> > > + - clock-output-names
> > > +
> > > +additionalProperties: false
> > > +
> > > +examples:
> > > + - |
> > > + #include <dt-bindings/clock/mt7621-clk.h>
> > > +
> > > + pll {
> > > + compatible = "mediatek,mt7621-clk";
> > > + ralink,sysctl = <&sysc>;
> >
> > If this is the only control interface, then make this a child of 'sysc'.
> > And use 'reg' if there's a dedicated range of registers.
>
> This is the only one now in the device tree which is still in staging
> but there are several places where this sys control registers are
> accessed from. In the case of the clocks we need:
>
> #define SYSC_REG_SYSTEM_CONFIG0 0x10
> #define SYSC_REG_SYSTEM_CONFIG1 0x14
> #define SYSC_REG_CLKCFG0 0x2c
> #define SYSC_REG_CLKCFG1 0x30
> #define SYSC_REG_CUR_CLK_STS 0x44
>
> where there is not a range as it is but several different registers
> from where we need to read or write things. I wrote the driver using
> syscon and regmap because I thought in that way it might be more
> maintainable but this architecture also has operations to read and
> write registers from sysc and not using regmap at all. This operations
> are defined in arch/mips/include/asm/mach-ralink/ralink_regs.h. But
> because this sysc is currently mapped I cannot request its registers
> using reg in the device tree. If you prefer me to avoid the use of
> this syscon and regmap and use operations defined in ralink_regs.h,
> this will become in a node without "regs" or "ralink,sysctl"
> property:
>
> pll {
> compatible = "mediatek,mt7621-clk";
> #clock-cells = <1>;
> clock-output-names = "xtal", "cpu", "bus",
> "50m", "125m", "150m",
> "250m", "270m";
> };
>
> What should I do then?
Ok, I think I understand now what you are saying. You meant just move
this as a child if 'sysc' and
avoid the phandle:
sysc: sysc@0 {
compatible = "mtk,mt7621-sysc", "syscon";
reg = <0x0 0x100>;
pll: pll {
compatible = "mediatek,mt7621-clk";
#clock-cells = <1>;
clock-output-names = "xtal", "cpu", "bus",
"50m", "125m", "150m",
"250m", "270m";
};
};
And because there is not a range of registers 'reg' property is not
needed, right?
And in the driver side make use of 'syscon_node_to_regmap(node->parent)' instead
of 'syscon_regmap_lookup_by_phandle(node, "ralink,sysctl")'.
Ok, thanks for the clarification. Will change when v4 is sent.
Best regards,
Sergio Paracuellos
>
> Best regards,
> Sergio Paracuellos
>
> >
> > > + #clock-cells = <1>;
> > > + clock-output-names = "xtal", "cpu", "bus",
> > > + "50m", "125m", "150m",
> > > + "250m", "270m";
> > > + };
> > > --
> > > 2.25.1
> > >
next prev parent reply other threads:[~2020-11-21 16:23 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-13 15:46 [PATCH v3 0/5] MIPS: ralink: add CPU clock detection and clock gate driver for MT7621 Sergio Paracuellos
2020-11-13 15:46 ` [PATCH v3 1/5] dt-bindings: clock: add dt binding header for mt7621 clocks Sergio Paracuellos
2020-11-21 13:30 ` Rob Herring
2020-11-13 15:46 ` [PATCH v3 2/5] dt: bindings: add mt7621-clk device tree binding documentation Sergio Paracuellos
2020-11-21 13:34 ` Rob Herring
2020-11-21 14:50 ` Sergio Paracuellos
2020-11-21 16:22 ` Sergio Paracuellos [this message]
2020-11-13 15:46 ` [PATCH v3 3/5] clk: ralink: add clock driver for mt7621 SoC Sergio Paracuellos
2020-11-19 9:32 ` Chuanhong Guo
2020-11-19 9:35 ` Sergio Paracuellos
2020-11-13 15:46 ` [PATCH v3 4/5] staging: mt7621-dts: make use of new 'mt7621-clk' Sergio Paracuellos
2020-11-13 15:46 ` [PATCH v3 5/5] MAINTAINERS: add MT7621 CLOCK maintainer Sergio Paracuellos
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAMhs-H8j+OYmBuj-ZzTUr7jFYokS0H4+DSa-QCa4R=Fm00aagw@mail.gmail.com' \
--to=sergio.paracuellos@gmail.com \
--cc=devel@driverdev.osuosl.org \
--cc=devicetree@vger.kernel.org \
--cc=gch981213@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=hackpascal@gmail.com \
--cc=jiaxun.yang@flygoat.com \
--cc=john@phrozen.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=mturquette@baylibre.com \
--cc=neil@brown.name \
--cc=robh@kernel.org \
--cc=sboyd@kernel.org \
--cc=tsbogend@alpha.franken.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).