Devicetree
 help / color / mirror / Atom feed
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

  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