File tree Expand file tree Collapse file tree 1 file changed +17
-3
lines changed Expand file tree Collapse file tree 1 file changed +17
-3
lines changed Original file line number Diff line number Diff line change @@ -1704,12 +1704,15 @@ static int adt7475_pwm_properties_parse_reference_args(struct fwnode_handle *fwn
1704
1704
if (ret )
1705
1705
return ret ;
1706
1706
1707
- if (rargs .nargs != 4 ) {
1707
+ if (rargs .nargs != 3 && rargs . nargs != 4 ) {
1708
1708
fwnode_handle_put (rargs .fwnode );
1709
1709
return - EINVAL ;
1710
1710
}
1711
1711
1712
- for (i = 0 ; i < 4 ; i ++ )
1712
+ /* Let duty_cycle default to period */
1713
+ args [3 ] = rargs .args [1 ];
1714
+
1715
+ for (i = 0 ; i < rargs .nargs ; i ++ )
1713
1716
args [i ] = rargs .args [i ];
1714
1717
1715
1718
ret = _adt7475_pwm_properties_parse_args (args , cfg );
@@ -1724,11 +1727,22 @@ static int adt7475_pwm_properties_parse_args(struct fwnode_handle *fwnode,
1724
1727
{
1725
1728
int ret ;
1726
1729
u32 args [4 ] = {};
1730
+ size_t n_vals = fwnode_property_count_u32 (fwnode , "pwms" );
1731
+
1732
+ if (n_vals != 3 && n_vals != 4 )
1733
+ return - EOVERFLOW ;
1727
1734
1728
- ret = fwnode_property_read_u32_array (fwnode , "pwms" , args , ARRAY_SIZE ( args ) );
1735
+ ret = fwnode_property_read_u32_array (fwnode , "pwms" , args , n_vals );
1729
1736
if (ret )
1730
1737
return ret ;
1731
1738
1739
+ /*
1740
+ * If there are no item to define the duty_cycle, default it to the
1741
+ * period.
1742
+ */
1743
+ if (n_vals == 3 )
1744
+ args [3 ] = args [1 ];
1745
+
1732
1746
return _adt7475_pwm_properties_parse_args (args , cfg );
1733
1747
}
1734
1748
You can’t perform that action at this time.
0 commit comments