Blame view
drivers/mfd/rdc321x-southbridge.c
2.35 KB
74ba9207e treewide: Replace... |
1 |
// SPDX-License-Identifier: GPL-2.0-or-later |
e090d506c mfd: Add support ... |
2 |
/* |
5a4432b95 mfd: printk/comme... |
3 |
* RDC321x MFD southbridge driver |
e090d506c mfd: Add support ... |
4 5 6 |
* * Copyright (C) 2007-2010 Florian Fainelli <florian@openwrt.org> * Copyright (C) 2010 Bernhard Loos <bernhardloos@googlemail.com> |
e090d506c mfd: Add support ... |
7 |
*/ |
e090d506c mfd: Add support ... |
8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <linux/module.h> #include <linux/kernel.h> #include <linux/platform_device.h> #include <linux/pci.h> #include <linux/mfd/core.h> #include <linux/mfd/rdc321x.h> static struct rdc321x_wdt_pdata rdc321x_wdt_pdata; static struct resource rdc321x_wdt_resource[] = { { .name = "wdt-reg", .start = RDC321X_WDT_CTRL, .end = RDC321X_WDT_CTRL + 0x3, |
8deca39e5 mfd: Change rdc32... |
22 |
.flags = IORESOURCE_IO, |
e090d506c mfd: Add support ... |
23 24 25 26 |
} }; static struct rdc321x_gpio_pdata rdc321x_gpio_pdata = { |
1ec93b9b1 mfd: rdc321x: Fix... |
27 |
.max_gpios = RDC321X_NUM_GPIO, |
e090d506c mfd: Add support ... |
28 29 30 31 32 33 34 |
}; static struct resource rdc321x_gpio_resources[] = { { .name = "gpio-reg1", .start = RDC321X_GPIO_CTRL_REG1, .end = RDC321X_GPIO_CTRL_REG1 + 0x7, |
8deca39e5 mfd: Change rdc32... |
35 |
.flags = IORESOURCE_IO, |
e090d506c mfd: Add support ... |
36 37 38 39 |
}, { .name = "gpio-reg2", .start = RDC321X_GPIO_CTRL_REG2, .end = RDC321X_GPIO_CTRL_REG2 + 0x7, |
8deca39e5 mfd: Change rdc32... |
40 |
.flags = IORESOURCE_IO, |
e090d506c mfd: Add support ... |
41 42 |
} }; |
5ac98553a mfd: Constify str... |
43 |
static const struct mfd_cell rdc321x_sb_cells[] = { |
e090d506c mfd: Add support ... |
44 45 46 47 |
{ .name = "rdc321x-wdt", .resources = rdc321x_wdt_resource, .num_resources = ARRAY_SIZE(rdc321x_wdt_resource), |
9abd768a8 mfd: Use mfd cell... |
48 49 |
.platform_data = &rdc321x_wdt_pdata, .pdata_size = sizeof(rdc321x_wdt_pdata), |
e090d506c mfd: Add support ... |
50 51 52 53 |
}, { .name = "rdc321x-gpio", .resources = rdc321x_gpio_resources, .num_resources = ARRAY_SIZE(rdc321x_gpio_resources), |
9abd768a8 mfd: Use mfd cell... |
54 55 |
.platform_data = &rdc321x_gpio_pdata, .pdata_size = sizeof(rdc321x_gpio_pdata), |
e090d506c mfd: Add support ... |
56 57 |
}, }; |
f791be492 mfd: remove use o... |
58 |
static int rdc321x_sb_probe(struct pci_dev *pdev, |
e090d506c mfd: Add support ... |
59 60 61 62 63 64 65 66 67 68 69 70 71 |
const struct pci_device_id *ent) { int err; err = pci_enable_device(pdev); if (err) { dev_err(&pdev->dev, "failed to enable device "); return err; } rdc321x_gpio_pdata.sb_pdev = pdev; rdc321x_wdt_pdata.sb_pdev = pdev; |
7360544c2 mfd: rdc321x: Use... |
72 73 74 75 |
return devm_mfd_add_devices(&pdev->dev, -1, rdc321x_sb_cells, ARRAY_SIZE(rdc321x_sb_cells), NULL, 0, NULL); |
e090d506c mfd: Add support ... |
76 |
} |
36fcd06c4 mfd: Remove DEFIN... |
77 |
static const struct pci_device_id rdc321x_sb_table[] = { |
e090d506c mfd: Add support ... |
78 79 80 |
{ PCI_DEVICE(PCI_VENDOR_ID_RDC, PCI_DEVICE_ID_RDC_R6030) }, {} }; |
853754864 mfd: Add MODULE_D... |
81 |
MODULE_DEVICE_TABLE(pci, rdc321x_sb_table); |
e090d506c mfd: Add support ... |
82 83 84 85 86 |
static struct pci_driver rdc321x_sb_driver = { .name = "RDC321x Southbridge", .id_table = rdc321x_sb_table, .probe = rdc321x_sb_probe, |
e090d506c mfd: Add support ... |
87 |
}; |
38a36f5a6 mfd: Use module_p... |
88 |
module_pci_driver(rdc321x_sb_driver); |
e090d506c mfd: Add support ... |
89 90 91 92 |
MODULE_AUTHOR("Florian Fainelli <florian@openwrt.org>"); MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("RDC R-321x MFD southbridge driver"); |