[PATCH 6/8] pinctrl: renesas: rzg2l: Split SoC-specific masks in struct rzg2l_register_masks
Diogo Ivo
diogo.ivo.sx at renesas.com
Tue Oct 20 02:15:00 PDT 2026
struct rzg2l_register_masks declares the masks of the OTHER_POC register
of RZ/G3L and of the I3C_SET_POC register of RZ/G3S in two branches of an
anonymous union. As both branches share the same storage, initializing both
other_poc_pvdd1833_oth_awo_poc and i3c_set_poc on RZ/G3L would have the
designated initializers override each other, ending up with the I3C_SET_POC
value in the PVDD1833_OTH_AWO_POC mask.
Split the union into a common area, for masks shared by multiple SoCs, and
per-SoC areas: the RZ/G3S and RZ/G3L I3C_SET_POC mask moves to the common
area, and the RZ/G3L OTHER_POC masks stay in a dedicated RZ/G3L area. This
way every mask gets its own member, and new SoCs can be described by
adding their own struct (possibly inside a union).
The existing RZ/G3S data only initializes i3c_set_poc, so it is not
affected by this change.
---
drivers/pinctrl/renesas/pinctrl-rzg2l.c | 20 ++++++++------------
1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/drivers/pinctrl/renesas/pinctrl-rzg2l.c b/drivers/pinctrl/renesas/pinctrl-rzg2l.c
index 9bf3743dc1ce..f73d273df362 100644
--- a/drivers/pinctrl/renesas/pinctrl-rzg2l.c
+++ b/drivers/pinctrl/renesas/pinctrl-rzg2l.c
@@ -278,18 +278,14 @@ struct rzg2l_register_offsets {
* @i3c_set_poc: I3C_SET_POC mask
*/
struct rzg2l_register_masks {
- union {
- /* RZ/G3L masks */
- struct {
- u8 other_poc_pvdd1833_oth_awo_poc;
- u8 other_poc_pvdd1833_oth_iso_poc;
- u8 other_poc_wdtovf_n_poc;
- };
-
- /* RZ/G3S masks */
- struct {
- u8 i3c_set_poc;
- };
+ /* Masks common to multiple SoCs */
+ u8 i3c_set_poc; /* RZ/G3S, RZ/G3L */
+
+ /* RZ/G3L masks */
+ struct {
+ u8 other_poc_pvdd1833_oth_awo_poc;
+ u8 other_poc_pvdd1833_oth_iso_poc;
+ u8 other_poc_wdtovf_n_poc;
};
};
--
2.56.0
More information about the linux-i3c
mailing list