[PATCH v3] riscv: dts: spacemit: add UART pinctrl combinations
Hendrik Hamerlinck
hendrik.hamerlinck at hammernet.be
Tue Sep 16 23:39:10 PDT 2025
Hello Yixun,
On 9/17/25 03:29, Yixun Lan wrote:
> Hi Hendrik,
>
> On 08:47 Tue 16 Sep , Hendrik Hamerlinck wrote:
>> Add UART pinctrl configurations based on the SoC datasheet and the
>> downstream Bianbu Linux tree. The drive strength values were taken from
>> the downstream implementation, which uses medium drive strength.
>> CTS/RTS are moved to separate *-cts-rts-cfg states so boards can enable
>> hardware flow control conditionally.
>>
>> Signed-off-by: Hendrik Hamerlinck <hendrik.hamerlinck at hammernet.be>
>> ---
>> Changes in v3:
>> - Added /omit-if-no-ref/ to pinctrl states to reduce DT size
>>
>> Changes in v2:
>> - Split cts/rts into separate pinctrl configs as suggested
>> - Removed options from board DTS files to keep them cleaner
>> ---
>> arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi | 432 ++++++++++++++++++-
>> 1 file changed, 429 insertions(+), 3 deletions(-)
>>
>> diff --git a/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi b/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi
>> index 381055737422..7811fb485bd4 100644
>> --- a/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi
>> +++ b/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi
>> @@ -11,12 +11,438 @@
>> #define K1_GPIO(x) (x / 32) (x % 32)
>>
>> &pinctrl {
>> + /omit-if-no-ref/
>> + uart0_0_cfg: uart0-0-cfg {
>> + uart0-0-pins {
>> + pinmux = <K1_PADCONF(104, 3)>, /* uart0_txd */
>> + <K1_PADCONF(105, 3)>; /* uart0_rxd */
>> + power-source = <3300>;
>> + bias-pull-up;
>> + drive-strength = <19>;
>> + };
>> + };
>> +
>> + /omit-if-no-ref/
>> + uart0_1_cfg: uart0-1-cfg {
>> + uart0-1-pins {
>> + pinmux = <K1_PADCONF(108, 1)>, /* uart0_txd */
>> + <K1_PADCONF(80, 3)>; /* uart0_rxd */
>> + power-source = <3300>;
> ..
>> + bias-pull-up;
> here, see comment below
>> + drive-strength = <19>;
>> + };
>> + };
>> +
>> + /omit-if-no-ref/
>> uart0_2_cfg: uart0-2-cfg {
>> uart0-2-pins {
>> - pinmux = <K1_PADCONF(68, 2)>,
>> - <K1_PADCONF(69, 2)>;
>> + pinmux = <K1_PADCONF(68, 2)>, /* uart0_txd */
>> + <K1_PADCONF(69, 2)>; /* uart0_rxd */
>> + bias-pull-up;
>> + drive-strength = <32>;
>> + };
>> + };
>>
>> - bias-pull-up = <0>;
> Sorry, I've overlooked this, the bias-pull-up need to explicitly set to
> a vale of 0, 1 - normal pull up, or strong pull up.. for uart, the normal
> pull up should be ok
>
> please refer Documentation/devicetree/bindings/pinctrl/spacemit,k1-pinctrl.yaml
>
> Since the rc6 is already tagged, I'm about to prepare a PR, so If you able
> to respin a new version quickly, I'd be happy to take, otherwise let's wait
> for next merge window (which shouldn't be a big problem)
>
> btw, please always do a DT check:
> make ARCH=riscv dtbs_check W=1
>
Oh, I wasn’t aware of this. I’ll update it accordingly and run the check
before sending a new version. Thanks for the advice!
Kind regards,
Hendrik
More information about the linux-riscv
mailing list