Skip to content

Commit 87d084b

Browse files
prabhakarladgeertu
authored andcommitted
pinctrl: renesas: rzg2l: Reorganize variable configuration macro
The `PIN_CFG_VARIABLE` macro did not indicate the capabilities of a pin but served as a flag indicating that the pins of a port have different capabilities. To better reflect its purpose, move the `PIN_CFG_VARIABLE` macro beside `RZG2L_SINGLE_PIN` and rename it to `RZG2L_VARIABLE_CFG`. Additionally, introduce new macros for packing variable port configurations: - `RZG2L_GPIO_PORT_PACK_VARIABLE(n, a)`: Combines `RZG2L_VARIABLE_CFG` with `RZG2L_GPIO_PORT_PACK` to handle variable pin configurations for a packed port. - `RZG2L_GPIO_PORT_SPARSE_PACK_VARIABLE(m, a)`: Combines `RZG2L_VARIABLE_CFG` with `RZG2L_GPIO_PORT_SPARSE_PACK` to handle variable pin configurations for a sparse port. Due to the above change the configuration macros have been reorganized as follows: - Shift the bit positions of `PIN_CFG_NOGPIO_INT`, `PIN_CFG_NOD`, `PIN_CFG_SMT`, `PIN_CFG_ELC`, and `PIN_CFG_IOLH_RZV2H` down by one to accommodate the removal of `PIN_CFG_VARIABLE`. Signed-off-by: Lad Prabhakar <[email protected]> Reviewed-by: Geert Uytterhoeven <[email protected]> Tested-by: Claudiu Beznea <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Geert Uytterhoeven <[email protected]>
1 parent 13dcd63 commit 87d084b

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

drivers/pinctrl/renesas/pinctrl-rzg2l.c

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,14 @@
5757
#define PIN_CFG_IOLH_C BIT(13)
5858
#define PIN_CFG_SOFT_PS BIT(14)
5959
#define PIN_CFG_OEN BIT(15)
60-
#define PIN_CFG_VARIABLE BIT(16)
61-
#define PIN_CFG_NOGPIO_INT BIT(17)
62-
#define PIN_CFG_NOD BIT(18) /* N-ch Open Drain */
63-
#define PIN_CFG_SMT BIT(19) /* Schmitt-trigger input control */
64-
#define PIN_CFG_ELC BIT(20)
65-
#define PIN_CFG_IOLH_RZV2H BIT(21)
60+
#define PIN_CFG_NOGPIO_INT BIT(16)
61+
#define PIN_CFG_NOD BIT(17) /* N-ch Open Drain */
62+
#define PIN_CFG_SMT BIT(18) /* Schmitt-trigger input control */
63+
#define PIN_CFG_ELC BIT(19)
64+
#define PIN_CFG_IOLH_RZV2H BIT(20)
6665

6766
#define RZG2L_SINGLE_PIN BIT_ULL(63) /* Dedicated pin */
67+
#define RZG2L_VARIABLE_CFG BIT_ULL(62) /* Variable cfg for port pins */
6868

6969
#define RZG2L_MPXED_COMMON_PIN_FUNCS(group) \
7070
(PIN_CFG_IOLH_##group | \
@@ -100,12 +100,17 @@
100100
#define RZG2L_GPIO_PORT_SPARSE_PACK(m, a, f) (FIELD_PREP_CONST(PIN_CFG_PIN_MAP_MASK, (m)) | \
101101
FIELD_PREP_CONST(PIN_CFG_PIN_REG_MASK, (a)) | \
102102
FIELD_PREP_CONST(PIN_CFG_MASK, (f)))
103+
#define RZG2L_GPIO_PORT_SPARSE_PACK_VARIABLE(m, a) \
104+
(RZG2L_VARIABLE_CFG | \
105+
RZG2L_GPIO_PORT_SPARSE_PACK(m, a, 0))
103106

104107
/*
105108
* n indicates number of pins in the port, a is the register index
106109
* and f is pin configuration capabilities supported.
107110
*/
108111
#define RZG2L_GPIO_PORT_PACK(n, a, f) RZG2L_GPIO_PORT_SPARSE_PACK((1ULL << (n)) - 1, (a), (f))
112+
#define RZG2L_GPIO_PORT_PACK_VARIABLE(n, a) (RZG2L_VARIABLE_CFG | \
113+
RZG2L_GPIO_PORT_PACK(n, a, 0))
109114

110115
#define RZG2L_SINGLE_PIN_INDEX_MASK GENMASK_ULL(62, 56)
111116
#define RZG2L_SINGLE_PIN_BITS_MASK GENMASK_ULL(55, 53)
@@ -371,7 +376,7 @@ static u64 rzg2l_pinctrl_get_variable_pin_cfg(struct rzg2l_pinctrl *pctrl,
371376

372377
if (FIELD_GET(VARIABLE_PIN_CFG_PORT_MASK, cfg) == port &&
373378
FIELD_GET(VARIABLE_PIN_CFG_PIN_MASK, cfg) == pin)
374-
return (pincfg & ~PIN_CFG_VARIABLE) | FIELD_GET(PIN_CFG_MASK, cfg);
379+
return (pincfg & ~RZG2L_VARIABLE_CFG) | FIELD_GET(PIN_CFG_MASK, cfg);
375380
}
376381

377382
return 0;
@@ -1835,13 +1840,13 @@ static const u64 r9a07g043_gpio_configs[] = {
18351840
RZG2L_GPIO_PORT_SPARSE_PACK(0x2, 0x06, PIN_CFG_IOLH_B | PIN_CFG_SR | PIN_CFG_PUPD |
18361841
PIN_CFG_FILONOFF | PIN_CFG_FILNUM | PIN_CFG_FILCLKSEL |
18371842
PIN_CFG_IEN | PIN_CFG_NOGPIO_INT), /* P19 */
1838-
RZG2L_GPIO_PORT_PACK(8, 0x07, PIN_CFG_VARIABLE), /* P20 */
1843+
RZG2L_GPIO_PORT_PACK_VARIABLE(8, 0x07), /* P20 */
18391844
RZG2L_GPIO_PORT_SPARSE_PACK(0x2, 0x08, PIN_CFG_IOLH_B | PIN_CFG_SR | PIN_CFG_PUPD |
18401845
PIN_CFG_IEN | PIN_CFG_NOGPIO_INT), /* P21 */
18411846
RZG2L_GPIO_PORT_PACK(4, 0x09, PIN_CFG_IOLH_B | PIN_CFG_SR | PIN_CFG_PUPD |
18421847
PIN_CFG_IEN | PIN_CFG_NOGPIO_INT), /* P22 */
1843-
RZG2L_GPIO_PORT_SPARSE_PACK(0x3e, 0x0a, PIN_CFG_VARIABLE), /* P23 */
1844-
RZG2L_GPIO_PORT_PACK(6, 0x0b, PIN_CFG_VARIABLE), /* P24 */
1848+
RZG2L_GPIO_PORT_SPARSE_PACK_VARIABLE(0x3e, 0x0a), /* P23 */
1849+
RZG2L_GPIO_PORT_PACK_VARIABLE(6, 0x0b), /* P24 */
18451850
RZG2L_GPIO_PORT_SPARSE_PACK(0x2, 0x0c, PIN_CFG_IOLH_B | PIN_CFG_SR | PIN_CFG_FILONOFF |
18461851
PIN_CFG_FILNUM | PIN_CFG_FILCLKSEL |
18471852
PIN_CFG_NOGPIO_INT), /* P25 */
@@ -1913,7 +1918,7 @@ static const u64 r9a09g057_gpio_configs[] = {
19131918
PIN_CFG_ELC), /* P8 */
19141919
RZG2L_GPIO_PORT_PACK(8, 0x29, RZV2H_MPXED_PIN_FUNCS), /* P9 */
19151920
RZG2L_GPIO_PORT_PACK(8, 0x2a, RZV2H_MPXED_PIN_FUNCS), /* PA */
1916-
RZG2L_GPIO_PORT_PACK(6, 0x2b, PIN_CFG_VARIABLE), /* PB */
1921+
RZG2L_GPIO_PORT_PACK_VARIABLE(6, 0x2b), /* PB */
19171922
};
19181923

19191924
static const struct {
@@ -2637,7 +2642,7 @@ static int rzg2l_pinctrl_register(struct rzg2l_pinctrl *pctrl)
26372642
if (i && !(i % RZG2L_PINS_PER_PORT))
26382643
j++;
26392644
pin_data[i] = pctrl->data->port_pin_configs[j];
2640-
if (pin_data[i] & PIN_CFG_VARIABLE)
2645+
if (pin_data[i] & RZG2L_VARIABLE_CFG)
26412646
pin_data[i] = rzg2l_pinctrl_get_variable_pin_cfg(pctrl,
26422647
pin_data[i],
26432648
j,

0 commit comments

Comments
 (0)