All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Pinkesh Vaghela" <pinkesh.vaghela@einfochips.com>
Cc: robh@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v2 3/8] riscv: dts: eswin: eic7700: add pinctrl support
Date: Mon, 06 Jul 2026 08:23:40 +0000	[thread overview]
Message-ID: <20260706082341.1D74B1F00A3A@smtp.kernel.org> (raw)
In-Reply-To: <20260706081055.1126275-4-pinkesh.vaghela@einfochips.com>

Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:

New issues:
- [Medium] Board-specific GPIO pin configurations are defined but never referenced via `pinctrl-0`, rendering them inert.
- [Medium] Peripheral nodes do not reference their newly added pinctrl configurations.

Pre-existing issues:
- [High] The SoC device tree lacks `gpio-ranges` properties linking the DW APB GPIO controllers to the newly introduced pinctrl controller, bypassing GPIO muxing logic.
--

commit 92abe836b11b6b811731ac872e0c01dccbccefd0
Author: Yulin Lu <luyulin@eswincomputing.com>

riscv: dts: eswin: eic7700: add pinctrl support

This commit adds pinctrl nodes and related pin configurations for the EIC7700
SoC. It also provides the specific pin states for the HiFive Premier P550
board.

> 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 1266762dfcd8c..743dedbdb081a 100644
> --- a/arch/riscv/boot/dts/eswin/eic7700-hifive-premier-p550.dts
> +++ b/arch/riscv/boot/dts/eswin/eic7700-hifive-premier-p550.dts
[ ... ]
> @@ -25,6 +35,105 @@ &clock_24m {
>  	clock-output-names = "clock_24m";
>  };
>  
> +&gpio0_pins {
> +	bias-disable;
> +	input-enable;
> +};
> +
> +&gpio5_pins {
> +	bias-disable;
> +	input-enable;
> +};

[Severity: Medium]
Will these board-specific GPIO pin configurations ever be applied?

The board DTS overrides properties like bias-pull-up for various GPIO nodes 
(&gpio0_pins, &gpio14_pins, etc.), but these pin configurations are never 
referenced by any pinctrl-0 property in a consumer device or as a pinctrl hog.

Without being referenced via pinctrl-names = "default"; and pinctrl-0 = <...>;
within the &pinctrl node, the pinctrl subsystem will parse them as templates
but never commit the hardware configurations.

This could leave the hardware lacking required electrical configurations.

[ ... ]
> +&pinctrl {
> +	vrgmii-supply = <&vcc_1v8>;
> +};
> +
>  &uart0 {
>  	status = "okay";
>  };

[Severity: Medium]
Should this peripheral node reference its newly added pinctrl configurations?

The eic7700-pinctrl.dtsi file defines extensive pinmux configurations, such as
uart0_pins and i2c0_pins, and the board DTS enables these peripherals here. 

However, the board DTS fails to assign these pinmux configurations to the 
peripherals using pinctrl-names = "default"; and pinctrl-0 = <&uart0_pins>;.

As a result, peripheral pin multiplexing is not applied by the kernel, relying 
entirely on the bootloader's initial state.

> diff --git a/arch/riscv/boot/dts/eswin/eic7700.dtsi b/arch/riscv/boot/dts/eswin/eic7700.dtsi
> index af9e40d8739ad..a0fb82f4adca9 100644
> --- a/arch/riscv/boot/dts/eswin/eic7700.dtsi
> +++ b/arch/riscv/boot/dts/eswin/eic7700.dtsi
[ ... ]
> @@ -349,6 +349,11 @@ gpioD: gpio-port@3 {
>  			};
>  		};
>  
> +		pinctrl: pinctrl@51600080 {
> +			compatible = "eswin,eic7700-pinctrl";
> +			reg = <0x0 0x51600080 0x0 0x1fff80>;
> +		};
> +

[Severity: High]
This isn't a bug introduced by this patch, but does the SoC device tree lack
gpio-ranges properties linking the DW APB GPIO controllers to the newly
introduced pinctrl controller?

The eic7700.dtsi defines GPIO controllers using the snps,dw-apb-gpio driver:

			gpioA: gpio-port@0 {
				compatible = "snps,dw-apb-gpio-port";

This driver unconditionally sets .request = gpiochip_generic_request. 

When a GPIO is requested, gpiochip_generic_request checks if the
gc->gpiodev->pin_ranges list is empty. 

Because eic7700.dtsi fails to define gpio-ranges mapping the gpio-port subnodes
to the pinctrl controller, the pin_ranges list is empty. As a result,
gpiochip_generic_request() returns 0 early and never calls
pinctrl_gpio_request(). 

This bypasses the pinctrl driver's hardware muxing logic entirely, meaning
GPIO hardware muxing will not occur when a GPIO is requested, leaving the pins
in their default or peripheral state.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260706081055.1126275-1-pinkesh.vaghela@einfochips.com?part=3

  reply	other threads:[~2026-07-06  8:23 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-06  8:10 [PATCH v2 0/8] riscv: eswin: eic7700: Add support for clocks, resets, pinctrl, HSP bus, I2C and watchdog Pinkesh Vaghela
2026-07-06  8:10 ` Pinkesh Vaghela
2026-07-06  8:10 ` [PATCH v2 1/8] riscv: dts: eswin: add reset generator for EIC7700 SoC Pinkesh Vaghela
2026-07-06  8:10   ` Pinkesh Vaghela
2026-07-06  8:10 ` [PATCH v2 2/8] riscv: dts: eswin: add clock " Pinkesh Vaghela
2026-07-06  8:10   ` Pinkesh Vaghela
2026-07-06  8:16   ` sashiko-bot
2026-07-09  7:32     ` Pinkesh Vaghela
2026-07-06  8:10 ` [PATCH v2 3/8] riscv: dts: eswin: eic7700: add pinctrl support Pinkesh Vaghela
2026-07-06  8:10   ` Pinkesh Vaghela
2026-07-06  8:23   ` sashiko-bot [this message]
2026-07-06  8:10 ` [PATCH v2 4/8] dt-bindings: mfd: syscon: add ESWIN EIC7700 compatible Pinkesh Vaghela
2026-07-06  8:10   ` Pinkesh Vaghela
2026-07-16 12:28   ` Lee Jones
2026-07-16 12:28     ` Lee Jones
2026-07-06  8:10 ` [PATCH v2 5/8] riscv: dts: eswin: add hsp bus node Pinkesh Vaghela
2026-07-06  8:10   ` Pinkesh Vaghela
2026-07-06  8:23   ` sashiko-bot
2026-07-06 17:05     ` Conor Dooley
2026-07-09  7:42       ` Pinkesh Vaghela
2026-07-06  8:10 ` [PATCH v2 6/8] dt-bindings: i2c: dw: add ESWIN EIC7700 SoC I2C controller Pinkesh Vaghela
2026-07-06  8:10   ` Pinkesh Vaghela
2026-07-06 16:59   ` Conor Dooley
2026-07-06 16:59     ` Conor Dooley
2026-07-06  8:10 ` [PATCH v2 7/8] riscv: dts: eswin: add I2C controller support Pinkesh Vaghela
2026-07-06  8:10   ` Pinkesh Vaghela
2026-07-06  8:10 ` [PATCH v2 8/8] riscv: dts: eswin: add watchdog support Pinkesh Vaghela
2026-07-06  8:10   ` Pinkesh Vaghela
2026-07-06  8:22   ` sashiko-bot
2026-07-09  7:49     ` 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=20260706082341.1D74B1F00A3A@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=pinkesh.vaghela@einfochips.com \
    --cc=robh@kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    /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.