@@ -615,6 +615,12 @@ static ssize_t lm8323_set_disable(struct device *dev,
615615}
616616static DEVICE_ATTR (disable_kp , 0644 , lm8323_show_disable , lm8323_set_disable ) ;
617617
618+ static struct attribute * lm8323_attrs [] = {
619+ & dev_attr_disable_kp .attr ,
620+ NULL ,
621+ };
622+ ATTRIBUTE_GROUPS (lm8323 );
623+
618624static int lm8323_probe (struct i2c_client * client )
619625{
620626 struct lm8323_platform_data * pdata = dev_get_platdata (& client -> dev );
@@ -696,9 +702,6 @@ static int lm8323_probe(struct i2c_client *client)
696702 }
697703
698704 lm -> kp_enabled = true;
699- err = device_create_file (& client -> dev , & dev_attr_disable_kp );
700- if (err < 0 )
701- goto fail2 ;
702705
703706 idev -> name = pdata -> name ? : "LM8323 keypad" ;
704707 snprintf (lm -> phys , sizeof (lm -> phys ),
@@ -719,14 +722,14 @@ static int lm8323_probe(struct i2c_client *client)
719722 err = input_register_device (idev );
720723 if (err ) {
721724 dev_dbg (& client -> dev , "error registering input device\n" );
722- goto fail3 ;
725+ goto fail2 ;
723726 }
724727
725728 err = request_threaded_irq (client -> irq , NULL , lm8323_irq ,
726729 IRQF_TRIGGER_LOW |IRQF_ONESHOT , "lm8323" , lm );
727730 if (err ) {
728731 dev_err (& client -> dev , "could not get IRQ %d\n" , client -> irq );
729- goto fail4 ;
732+ goto fail3 ;
730733 }
731734
732735 i2c_set_clientdata (client , lm );
@@ -736,11 +739,9 @@ static int lm8323_probe(struct i2c_client *client)
736739
737740 return 0 ;
738741
739- fail4 :
742+ fail3 :
740743 input_unregister_device (idev );
741744 idev = NULL ;
742- fail3 :
743- device_remove_file (& client -> dev , & dev_attr_disable_kp );
744745fail2 :
745746 while (-- pwm >= 0 )
746747 if (lm -> pwm [pwm ].enabled )
@@ -761,8 +762,6 @@ static void lm8323_remove(struct i2c_client *client)
761762
762763 input_unregister_device (lm -> idev );
763764
764- device_remove_file (& lm -> client -> dev , & dev_attr_disable_kp );
765-
766765 for (i = 0 ; i < 3 ; i ++ )
767766 if (lm -> pwm [i ].enabled )
768767 led_classdev_unregister (& lm -> pwm [i ].cdev );
@@ -823,8 +822,9 @@ static const struct i2c_device_id lm8323_id[] = {
823822
824823static struct i2c_driver lm8323_i2c_driver = {
825824 .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 ,
828828 },
829829 .probe = lm8323_probe ,
830830 .remove = lm8323_remove ,
0 commit comments