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
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
WARNING: multiple messages have this Message-ID (diff)
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:43 UTC|newest]
Thread overview: 44+ 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 ` 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 ` Pinkesh Vaghela
2026-06-15 12:20 ` [PATCH 2/7] riscv: dts: eswin: add clock " Pinkesh Vaghela
2026-06-15 12:20 ` Pinkesh Vaghela
2026-06-15 12:27 ` sashiko-bot
2026-06-15 16:30 ` Conor Dooley
2026-06-15 16:30 ` Conor Dooley
2026-06-16 11:53 ` Pinkesh Vaghela
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:20 ` Pinkesh Vaghela
2026-06-15 12:33 ` sashiko-bot
2026-06-26 6:42 ` Yulin Lu
2026-06-26 6:42 ` Yulin Lu
2026-06-15 16:33 ` Conor Dooley
2026-06-15 16:33 ` Conor Dooley
2026-06-26 6:01 ` Yulin Lu
2026-06-26 6:01 ` Yulin Lu
2026-06-26 7:05 ` Conor Dooley
2026-06-26 7:05 ` Conor Dooley
2026-06-26 8:42 ` Yulin Lu [this message]
2026-06-26 8:42 ` Yulin Lu
2026-06-26 16:02 ` Conor Dooley
2026-06-26 16:02 ` Conor Dooley
2026-06-15 12:20 ` [PATCH 4/7] dt-bindings: mfd: syscon: add ESWIN EIC7700 compatible Pinkesh Vaghela
2026-06-15 12:20 ` Pinkesh Vaghela
2026-06-15 16:28 ` Conor Dooley
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:20 ` 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 12:20 ` Pinkesh Vaghela
2026-06-15 16:35 ` Conor Dooley
2026-06-15 16:35 ` Conor Dooley
2026-06-16 11:57 ` Pinkesh Vaghela
2026-06-16 11:57 ` Pinkesh Vaghela
2026-06-16 15:31 ` Conor Dooley
2026-06-16 15:31 ` Conor Dooley
2026-06-15 12:20 ` [PATCH 7/7] riscv: dts: eswin: add watchdog support Pinkesh Vaghela
2026-06-15 12:20 ` 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.