pinctrl: realtek: add rtd1625 pinctrl driver

Add support for Realtek RTD1625 SoC using the realtek common pinctrl driver.

This patch introduces the RTK_PIN_CONFIG_V2 and RTK_PIN_CONFIG_I2C macros,
which are required to describe the specific register layout and electrical
features (such as slew rate and high VIL) of the RTD1625 pins.

Signed-off-by: Tzuyi Chang <tychang@realtek.com>
Signed-off-by: Yu-Chun Lin <eleanor.lin@realtek.com>
Signed-off-by: Linus Walleij <linusw@kernel.org>
This commit is contained in:
Tzuyi Chang 2026-03-17 19:54:09 +08:00 committed by Linus Walleij
parent dcc9334435
commit e309dbd523
4 changed files with 3187 additions and 0 deletions

View File

@ -22,3 +22,17 @@ config PINCTRL_RTD1315E
tristate "Realtek DHC 1315E pin controller driver"
depends on PINCTRL_RTD
default y
config PINCTRL_RTD1625
tristate "Realtek DHC 1625 pin controller driver"
depends on PINCTRL_RTD
default y
help
This driver enables support for the pin controller on the Realtek
RTD1625 SoCs.
It implements pin multiplexing for function selection and GPIO enabling.
It also utilizes the generic pin configuration interface to manage
electrical properties for both individual pins and pin groups.
Say Y here to enable the pinctrl driver for RTD1625 SoCs

View File

@ -4,3 +4,4 @@ obj-$(CONFIG_PINCTRL_RTD) += pinctrl-rtd.o
obj-$(CONFIG_PINCTRL_RTD1619B) += pinctrl-rtd1619b.o
obj-$(CONFIG_PINCTRL_RTD1319D) += pinctrl-rtd1319d.o
obj-$(CONFIG_PINCTRL_RTD1315E) += pinctrl-rtd1315e.o
obj-$(CONFIG_PINCTRL_RTD1625) += pinctrl-rtd1625.o

View File

@ -98,6 +98,40 @@ struct rtd_pin_reg_list {
.curr_type = _curr_type, \
}
#define RTK_PIN_CONFIG_V2(_name, _reg_off, _base_bit, _pud_en_off, \
_pud_sel_off, _curr_off, _smt_off, _pow_off, _input_volt_off, \
_curr_type) \
{ \
.name = # _name, \
.reg_offset = _reg_off, \
.base_bit = _base_bit, \
.pud_en_offset = _pud_en_off, \
.pud_sel_offset = _pud_sel_off, \
.curr_offset = _curr_off, \
.smt_offset = _smt_off, \
.power_offset = _pow_off, \
.input_volt_offset = _input_volt_off, \
.curr_type = _curr_type, \
}
#define RTK_PIN_CONFIG_I2C(_name, _reg_off, _base_bit, _pud_en_off, \
_pud_sel_off, _curr_off, _smt_off, _hvil_off, _sr_off, _pow_off, \
_input_volt_off, _curr_type) \
{ \
.name = # _name, \
.reg_offset = _reg_off, \
.base_bit = _base_bit, \
.pud_en_offset = _pud_en_off, \
.pud_sel_offset = _pud_sel_off, \
.curr_offset = _curr_off, \
.smt_offset = _smt_off, \
.hvil_offset = _hvil_off, \
.slew_rate_offset = _sr_off, \
.power_offset = _pow_off, \
.input_volt_offset = _input_volt_off, \
.curr_type = _curr_type, \
}
#define RTK_PIN_SCONFIG(_name, _reg_off, _d_offset, _d_mask, \
_n_offset, _n_mask, _p_offset, _p_mask) \
{ \

File diff suppressed because it is too large Load Diff