rtc: ds1307: factor out irq_handler to struct chip_desc

Factor out irq_handler to struct chip_desc and use ds1307_irq as default.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>

authored by

Heiner Kallweit and committed by
Alexandre Belloni
45947127 82e2d43f

+7 -8
+7 -8
drivers/rtc/rtc-ds1307.c
··· 140 u8 century_enable_bit; 141 u8 century_bit; 142 u8 bbsqi_bit; 143 u16 trickle_charger_reg; 144 u8 (*do_trickle_setup)(struct ds1307 *, uint32_t, 145 bool); 146 }; 147 148 static u8 do_trickle_setup_ds1339(struct ds1307 *, uint32_t ohms, bool diode); 149 150 static const struct chip_desc chips[last_ds_type] = { 151 [ds_1307] = { ··· 196 /* this is battery backed SRAM */ 197 .nvram_offset = 0x20, 198 .nvram_size = 4, /* 32bit (4 word x 8 bit) */ 199 }, 200 [mcp794xx] = { 201 .alarm = 1, 202 /* this is battery backed SRAM */ 203 .nvram_offset = 0x20, 204 .nvram_size = 0x40, 205 }, 206 }; 207 ··· 1325 unsigned long timestamp; 1326 u8 trickle_charger_setup = 0; 1327 1328 - irq_handler_t irq_handler = ds1307_irq; 1329 - 1330 const struct rtc_class_ops *rtc_ops = &ds13xx_rtc_ops; 1331 1332 ds1307 = devm_kzalloc(&client->dev, sizeof(struct ds1307), GFP_KERNEL); ··· 1496 case rx_8130: 1497 ds1307->offset = 0x10; /* Seconds starts at 0x10 */ 1498 rtc_ops = &rx8130_rtc_ops; 1499 - if (want_irq) 1500 - irq_handler = rx8130_irq; 1501 break; 1502 case ds_1388: 1503 ds1307->offset = 1; /* Seconds starts at 1 */ 1504 break; 1505 case mcp794xx: 1506 rtc_ops = &mcp794xx_rtc_ops; 1507 - if (want_irq || ds1307_can_wakeup_device) 1508 - irq_handler = mcp794xx_irq; 1509 break; 1510 default: 1511 break; ··· 1651 } 1652 1653 if (want_irq) { 1654 - err = devm_request_threaded_irq(ds1307->dev, 1655 - client->irq, NULL, irq_handler, 1656 IRQF_SHARED | IRQF_ONESHOT, 1657 ds1307->name, ds1307); 1658 if (err) {
··· 140 u8 century_enable_bit; 141 u8 century_bit; 142 u8 bbsqi_bit; 143 + irq_handler_t irq_handler; 144 u16 trickle_charger_reg; 145 u8 (*do_trickle_setup)(struct ds1307 *, uint32_t, 146 bool); 147 }; 148 149 static u8 do_trickle_setup_ds1339(struct ds1307 *, uint32_t ohms, bool diode); 150 + static irqreturn_t rx8130_irq(int irq, void *dev_id); 151 + static irqreturn_t mcp794xx_irq(int irq, void *dev_id); 152 153 static const struct chip_desc chips[last_ds_type] = { 154 [ds_1307] = { ··· 193 /* this is battery backed SRAM */ 194 .nvram_offset = 0x20, 195 .nvram_size = 4, /* 32bit (4 word x 8 bit) */ 196 + .irq_handler = rx8130_irq, 197 }, 198 [mcp794xx] = { 199 .alarm = 1, 200 /* this is battery backed SRAM */ 201 .nvram_offset = 0x20, 202 .nvram_size = 0x40, 203 + .irq_handler = mcp794xx_irq, 204 }, 205 }; 206 ··· 1320 unsigned long timestamp; 1321 u8 trickle_charger_setup = 0; 1322 1323 const struct rtc_class_ops *rtc_ops = &ds13xx_rtc_ops; 1324 1325 ds1307 = devm_kzalloc(&client->dev, sizeof(struct ds1307), GFP_KERNEL); ··· 1493 case rx_8130: 1494 ds1307->offset = 0x10; /* Seconds starts at 0x10 */ 1495 rtc_ops = &rx8130_rtc_ops; 1496 break; 1497 case ds_1388: 1498 ds1307->offset = 1; /* Seconds starts at 1 */ 1499 break; 1500 case mcp794xx: 1501 rtc_ops = &mcp794xx_rtc_ops; 1502 break; 1503 default: 1504 break; ··· 1652 } 1653 1654 if (want_irq) { 1655 + err = devm_request_threaded_irq(ds1307->dev, client->irq, NULL, 1656 + chip->irq_handler ?: ds1307_irq, 1657 IRQF_SHARED | IRQF_ONESHOT, 1658 ds1307->name, ds1307); 1659 if (err) {