[PATCH v2 00/22] Add basic pinctrl drivers for JHB100 SoC
Changhuang Liang
changhuang.liang at starfivetech.com
Thu May 14 04:11:56 PDT 2026
The JHB100 SoC has 13 pinctrl domains - sys0, sys0h, sys1, sys2, per0, per1,
per2, per2pok, per3, adc0, adc1, emmc, and vga.
In the current series, we will only add the following pinctrl:
- sys0, sys0h, sys1, sys2
- per0, per1, per2, per2pok, per3
The remaining pinctrl will be implemented in future series.
This series depends on the series:
https://lore.kernel.org/all/20260508053632.818548-1-changhuang.liang@starfivetech.com/
Change since v1:
- Add new patch 1/2/3
- Remove v1 PATCH 19
PATCH 5:
- Use the generic interface pinctrl_generic_pins_function_dt_node_to_map()
- Use the 3-cell GPIO framework
- Replace custom pinconf with generic pinconf
- Share a single interrupt number across multiple GPIO banks within the
same domain
PATCH 4/6/8/10/12/14/16/18/20:
- Move pin definitions into the include directory
PATCH 5/7/9/11/13/15/17/19/21:
- Add a "function" mapping table
PATCH 22:
- Use the 3-cell GPIO framework
- Use pinctrl hog to initialize the pin group voltage.
v1: https://lore.kernel.org/all/20260424111330.702272-1-changhuang.liang@starfivetech.com/
Changhuang Liang (22):
dt-bindings: pincfg-node: Add property 'input-debounce-nanoseconds'
pinctrl: pinconf-generic: Add property 'input-debounce-nanoseconds'
pinctrl: pinctrl-generic: Make the "function" property optional
dt-bindings: pinctrl: Add starfive,jhb100-sys0-pinctrl
pinctrl: starfive: Add StarFive JHB100 sys0 controller driver
dt-bindings: pinctrl: Add starfive,jhb100-sys0h-pinctrl
pinctrl: starfive: Add StarFive JHB100 sys0h controller driver
dt-bindings: pinctrl: Add starfive,jhb100-sys1-pinctrl
pinctrl: starfive: Add StarFive JHB100 sys1 controller driver
dt-bindings: pinctrl: Add starfive,jhb100-sys2-pinctrl
pinctrl: starfive: Add StarFive JHB100 sys2 controller driver
dt-bindings: pinctrl: Add starfive,jhb100-per0-pinctrl
pinctrl: starfive: Add StarFive JHB100 per0 controller driver
dt-bindings: pinctrl: Add starfive,jhb100-per1-pinctrl
pinctrl: starfive: Add StarFive JHB100 per1 controller driver
dt-bindings: pinctrl: Add starfive,jhb100-per2-pinctrl
pinctrl: starfive: Add StarFive JHB100 per2 controller driver
dt-bindings: pinctrl: Add starfive,jhb100-per2pok-pinctrl
pinctrl: starfive: Add StarFive JHB100 per2pok controller driver
dt-bindings: pinctrl: Add starfive,jhb100-per3-pinctrl
pinctrl: starfive: Add StarFive JHB100 per3 controller driver
riscv: dts: starfive: jhb100: Add pinctrl nodes
.../bindings/pinctrl/pincfg-node.yaml | 12 +
.../pinctrl/starfive,jhb100-per0-pinctrl.yaml | 176 ++
.../pinctrl/starfive,jhb100-per1-pinctrl.yaml | 175 ++
.../pinctrl/starfive,jhb100-per2-pinctrl.yaml | 175 ++
.../starfive,jhb100-per2pok-pinctrl.yaml | 173 ++
.../pinctrl/starfive,jhb100-per3-pinctrl.yaml | 173 ++
.../pinctrl/starfive,jhb100-sys0-pinctrl.yaml | 175 ++
.../starfive,jhb100-sys0h-pinctrl.yaml | 174 ++
.../pinctrl/starfive,jhb100-sys1-pinctrl.yaml | 175 ++
.../pinctrl/starfive,jhb100-sys2-pinctrl.yaml | 173 ++
MAINTAINERS | 9 +
arch/riscv/boot/dts/starfive/jhb100-evb1.dts | 35 +
.../boot/dts/starfive/jhb100-pinctrl.dtsi | 188 ++
arch/riscv/boot/dts/starfive/jhb100.dtsi | 110 ++
drivers/pinctrl/pinconf-generic.c | 2 +
drivers/pinctrl/pinctrl-generic.c | 37 +-
drivers/pinctrl/starfive/Kconfig | 115 ++
drivers/pinctrl/starfive/Makefile | 11 +
.../starfive/pinctrl-starfive-jhb100-per0.c | 154 ++
.../starfive/pinctrl-starfive-jhb100-per1.c | 165 ++
.../starfive/pinctrl-starfive-jhb100-per2.c | 126 ++
.../pinctrl-starfive-jhb100-per2pok.c | 97 +
.../starfive/pinctrl-starfive-jhb100-per3.c | 121 ++
.../starfive/pinctrl-starfive-jhb100-sys0.c | 123 ++
.../starfive/pinctrl-starfive-jhb100-sys0h.c | 97 +
.../starfive/pinctrl-starfive-jhb100-sys1.c | 93 +
.../starfive/pinctrl-starfive-jhb100-sys2.c | 134 ++
.../starfive/pinctrl-starfive-jhb100.c | 1579 +++++++++++++++++
.../starfive/pinctrl-starfive-jhb100.h | 152 ++
.../pinctrl/starfive,jhb100-pinctrl.h | 252 +++
include/linux/pinctrl/pinconf-generic.h | 5 +
31 files changed, 5176 insertions(+), 10 deletions(-)
create mode 100644 Documentation/devicetree/bindings/pinctrl/starfive,jhb100-per0-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/starfive,jhb100-per1-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/starfive,jhb100-per2-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/starfive,jhb100-per2pok-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/starfive,jhb100-per3-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/starfive,jhb100-sys0-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/starfive,jhb100-sys0h-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/starfive,jhb100-sys1-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/starfive,jhb100-sys2-pinctrl.yaml
create mode 100644 arch/riscv/boot/dts/starfive/jhb100-pinctrl.dtsi
create mode 100644 drivers/pinctrl/starfive/pinctrl-starfive-jhb100-per0.c
create mode 100644 drivers/pinctrl/starfive/pinctrl-starfive-jhb100-per1.c
create mode 100644 drivers/pinctrl/starfive/pinctrl-starfive-jhb100-per2.c
create mode 100644 drivers/pinctrl/starfive/pinctrl-starfive-jhb100-per2pok.c
create mode 100644 drivers/pinctrl/starfive/pinctrl-starfive-jhb100-per3.c
create mode 100644 drivers/pinctrl/starfive/pinctrl-starfive-jhb100-sys0.c
create mode 100644 drivers/pinctrl/starfive/pinctrl-starfive-jhb100-sys0h.c
create mode 100644 drivers/pinctrl/starfive/pinctrl-starfive-jhb100-sys1.c
create mode 100644 drivers/pinctrl/starfive/pinctrl-starfive-jhb100-sys2.c
create mode 100644 drivers/pinctrl/starfive/pinctrl-starfive-jhb100.c
create mode 100644 drivers/pinctrl/starfive/pinctrl-starfive-jhb100.h
create mode 100644 include/dt-bindings/pinctrl/starfive,jhb100-pinctrl.h
--
2.25.1
More information about the linux-riscv
mailing list