public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
From: Conor Dooley <conor@kernel.org>
To: Changhuang Liang <changhuang.liang@starfivetech.com>
Cc: Linus Walleij <linusw@kernel.org>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Emil Renner Berthing <kernel@esmil.dk>,
	Paul Walmsley <pjw@kernel.org>, Albert Ou <aou@eecs.berkeley.edu>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Alexandre Ghiti <alex@ghiti.fr>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Bartosz Golaszewski <brgl@kernel.org>,
	linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org, linux-riscv@lists.infradead.org,
	Lianfeng Ouyang <lianfeng.ouyang@starfivetech.com>
Subject: Re: [PATCH v1 19/20] riscv: dts: starfive: Add StarFive JHB100 pin function definitions
Date: Fri, 24 Apr 2026 18:00:03 +0100	[thread overview]
Message-ID: <20260424-anvil-mocha-86cd01d7401f@spud> (raw)
In-Reply-To: <20260424111330.702272-20-changhuang.liang@starfivetech.com>

[-- Attachment #1: Type: text/plain, Size: 15635 bytes --]

On Fri, Apr 24, 2026 at 04:13:29AM -0700, Changhuang Liang wrote:
 +
> +/* Function Selection */
> +
> +/* pinctrl_sys0 pad function selection */
> +#define FUNC_SYS0_DOM_HOSTSS_AUXPWRGOOD0		1
> +#define FUNC_SYS0_DOM_HOSTSS_AUXPWRGOOD1		1
> +#define FUNC_SYS0_HBLED					1
> +#define FUNC_SYS0_PE2RST_OUT				0
> +#define FUNC_SYS0_GPIO3					1
> +
> +/* pinctrl_sys0h pad function selection */
> +#define FUNC_SYS0H_ESPI0_DATA0				1
> +#define FUNC_SYS0H_ESPI0_DATA1				1
> +#define FUNC_SYS0H_ESPI0_DATA2				1
> +#define FUNC_SYS0H_ESPI0_DATA3				1
> +#define FUNC_SYS0H_ESPI0_CLK				1
> +#define FUNC_SYS0H_ESPI0_CS				1
> +#define FUNC_SYS0H_ESPI0_ALERT				1
> +#define FUNC_SYS0H_ESPI0_RESET				0
> +#define FUNC_SYS0H_GPIO7				1
> +#define FUNC_SYS0H_ESPI0_VW0				1
> +#define FUNC_SYS0H_ESPI0_VW1				1
> +#define FUNC_SYS0H_ESPI0_VW2				1
> +#define FUNC_SYS0H_ESPI0_VW3				1
> +#define FUNC_SYS0H_ESPI1_VW0				2
> +#define FUNC_SYS0H_ESPI1_VW1				2
> +#define FUNC_SYS0H_ESPI1_VW2				2
> +#define FUNC_SYS0H_ESPI1_VW3				2
> +#define FUNC_SYS0H_SCAP_TRIG0_A				3
> +#define FUNC_SYS0H_SCAP_TRIG1_A				3

I'll be blunt here, I hate this. The sheer number of repeated numbers
between each pin of a function suggests to me that the approach is
wrong.
At the very least, the number of defines could be significantly reduced,
but the whole approach of using pinmux is called into question here in
my opinion.

Conor.

> +
> +/* pinctrl_sys1 pad numbers */
> +#define FUNC_SYS1_ESPI1_DATA0				1
> +#define FUNC_SYS1_ESPI1_DATA1				1
> +#define FUNC_SYS1_ESPI1_DATA2				1
> +#define FUNC_SYS1_ESPI1_DATA3				1
> +#define FUNC_SYS1_ESPI1_CLK				1
> +#define FUNC_SYS1_ESPI1_CS				1
> +#define FUNC_SYS1_ESPI1_ALERT				1
> +#define FUNC_SYS1_ESPI1_RESET				0
> +#define FUNC_SYS1_GPIO7					1
> +
> +#define FUNC_SYS1_HOST0_PORT80_DATA_OUT0		2
> +#define FUNC_SYS1_HOST0_PORT80_DATA_OUT1		2
> +#define FUNC_SYS1_HOST0_PORT80_DATA_OUT2		2
> +#define FUNC_SYS1_HOST0_PORT80_DATA_OUT3		2
> +#define FUNC_SYS1_HOST0_PORT80_DATA_OUT4		2
> +#define FUNC_SYS1_HOST0_PORT80_DATA_OUT5		2
> +#define FUNC_SYS1_HOST0_PORT80_DATA_OUT6		2
> +#define FUNC_SYS1_HOST0_PORT80_DATA_OUT7		2
> +
> +#define FUNC_SYS1_HOST1_PORT80_DATA_OUT0		3
> +#define FUNC_SYS1_HOST1_PORT80_DATA_OUT1		3
> +#define FUNC_SYS1_HOST1_PORT80_DATA_OUT2		3
> +#define FUNC_SYS1_HOST1_PORT80_DATA_OUT3		3
> +#define FUNC_SYS1_HOST1_PORT80_DATA_OUT4		3
> +#define FUNC_SYS1_HOST1_PORT80_DATA_OUT5		3
> +#define FUNC_SYS1_HOST1_PORT80_DATA_OUT6		3
> +#define FUNC_SYS1_HOST1_PORT80_DATA_OUT7		3
> +
> +/* pinctrl_sys2 pad function selection */
> +#define FUNC_SYS2_UART_CTS				1
> +#define FUNC_SYS2_UART_RTS				1
> +#define FUNC_SYS2_UART_DCD				1
> +#define FUNC_SYS2_UART_DSR				1
> +#define FUNC_SYS2_UART_DTR				1
> +#define FUNC_SYS2_UART_RI				1
> +#define FUNC_SYS2_UART0_TX				1
> +#define FUNC_SYS2_UART0_RX				1
> +#define FUNC_SYS2_UART1_TX				1
> +#define FUNC_SYS2_UART1_RX				1
> +#define FUNC_SYS2_UART2_TX				1
> +#define FUNC_SYS2_UART2_RX				1
> +#define FUNC_SYS2_UART3_TX				1
> +#define FUNC_SYS2_UART3_RX				1
> +#define FUNC_SYS2_UART4_TX				1
> +#define FUNC_SYS2_UART4_RX				1
> +#define FUNC_SYS2_UART5_TX				1
> +#define FUNC_SYS2_UART5_RX				1
> +#define FUNC_SYS2_UART6_TX				1
> +#define FUNC_SYS2_UART6_RX				1
> +#define FUNC_SYS2_UART7_TX				1
> +#define FUNC_SYS2_UART7_RX				1
> +#define FUNC_SYS2_UART8_TX				1
> +#define FUNC_SYS2_UART8_RX				1
> +#define FUNC_SYS2_UART9_TX				1
> +#define FUNC_SYS2_UART9_RX				1
> +#define FUNC_SYS2_UART10_TX				1
> +#define FUNC_SYS2_UART10_RX				1
> +#define FUNC_SYS2_UART11_TX				1
> +#define FUNC_SYS2_UART11_RX				1
> +#define FUNC_SYS2_UART12_TX				1
> +#define FUNC_SYS2_UART12_RX				1
> +#define FUNC_SYS2_UART13_TX				1
> +#define FUNC_SYS2_UART13_RX				1
> +#define FUNC_SYS2_UART14_TX				1
> +#define FUNC_SYS2_UART14_RX				1
> +
> +#define FUNC_SYS2_I2C8_SMBALERT				2
> +#define FUNC_SYS2_I2C9_SMBALERT				2
> +#define FUNC_SYS2_I2C10_SMBALERT			2
> +#define FUNC_SYS2_I2C11_SMBALERT			2
> +#define FUNC_SYS2_I2C12_SMBALERT			2
> +#define FUNC_SYS2_I2C13_SMBALERT			2
> +#define FUNC_SYS2_I2C14_SMBALERT			2
> +#define FUNC_SYS2_I2C15_SMBALERT			2
> +#define FUNC_SYS2_HOST0_PORT80_DATA_OUT0		2
> +#define FUNC_SYS2_HOST0_PORT80_DATA_OUT1		2
> +#define FUNC_SYS2_HOST0_PORT80_DATA_OUT2		2
> +#define FUNC_SYS2_HOST0_PORT80_DATA_OUT3		2
> +#define FUNC_SYS2_HOST0_PORT80_DATA_OUT4		2
> +#define FUNC_SYS2_HOST0_PORT80_DATA_OUT5		2
> +#define FUNC_SYS2_HOST0_PORT80_DATA_OUT6		2
> +#define FUNC_SYS2_HOST0_PORT80_DATA_OUT7		2
> +#define FUNC_SYS2_JTAG_MST_TDI				2
> +#define FUNC_SYS2_JTAG_MST_TRST_N			2
> +#define FUNC_SYS2_JTAG_MST_TMS				2
> +#define FUNC_SYS2_JTAG_MST_TCK				2
> +#define FUNC_SYS2_JTAG_MST_TDO				2
> +
> +#define FUNC_SYS2_HOST1_PORT80_DATA_OUT0		3
> +#define FUNC_SYS2_HOST1_PORT80_DATA_OUT1		3
> +#define FUNC_SYS2_HOST1_PORT80_DATA_OUT2		3
> +#define FUNC_SYS2_HOST1_PORT80_DATA_OUT3		3
> +#define FUNC_SYS2_HOST1_PORT80_DATA_OUT4		3
> +#define FUNC_SYS2_HOST1_PORT80_DATA_OUT5		3
> +#define FUNC_SYS2_HOST1_PORT80_DATA_OUT6		3
> +#define FUNC_SYS2_HOST1_PORT80_DATA_OUT7		3
> +
> +/* pinctrl_per0 function numbers */
> +#define FUNC_PER0_I2C0_CLK				1
> +#define FUNC_PER0_I2C0_DATA				1
> +#define FUNC_PER0_I2C1_CLK				1
> +#define FUNC_PER0_I2C1_DATA				1
> +#define FUNC_PER0_I2C2_CLK				1
> +#define FUNC_PER0_I2C2_DATA				1
> +#define FUNC_PER0_I2C3_CLK				1
> +#define FUNC_PER0_I2C3_DATA				1
> +#define FUNC_PER0_I2C4_CLK				1
> +#define FUNC_PER0_I2C4_DATA				1
> +#define FUNC_PER0_I2C5_CLK				1
> +#define FUNC_PER0_I2C5_DATA				1
> +#define FUNC_PER0_I2C6_CLK				1
> +#define FUNC_PER0_I2C6_DATA				1
> +#define FUNC_PER0_I2C7_CLK				1
> +#define FUNC_PER0_I2C7_DATA				1
> +#define FUNC_PER0_I2C8_CLK				1
> +#define FUNC_PER0_I2C8_DATA				1
> +#define FUNC_PER0_I2C9_CLK				1
> +#define FUNC_PER0_I2C9_DATA				1
> +#define FUNC_PER0_I2C10_CLK				1
> +#define FUNC_PER0_I2C10_DATA				1
> +#define FUNC_PER0_I2C11_CLK				1
> +#define FUNC_PER0_I2C11_DATA				1
> +#define FUNC_PER0_I2C12_CLK				1
> +#define FUNC_PER0_I2C12_DATA				1
> +#define FUNC_PER0_I2C13_CLK				1
> +#define FUNC_PER0_I2C13_DATA				1
> +#define FUNC_PER0_SMBUS0_SMBALERT			1
> +#define FUNC_PER0_SMBUS1_SMBALERT			1
> +#define FUNC_PER0_SMBUS2_SMBALERT			1
> +#define FUNC_PER0_SMBUS3_SMBALERT			1
> +#define FUNC_PER0_SMBUS4_SMBALERT			1
> +#define FUNC_PER0_SMBUS5_SMBALERT			1
> +#define FUNC_PER0_SMBUS6_SMBALERT			1
> +#define FUNC_PER0_SMBUS7_SMBALERT			1
> +#define FUNC_PER0_MIPI_I3C12_SCL0			1
> +#define FUNC_PER0_MIPI_I3C12_SDA0			1
> +#define FUNC_PER0_MIPI_I3C13_SCL0			1
> +#define FUNC_PER0_MIPI_I3C13_SDA0			1
> +#define FUNC_PER0_MIPI_I3C14_SCL0			1
> +#define FUNC_PER0_MIPI_I3C14_SDA0			1
> +#define FUNC_PER0_MIPI_I3C15_SCL0			1
> +#define FUNC_PER0_MIPI_I3C15_SDA0			1
> +#define FUNC_PER0_MIPI_I3C0_SCL0			1
> +#define FUNC_PER0_MIPI_I3C0_SDA0			1
> +#define FUNC_PER0_MIPI_I3C1_SCL0			1
> +#define FUNC_PER0_MIPI_I3C1_SDA0			1
> +#define FUNC_PER0_MIPI_I3C2_SCL0			1
> +#define FUNC_PER0_MIPI_I3C2_SDA0			1
> +#define FUNC_PER0_MIPI_I3C3_SCL0			1
> +#define FUNC_PER0_MIPI_I3C3_SDA0			1
> +#define FUNC_PER0_MIPI_I3C4_SCL1			1
> +#define FUNC_PER0_MIPI_I3C4_SDA1			1
> +#define FUNC_PER0_MIPI_I3C5_SCL1			1
> +#define FUNC_PER0_MIPI_I3C5_SDA1			1
> +#define FUNC_PER0_MIPI_I3C6_SCL1			1
> +#define FUNC_PER0_MIPI_I3C6_SDA1			1
> +#define FUNC_PER0_MIPI_I3C7_SCL1			1
> +#define FUNC_PER0_MIPI_I3C7_SDA1			1
> +
> +#define FUNC_PER0_MIPI_I3C4_SCL0			2
> +#define FUNC_PER0_MIPI_I3C4_SDA0			2
> +#define FUNC_PER0_MIPI_I3C5_SCL0			2
> +#define FUNC_PER0_MIPI_I3C5_SDA0			2
> +#define FUNC_PER0_MIPI_I3C6_SCL0			2
> +#define FUNC_PER0_MIPI_I3C6_SDA0			2
> +#define FUNC_PER0_MIPI_I3C7_SCL0			2
> +#define FUNC_PER0_MIPI_I3C7_SDA0			2
> +#define FUNC_PER0_MIPI_I3C8_SCL0			2
> +#define FUNC_PER0_MIPI_I3C8_SDA0			2
> +#define FUNC_PER0_MIPI_I3C9_SCL0			2
> +#define FUNC_PER0_MIPI_I3C9_SDA0			2
> +#define FUNC_PER0_MIPI_I3C10_SCL0			2
> +#define FUNC_PER0_MIPI_I3C10_SDA0			2
> +#define FUNC_PER0_MIPI_I3C11_SCL0			2
> +#define FUNC_PER0_MIPI_I3C11_SDA0			2
> +#define FUNC_PER0_GMAC2_MDC				2
> +#define FUNC_PER0_GMAC2_MDIO				2
> +#define FUNC_PER0_GMAC3_MDC				2
> +#define FUNC_PER0_GMAC3_MDIO				2
> +#define FUNC_PER0_GMAC1_MDC				2
> +#define FUNC_PER0_GMAC1_MDIO				2
> +#define FUNC_PER0_WDT0_3_OR_RESET_OUTPUT		2
> +#define FUNC_PER0_WDT_SECRP_RESET_OUTPUT		2
> +#define FUNC_PER0_WDT4_RESET_OUTPUT			2
> +#define FUNC_PER0_WDT4_RESTART_INPUT			2
> +
> +/* pinctrl_per1 pad function selection */
> +#define FUNC_PER1_SPI0_N_SS_OUT_0			1
> +#define FUNC_PER1_SPI0_N_SS_OUT_1			1
> +#define FUNC_PER1_SPI0_SCLK_OUT				1
> +#define FUNC_PER1_SPI0_TX				1
> +#define FUNC_PER1_SPI0_RX				1
> +#define FUNC_PER1_SFC0_N_SS_OUT_0			1
> +#define FUNC_PER1_SFC0_N_SS_OUT_1			1
> +#define FUNC_PER1_SFC0_SCLK_OUT				1
> +#define FUNC_PER1_SFC0_IO0				1
> +#define FUNC_PER1_SFC0_IO1				1
> +#define FUNC_PER1_SFC0_IO2				1
> +#define FUNC_PER1_SFC0_IO3				1
> +#define FUNC_PER1_SFC1_N_SS_OUT_0			1
> +#define FUNC_PER1_SFC1_N_SS_OUT_1			1
> +#define FUNC_PER1_SFC1_N_SS_OUT_2			1
> +#define FUNC_PER1_SFC1_SCLK_OUT				1
> +#define FUNC_PER1_SFC1_IO0				1
> +#define FUNC_PER1_SFC1_IO1				1
> +#define FUNC_PER1_SFC1_IO2				1
> +#define FUNC_PER1_SFC1_IO3				1
> +#define FUNC_PER1_SFC2_N_SS_OUT_0			1
> +#define FUNC_PER1_SFC2_N_SS_OUT_1			1
> +#define FUNC_PER1_SFC2_N_SS_OUT_2			1
> +#define FUNC_PER1_SFC2_SCLK_OUT				1
> +#define FUNC_PER1_SFC2_IO0				1
> +#define FUNC_PER1_SFC2_IO1				1
> +#define FUNC_PER1_SFC2_IO2				1
> +#define FUNC_PER1_SFC2_IO3				1
> +#define FUNC_PER1_SGPIO0_M_CLK				1
> +#define FUNC_PER1_SGPIO0_M_LOAD				1
> +#define FUNC_PER1_SGPIO0_M_DATA_OUT			1
> +#define FUNC_PER1_SGPIO0_M_DATA_IN			1
> +#define FUNC_PER1_I2C14_CLK				1
> +#define FUNC_PER1_I2C14_DATA				1
> +#define FUNC_PER1_I2C15_CLK				1
> +#define FUNC_PER1_I2C15_DATA				1
> +
> +#define FUNC_PER1_SGPIO1_M_CLK				2
> +#define FUNC_PER1_SGPIO1_M_LOAD				2
> +#define FUNC_PER1_SGPIO1_M_DATA_OUT			2
> +#define FUNC_PER1_SGPIO1_M_DATA_IN			2
> +
> +/* pinctrl_per2 function selection */
> +#define FUNC_PER2_FAN0_TACH_I_0				1
> +#define FUNC_PER2_FAN0_TACH_I_1				1
> +#define FUNC_PER2_FAN0_TACH_I_2				1
> +#define FUNC_PER2_FAN0_TACH_I_3				1
> +#define FUNC_PER2_FAN0_TACH_I_4				1
> +#define FUNC_PER2_FAN0_TACH_I_5				1
> +#define FUNC_PER2_FAN0_TACH_I_6				1
> +#define FUNC_PER2_FAN0_TACH_I_7				1
> +#define FUNC_PER2_FAN0_TACH_I_8				1
> +#define FUNC_PER2_FAN0_TACH_I_9				1
> +#define FUNC_PER2_FAN0_TACH_I_10			1
> +#define FUNC_PER2_FAN0_TACH_I_11			1
> +#define FUNC_PER2_FAN0_TACH_I_12			1
> +#define FUNC_PER2_FAN0_TACH_I_13			1
> +#define FUNC_PER2_FAN0_TACH_I_14			1
> +#define FUNC_PER2_FAN0_TACH_I_15			1
> +#define FUNC_PER2_GMAC2_RGMII_RX_CLK			1
> +#define FUNC_PER2_GMAC2_RGMII_RXCTL			1
> +#define FUNC_PER2_GMAC2_RGMII_PHY_RXD0			1
> +#define FUNC_PER2_GMAC2_RGMII_PHY_RXD1			1
> +#define FUNC_PER2_GMAC2_RGMII_PHY_RXD2			1
> +#define FUNC_PER2_GMAC2_RGMII_PHY_RXD3			1
> +#define FUNC_PER2_GMAC2_RGMII_TX_CLK			1
> +#define FUNC_PER2_GMAC2_RGMII_TXCTL			1
> +#define FUNC_PER2_GMAC2_RGMII_PHY_TX0			1
> +#define FUNC_PER2_GMAC2_RGMII_PHY_TX1			1
> +#define FUNC_PER2_GMAC2_RGMII_PHY_TX2			1
> +#define FUNC_PER2_GMAC2_RGMII_PHY_TX3			1
> +
> +#define FUNC_PER2_GMAC2_RMII_RX_CLK			2
> +#define FUNC_PER2_GMAC2_RMII_CRSDV			2
> +#define FUNC_PER2_GMAC2_RMII_PHY_RXD0			2
> +#define FUNC_PER2_GMAC2_RMII_PHY_RXD1			2
> +#define FUNC_PER2_GMAC2_RMII_RX_CKO			2
> +#define FUNC_PER2_GMAC2_RMII_TXEN			2
> +#define FUNC_PER2_GMAC2_RMII_PHY_TXD0			2
> +#define FUNC_PER2_GMAC2_RMII_PHY_TXD1			2
> +
> +#define FUNC_PER2_HOSTSS0_PORT80_DATA_OUT0		2
> +#define FUNC_PER2_HOSTSS0_PORT80_DATA_OUT1		2
> +#define FUNC_PER2_HOSTSS0_PORT80_DATA_OUT2		2
> +#define FUNC_PER2_HOSTSS0_PORT80_DATA_OUT3		2
> +#define FUNC_PER2_HOSTSS0_PORT80_DATA_OUT4		2
> +#define FUNC_PER2_HOSTSS0_PORT80_DATA_OUT5		2
> +#define FUNC_PER2_HOSTSS0_PORT80_DATA_OUT6		2
> +#define FUNC_PER2_HOSTSS0_PORT80_DATA_OUT7		2
> +#define FUNC_PER2_HOSTSS1_PORT80_DATA_OUT0		3
> +#define FUNC_PER2_HOSTSS1_PORT80_DATA_OUT1		3
> +#define FUNC_PER2_HOSTSS1_PORT80_DATA_OUT2		3
> +#define FUNC_PER2_HOSTSS1_PORT80_DATA_OUT3		3
> +#define FUNC_PER2_HOSTSS1_PORT80_DATA_OUT4		3
> +#define FUNC_PER2_HOSTSS1_PORT80_DATA_OUT5		3
> +#define FUNC_PER2_HOSTSS1_PORT80_DATA_OUT6		3
> +#define FUNC_PER2_HOSTSS1_PORT80_DATA_OUT7		3
> +
> +/* pinctrl_per2pok function selection */
> +#define FUNC_PER2POK_PWM0_CHANNEL0			0
> +#define FUNC_PER2POK_PWM0_CHANNEL1			0
> +#define FUNC_PER2POK_PWM0_CHANNEL2			0
> +#define FUNC_PER2POK_PWM0_CHANNEL3			0
> +#define FUNC_PER2POK_PWM0_CHANNEL4			0
> +#define FUNC_PER2POK_PWM0_CHANNEL5			0
> +#define FUNC_PER2POK_PWM0_CHANNEL6			0
> +#define FUNC_PER2POK_PWM0_CHANNEL7			0
> +
> +#define FUNC_PER2POK_CAN0_TXD				1
> +#define FUNC_PER2POK_CAN0_RXD				1
> +#define FUNC_PER2POK_CAN0_STBY				1
> +#define FUNC_PER2POK_CAN1_TXD				1
> +#define FUNC_PER2POK_CAN1_RXD				1
> +#define FUNC_PER2POK_CAN1_STBY				1
> +#define FUNC_PER2POK_GPIO_PASSTHRU1_IN			1
> +#define FUNC_PER2POK_GPIO_PASSTHRU1_OUT			1
> +#define FUNC_PER2POK_GPIO_PASSTHRU2_IN			1
> +#define FUNC_PER2POK_GPIO_PASSTHRU2_OUT			1
> +#define FUNC_PER2POK_GPIO10				1
> +#define FUNC_PER2POK_GPIO11				1
> +#define FUNC_PER2POK_GPIO12				1
> +#define FUNC_PER2POK_GPIO13				1
> +#define FUNC_PER2POK_GPIO14				1
> +#define FUNC_PER2POK_GPIO15				1
> +#define FUNC_PER2POK_GPIO16				1
> +#define FUNC_PER2POK_GPIO17				1
> +
> +#define FUNC_PER2POK_GPIO_PASSTHRU3_IN			2
> +#define FUNC_PER2POK_GPIO_PASSTHRU3_OUT			2
> +#define FUNC_PER2POK_HOSTSS0_PORT80_DATA_OUT0		2
> +#define FUNC_PER2POK_HOSTSS0_PORT80_DATA_OUT1		2
> +#define FUNC_PER2POK_HOSTSS0_PORT80_DATA_OUT2		2
> +#define FUNC_PER2POK_HOSTSS0_PORT80_DATA_OUT3		2
> +#define FUNC_PER2POK_HOSTSS0_PORT80_DATA_OUT4		2
> +#define FUNC_PER2POK_HOSTSS0_PORT80_DATA_OUT5		2
> +#define FUNC_PER2POK_HOSTSS0_PORT80_DATA_OUT6		2
> +#define FUNC_PER2POK_HOSTSS0_PORT80_DATA_OUT7		2
> +
> +#define FUNC_PER2POK_HOSTSS1_PORT80_DATA_OUT0		3
> +#define FUNC_PER2POK_HOSTSS1_PORT80_DATA_OUT1		3
> +#define FUNC_PER2POK_HOSTSS1_PORT80_DATA_OUT2		3
> +#define FUNC_PER2POK_HOSTSS1_PORT80_DATA_OUT3		3
> +#define FUNC_PER2POK_HOSTSS1_PORT80_DATA_OUT4		3
> +#define FUNC_PER2POK_HOSTSS1_PORT80_DATA_OUT5		3
> +#define FUNC_PER2POK_HOSTSS1_PORT80_DATA_OUT6		3
> +#define FUNC_PER2POK_HOSTSS1_PORT80_DATA_OUT7		3
> +
> +/* pinctrl_per3 function selection */
> +#define FUNC_PER3_GMAC0_MDC				1
> +#define FUNC_PER3_GMAC0_MDIO				1
> +#define FUNC_PER3_GMAC0_RMII_RCLKI			1
> +#define FUNC_PER3_GMAC0_RMII_RCLKO			1
> +#define FUNC_PER3_GMAC0_RMII_CRSDV			1
> +#define FUNC_PER3_GMAC0_RMII_PHY_RXD0			1
> +#define FUNC_PER3_GMAC0_RMII_PHY_RXD1			1
> +#define FUNC_PER3_GMAC0_RMII_TXEN			1
> +#define FUNC_PER3_GMAC0_RMII_PHY_TXD0			1
> +#define FUNC_PER3_GMAC0_RMII_PHY_TXD1			1
> +
> +/* gpio func sel value */
> +#define FUNC_SEL0_GPIO					0
> +#define FUNC_SEL1_GPIO					1
> +
> +/* vref value */
> +#define JHB100_PINVREF_3_3V				0
> +#define JHB100_PINVREF_2_5V				1
> +#define JHB100_PINVREF_1_8V				2
> +
> +#endif
> -- 
> 2.25.1
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

  reply	other threads:[~2026-04-24 17:00 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-24 11:13 [PATCH v1 00/20] Add basic pinctrl drivers for JHB100 SoC Changhuang Liang
2026-04-24 11:13 ` [PATCH v1 01/20] dt-bindings: pinctrl: Add starfive,jhb100-sys0-pinctrl Changhuang Liang
2026-04-28 10:34   ` Linus Walleij
2026-04-24 11:13 ` [PATCH v1 02/20] pinctrl: starfive: Add StarFive JHB100 sys0 controller driver Changhuang Liang
2026-04-28 10:29   ` Linus Walleij
2026-04-24 11:13 ` [PATCH v1 03/20] dt-bindings: pinctrl: Add starfive,jhb100-sys0h-pinctrl Changhuang Liang
2026-04-24 11:13 ` [PATCH v1 04/20] pinctrl: starfive: Add StarFive JHB100 sys0h controller driver Changhuang Liang
2026-04-24 11:13 ` [PATCH v1 05/20] dt-bindings: pinctrl: Add starfive,jhb100-sys1-pinctrl Changhuang Liang
2026-04-24 11:13 ` [PATCH v1 06/20] pinctrl: starfive: Add StarFive JHB100 sys1 controller driver Changhuang Liang
2026-04-24 11:13 ` [PATCH v1 07/20] dt-bindings: pinctrl: Add starfive,jhb100-sys2-pinctrl Changhuang Liang
2026-04-25 10:28   ` Krzysztof Kozlowski
2026-04-24 11:13 ` [PATCH v1 08/20] pinctrl: starfive: Add StarFive JHB100 sys2 controller driver Changhuang Liang
2026-04-24 11:13 ` [PATCH v1 09/20] dt-bindings: pinctrl: Add starfive,jhb100-per0-pinctrl Changhuang Liang
2026-04-24 11:13 ` [PATCH v1 10/20] pinctrl: starfive: Add StarFive JHB100 per0 controller driver Changhuang Liang
2026-04-24 11:13 ` [PATCH v1 11/20] dt-bindings: pinctrl: Add starfive,jhb100-per1-pinctrl Changhuang Liang
2026-04-24 16:56   ` Conor Dooley
2026-04-28  1:28     ` Changhuang Liang
2026-04-28 18:51       ` Conor Dooley
2026-04-28 11:08   ` Linus Walleij
2026-04-24 11:13 ` [PATCH v1 12/20] pinctrl: starfive: Add StarFive JHB100 per1 controller driver Changhuang Liang
2026-04-24 11:13 ` [PATCH v1 13/20] dt-bindings: pinctrl: Add starfive,jhb100-per2-pinctrl Changhuang Liang
2026-04-24 13:17   ` Rob Herring (Arm)
2026-04-24 11:13 ` [PATCH v1 14/20] pinctrl: starfive: Add StarFive JHB100 per2 controller driver Changhuang Liang
2026-04-24 11:13 ` [PATCH v1 15/20] dt-bindings: pinctrl: Add starfive,jhb100-per2pok-pinctrl Changhuang Liang
2026-04-24 11:13 ` [PATCH v1 16/20] pinctrl: starfive: Add StarFive JHB100 per2pok controller driver Changhuang Liang
2026-04-24 11:13 ` [PATCH v1 17/20] dt-bindings: pinctrl: Add starfive,jhb100-per3-pinctrl Changhuang Liang
2026-04-24 11:13 ` [PATCH v1 18/20] pinctrl: starfive: Add StarFive JHB100 per3 controller driver Changhuang Liang
2026-04-24 11:13 ` [PATCH v1 19/20] riscv: dts: starfive: Add StarFive JHB100 pin function definitions Changhuang Liang
2026-04-24 17:00   ` Conor Dooley [this message]
2026-04-24 11:13 ` [PATCH v1 20/20] riscv: dts: starfive: jhb100: Add pinctrl nodes Changhuang Liang
2026-04-24 17:01   ` Conor Dooley
2026-04-28  1:53     ` Changhuang Liang
2026-04-28 10:11 ` [PATCH v1 00/20] Add basic pinctrl drivers for JHB100 SoC Linus Walleij
2026-04-29  0:53   ` Changhuang Liang

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=20260424-anvil-mocha-86cd01d7401f@spud \
    --to=conor@kernel.org \
    --cc=alex@ghiti.fr \
    --cc=aou@eecs.berkeley.edu \
    --cc=brgl@kernel.org \
    --cc=changhuang.liang@starfivetech.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=kernel@esmil.dk \
    --cc=krzk+dt@kernel.org \
    --cc=lianfeng.ouyang@starfivetech.com \
    --cc=linusw@kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=p.zabel@pengutronix.de \
    --cc=palmer@dabbelt.com \
    --cc=pjw@kernel.org \
    --cc=robh@kernel.org \
    /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