@@ -615,6 +615,12 @@ static ssize_t lm8323_set_disable(struct device *dev,
615
615
}
616
616
static DEVICE_ATTR (disable_kp , 0644 , lm8323_show_disable , lm8323_set_disable ) ;
617
617
618
+ static struct attribute * lm8323_attrs [] = {
619
+ & dev_attr_disable_kp .attr ,
620
+ NULL ,
621
+ };
622
+ ATTRIBUTE_GROUPS (lm8323 );
623
+
618
624
static int lm8323_probe (struct i2c_client * client )
619
625
{
620
626
struct lm8323_platform_data * pdata = dev_get_platdata (& client -> dev );
@@ -696,9 +702,6 @@ static int lm8323_probe(struct i2c_client *client)
696
702
}
697
703
698
704
lm -> kp_enabled = true;
699
- err = device_create_file (& client -> dev , & dev_attr_disable_kp );
700
- if (err < 0 )
701
- goto fail2 ;
702
705
703
706
idev -> name = pdata -> name ? : "LM8323 keypad" ;
704
707
snprintf (lm -> phys , sizeof (lm -> phys ),
@@ -719,14 +722,14 @@ static int lm8323_probe(struct i2c_client *client)
719
722
err = input_register_device (idev );
720
723
if (err ) {
721
724
dev_dbg (& client -> dev , "error registering input device\n" );
722
- goto fail3 ;
725
+ goto fail2 ;
723
726
}
724
727
725
728
err = request_threaded_irq (client -> irq , NULL , lm8323_irq ,
726
729
IRQF_TRIGGER_LOW |IRQF_ONESHOT , "lm8323" , lm );
727
730
if (err ) {
728
731
dev_err (& client -> dev , "could not get IRQ %d\n" , client -> irq );
729
- goto fail4 ;
732
+ goto fail3 ;
730
733
}
731
734
732
735
i2c_set_clientdata (client , lm );
@@ -736,11 +739,9 @@ static int lm8323_probe(struct i2c_client *client)
736
739
737
740
return 0 ;
738
741
739
- fail4 :
742
+ fail3 :
740
743
input_unregister_device (idev );
741
744
idev = NULL ;
742
- fail3 :
743
- device_remove_file (& client -> dev , & dev_attr_disable_kp );
744
745
fail2 :
745
746
while (-- pwm >= 0 )
746
747
if (lm -> pwm [pwm ].enabled )
@@ -761,8 +762,6 @@ static void lm8323_remove(struct i2c_client *client)
761
762
762
763
input_unregister_device (lm -> idev );
763
764
764
- device_remove_file (& lm -> client -> dev , & dev_attr_disable_kp );
765
-
766
765
for (i = 0 ; i < 3 ; i ++ )
767
766
if (lm -> pwm [i ].enabled )
768
767
led_classdev_unregister (& lm -> pwm [i ].cdev );
@@ -823,8 +822,9 @@ static const struct i2c_device_id lm8323_id[] = {
823
822
824
823
static struct i2c_driver lm8323_i2c_driver = {
825
824
.driver = {
826
- .name = "lm8323" ,
827
- .pm = pm_sleep_ptr (& lm8323_pm_ops ),
825
+ .name = "lm8323" ,
826
+ .pm = pm_sleep_ptr (& lm8323_pm_ops ),
827
+ .dev_groups = lm8323_groups ,
828
828
},
829
829
.probe = lm8323_probe ,
830
830
.remove = lm8323_remove ,
0 commit comments