unsigned long reg;
        unsigned int val = 0;
 
-       if (group_selector > info->ngroups)
+       if (group_selector >= info->ngroups)
                return -EINVAL;
 
        switch (func_selector) {
        struct sprd_pin_group *grp;
        unsigned int pin_id;
 
-       if (selector > info->ngroups)
+       if (selector >= info->ngroups)
                return -EINVAL;
 
        grp = &info->groups[selector];
        struct sprd_pin_group *grp;
        int ret, i;
 
-       if (selector > info->ngroups)
+       if (selector >= info->ngroups)
                return -EINVAL;
 
        grp = &info->groups[selector];
        const char *name;
        int i, ret;
 
-       if (selector > info->ngroups)
+       if (selector >= info->ngroups)
                return;
 
        grp = &info->groups[selector];