From: "Yulin Lu" <luyulin@eswincomputing.com>
To: "Conor Dooley" <conor.dooley@microchip.com>
Cc: "Conor Dooley" <conor@kernel.org>,
"Pinkesh Vaghela" <pinkesh.vaghela@einfochips.com>,
"Lee Jones" <lee@kernel.org>, "Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Paul Walmsley" <pjw@kernel.org>,
"Palmer Dabbelt" <palmer@dabbelt.com>,
"Albert Ou" <aou@eecs.berkeley.edu>,
"Alexandre Ghiti" <alex@ghiti.fr>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-riscv@lists.infradead.org,
"Min Lin" <linmin@eswincomputing.com>,
"Samuel Holland" <samuel.holland@sifive.com>,
"Darshan Prajapati" <darshan.prajapati@einfochips.com>,
"Pritesh Patel" <pritesh.patel@einfochips.com>
Subject: Re: Re: Re: [PATCH 3/7] riscv: dts: eswin: eic7700: add pinctrl support
Date: Fri, 26 Jun 2026 16:42:32 +0800 (GMT+08:00) [thread overview]
Message-ID: <5d44c6d7.7c1d.19f03184fa9.Coremail.luyulin@eswincomputing.com> (raw)
In-Reply-To: <20260626-headway-rewind-93c9239bd865@wendy>
> > Hi, Conor. Thanks for your review.
> >
> > > On Mon, Jun 15, 2026 at 05:50:12PM +0530, Pinkesh Vaghela wrote:
> > > > From: Yulin Lu <luyulin@eswincomputing.com>
> > > >
> > > > Add pinctrl node and related pin configuration for EIC7700 SoC
> > > >
> > > > Co-developed-by: Pritesh Patel <pritesh.patel@einfochips.com>
> > > > Signed-off-by: Pritesh Patel <pritesh.patel@einfochips.com>
> > > > Signed-off-by: Yulin Lu <luyulin@eswincomputing.com>
> > > > Signed-off-by: Pinkesh Vaghela <pinkesh.vaghela@einfochips.com>
> > > > ---
> > > > .../dts/eswin/eic7700-hifive-premier-p550.dts | 109 +++
> > > > .../riscv/boot/dts/eswin/eic7700-pinctrl.dtsi | 888 ++++++++++++++++++
> > > > arch/riscv/boot/dts/eswin/eic7700.dtsi | 5 +
> > > > 3 files changed, 1002 insertions(+)
> > > > create mode 100644 arch/riscv/boot/dts/eswin/eic7700-pinctrl.dtsi
> > > >
> > > > diff --git a/arch/riscv/boot/dts/eswin/eic7700-hifive-premier-p550.dts b/arch/riscv/boot/dts/eswin/eic7700-hifive-premier-p550.dts
> > > > index 1fb92f0e7c55..e7bb96e14958 100644
> > > > --- a/arch/riscv/boot/dts/eswin/eic7700-hifive-premier-p550.dts
> > > > +++ b/arch/riscv/boot/dts/eswin/eic7700-hifive-premier-p550.dts
> > > > @@ -6,6 +6,7 @@
> > > > /dts-v1/;
> > > >
> > > > #include "eic7700.dtsi"
> > > > +#include "eic7700-pinctrl.dtsi"
> > > >
> >
> > ...
> >
> > > > +&gpio79_pins {
> > > > + bias-disable;
> > > > + input-disable;
> > > > +};
> > > > +
> > > > +&gpio80_pins {
> > > > + bias-pull-up;
> > > > + input-disable;
> > > > +};
> > > > +
> > > > +&gpio82_pins {
> > > > + bias-pull-up;
> > > > + input-disable;
> > > > +};
> > > > +
> > > > +&gpio84_pins {
> > > > + bias-disable;
> > > > + input-disable;
> > > > +};
> > > > +
> > > > +&gpio85_pins {
> > > > + bias-pull-up;
> > > > + input-disable;
> > > > +};
> > > > +
> > > > +&gpio94_pins {
> > > > + bias-disable;
> > > > + input-disable;
> > > > +};
> > > > +
> > > > +&gpio106_pins {
> > > > + bias-disable;
> > > > + input-disable;
> > > > +};
> > > > +
> > > > +&gpio111_pins {
> > > > + bias-disable;
> > > > + input-disable;
> > > > +};
> > > > +
> > > > +&pinctrl {
> > > > + vrgmii-supply = <&vcc_1v8>;
> > > > +};
> > > > +
> > > > &uart0 {
> > > > status = "okay";
> > > > };
> > > > diff --git a/arch/riscv/boot/dts/eswin/eic7700-pinctrl.dtsi b/arch/riscv/boot/dts/eswin/eic7700-pinctrl.dtsi
> > > > new file mode 100644
> > > > index 000000000000..7293df146aa7
> > > > --- /dev/null
> > > > +++ b/arch/riscv/boot/dts/eswin/eic7700-pinctrl.dtsi
> > > > @@ -0,0 +1,888 @@
> > > > +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> > > > +/*
> > > > + * Copyright (c) 2025 Beijing ESWIN Computing Technology Co., Ltd.
> > > > + *
> > > > + * ESWIN's EIC7700 SoC pin-mux and pin-config options are listed as
> > > > + * device tree nodes in this file.
> > > > + *
> > > > + * Authors: Yulin Lu <luyulin@eswincomputing.com>
> > > > + */
> > > > +
> > >
> > > I don't really understand the groups here. I think you should make more
> > > effort to put more pins in each group.
> > >
> > > > + gpio1_pins: gpio1-pins {
> > > > + pins = "jtag0_tck";
> > > > + function = "gpio";
> > > > + };
> > > > +
> > > > + gpio2_pins: gpio2-pins {
> > > > + pins = "jtag0_tms";
> > > > + function = "gpio";
> > > > + };
> > > > +
> > > > + gpio3_pins: gpio3-pins {
> > > > + pins = "jtag0_tdi";
> > > > + function = "gpio";
> > > > + };
> > > > +
> > > > + gpio4_pins: gpio4-pins {
> > > > + pins = "jtag0_tdo";
> > > > + function = "gpio";
> > > > + };
> > >
> > > Like these 4 for example, why not group these?
> >
> > The 'group' is used to correspond to the '-grp' tag in the YAML file and
> > has no practical significance.
> > Different board designs have different requirements for pin multiplexing.
> > Therefore, eic7700-pinctrl.dtsi only provides pins for the board-level DTS.
> > Pins are combined and used in the board-level DTS via pinctrl-0 property.
>
> These 4 pins in the driver are represented as:
> EIC7700_PIN(14, "jtag0_tck", [0] = F_JTAG, [1] = F_SPI, [2] = F_GPIO),
> EIC7700_PIN(15, "jtag0_tms", [0] = F_JTAG, [1] = F_SPI, [2] = F_GPIO),
> EIC7700_PIN(16, "jtag0_tdi", [0] = F_JTAG, [1] = F_SPI, [2] = F_GPIO),
> EIC7700_PIN(17, "jtag0_tdo", [0] = F_JTAG, [1] = F_SPI, [2] = F_GPIO),
>
> EIC7700_PIN(18, "gpio5", [0] = F_GPIO, [1] = F_SPI),
>
> There is no reason to ever partially use these as GPIO. Either they will
> be all jtag, all spi or all gpio. pin 18 on the other than makes sense to have
> in a dedicated group.
Hi, Conor. Thanks for your reply.
For pins 14 to 18, when they are not multiplexed as JTAG or SPI,
they can be used as GPIO. The corresponding -pins combinations
for JTAG, SPI, and GPIO are all implemented in eic7700-pinctrl.dtsi.
Take pin 14 as an example. In eic7700-pinctrl.dtsi, it is defined:
dual_spi2_pins: dual-spi2-pins {
pins = "spi2_cs0_n", "jtag0_tck", "jtag0_tms", "jtag0_tdi";
function = "spi";
};
quad_spi2_pins: quad-spi2-pins {
pins = "spi2_cs0_n", "spi2_cs1_n", "jtag0_tck", "jtag0_tms",
"jtag0_tdi", "jtag0_tdo", "gpio5";
function = "spi";
};
gpio1_pins: gpio1-pins {
pins = "jtag0_tck";
function = "gpio";
};
jtag0_pins: jtag0-pins {
pins = "jtag0_tck", "jtag0_tms", "jtag0_tdi", "jtag0_tdo";
function = "jtag";
};
Which specific combination is called, and how they are combined,
depends on the board-level system design and is referenced in
the device nodes of the board-level DTS. For example:
pinctrl-0 = <&gpio1_pins>, <&jtag2_pins>;
The pin multiplexing configuration depends on the board-level system design.
Using combinations of '-pins' is sufficient to satisfy all requirements,
and there is no need to rely on '-grp' for this purpose.
Regards,
Yulin Lu
next prev parent reply other threads:[~2026-06-26 8:42 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-15 12:20 [PATCH 0/7] riscv: eswin: eic7700: Add support for clocks, resets, pinctrl, HSP power domain, I2C and watchdog Pinkesh Vaghela
2026-06-15 12:20 ` [PATCH 1/7] riscv: dts: eswin: add reset generator for EIC7700 SoC Pinkesh Vaghela
2026-06-15 12:20 ` [PATCH 2/7] riscv: dts: eswin: add clock " Pinkesh Vaghela
2026-06-15 12:27 ` sashiko-bot
2026-06-15 16:30 ` Conor Dooley
2026-06-16 11:53 ` Pinkesh Vaghela
2026-06-15 12:20 ` [PATCH 3/7] riscv: dts: eswin: eic7700: add pinctrl support Pinkesh Vaghela
2026-06-15 12:33 ` sashiko-bot
2026-06-26 6:42 ` Yulin Lu
2026-06-15 16:33 ` Conor Dooley
2026-06-26 6:01 ` Yulin Lu
2026-06-26 7:05 ` Conor Dooley
2026-06-26 8:42 ` Yulin Lu [this message]
2026-06-15 12:20 ` [PATCH 4/7] dt-bindings: mfd: syscon: add ESWIN EIC7700 compatible Pinkesh Vaghela
2026-06-15 16:28 ` Conor Dooley
2026-06-15 12:20 ` [PATCH 5/7] riscv: dts: eswin: add hsp power domain Pinkesh Vaghela
2026-06-15 12:31 ` sashiko-bot
2026-06-18 13:42 ` Pinkesh Vaghela
2026-06-15 12:20 ` [PATCH 6/7] riscv: dts: eswin: add I2C controller support Pinkesh Vaghela
2026-06-15 16:35 ` Conor Dooley
2026-06-16 11:57 ` Pinkesh Vaghela
2026-06-16 15:31 ` Conor Dooley
2026-06-15 12:20 ` [PATCH 7/7] riscv: dts: eswin: add watchdog support Pinkesh Vaghela
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=5d44c6d7.7c1d.19f03184fa9.Coremail.luyulin@eswincomputing.com \
--to=luyulin@eswincomputing.com \
--cc=alex@ghiti.fr \
--cc=aou@eecs.berkeley.edu \
--cc=conor+dt@kernel.org \
--cc=conor.dooley@microchip.com \
--cc=conor@kernel.org \
--cc=darshan.prajapati@einfochips.com \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lee@kernel.org \
--cc=linmin@eswincomputing.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=palmer@dabbelt.com \
--cc=pinkesh.vaghela@einfochips.com \
--cc=pjw@kernel.org \
--cc=pritesh.patel@einfochips.com \
--cc=robh@kernel.org \
--cc=samuel.holland@sifive.com \
/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