@@ -152,6 +152,16 @@ static enum th1520_muxtype th1520_muxtype_get(const char *str)
152
152
(TH1520_MUX_##m0 << 0) | (TH1520_MUX_##m1 << 5) | (TH1520_MUX_##m2 << 10) | \
153
153
(TH1520_MUX_##m3 << 15) | (TH1520_MUX_##m4 << 20) | (TH1520_MUX_##m5 << 25)) }
154
154
155
+ static unsigned long th1520_pad_muxdata (void * drv_data )
156
+ {
157
+ return (uintptr_t )drv_data & TH1520_PAD_MUXDATA ;
158
+ }
159
+
160
+ static bool th1520_pad_no_padcfg (void * drv_data )
161
+ {
162
+ return (uintptr_t )drv_data & TH1520_PAD_NO_PADCFG ;
163
+ }
164
+
155
165
static const struct pinctrl_pin_desc th1520_group1_pins [] = {
156
166
TH1520_PAD (0 , OSC_CLK_IN , ____ , ____ , ____ , ____ , ____ , ____ , TH1520_PAD_NO_PADCFG ),
157
167
TH1520_PAD (1 , OSC_CLK_OUT , ____ , ____ , ____ , ____ , ____ , ____ , TH1520_PAD_NO_PADCFG ),
@@ -590,7 +600,7 @@ static int th1520_pinconf_get(struct pinctrl_dev *pctldev,
590
600
u32 value ;
591
601
u32 arg ;
592
602
593
- if (( uintptr_t ) desc -> drv_data & TH1520_PAD_NO_PADCFG )
603
+ if (th1520_pad_no_padcfg ( desc -> drv_data ) )
594
604
return - ENOTSUPP ;
595
605
596
606
value = readl_relaxed (th1520_padcfg (thp , pin ));
@@ -660,7 +670,7 @@ static int th1520_pinconf_set(struct pinctrl_dev *pctldev, unsigned int pin,
660
670
unsigned int i ;
661
671
u16 mask , value ;
662
672
663
- if (( uintptr_t ) desc -> drv_data & TH1520_PAD_NO_PADCFG )
673
+ if (th1520_pad_no_padcfg ( desc -> drv_data ) )
664
674
return - ENOTSUPP ;
665
675
666
676
mask = 0 ;
@@ -793,12 +803,14 @@ static int th1520_pinmux_set_mux(struct pinctrl_dev *pctldev,
793
803
{
794
804
struct th1520_pinctrl * thp = pinctrl_dev_get_drvdata (pctldev );
795
805
const struct function_desc * func = pinmux_generic_get_function (pctldev , fsel );
806
+ enum th1520_muxtype muxtype = (uintptr_t )func -> data ;
796
807
797
808
if (!func )
798
809
return - EINVAL ;
810
+
799
811
return th1520_pinmux_set (thp , thp -> desc .pins [gsel ].number ,
800
- ( uintptr_t ) thp -> desc .pins [gsel ].drv_data & TH1520_PAD_MUXDATA ,
801
- ( uintptr_t ) func -> data );
812
+ th1520_pad_muxdata ( thp -> desc .pins [gsel ].drv_data ) ,
813
+ muxtype );
802
814
}
803
815
804
816
static int th1520_gpio_request_enable (struct pinctrl_dev * pctldev ,
@@ -809,7 +821,7 @@ static int th1520_gpio_request_enable(struct pinctrl_dev *pctldev,
809
821
const struct pin_desc * desc = pin_desc_get (pctldev , offset );
810
822
811
823
return th1520_pinmux_set (thp , offset ,
812
- ( uintptr_t ) desc -> drv_data & TH1520_PAD_MUXDATA ,
824
+ th1520_pad_muxdata ( desc -> drv_data ) ,
813
825
TH1520_MUX_GPIO );
814
826
}
815
827
0 commit comments