diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-08-02 14:50:24 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-08-02 14:50:24 -0400 |
commit | 44d82e2963551eafa378a3fc7a923df7853af4e2 (patch) | |
tree | cfa6be7fda5a455ef93f0c00f3134287e4dc1bbd /drivers/ata | |
parent | bfdf85dfce1f203f8fcca034b8efe339542033fa (diff) | |
parent | 15a1e1bafe2c924db6d370ad892d7da6c7d83598 (diff) |
Merge tag 'dt2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull arm-soc Marvell Orion device-tree updates from Olof Johansson:
"This contains a set of device-tree conversions for Marvell Orion
platforms that were staged early but took a few tries to get the
branch into a format where it was suitable for us to pick up.
Given that most people working on these platforms are hobbyists with
limited time, we were a bit more flexible with merging it even though
it came in late."
* tag 'dt2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (21 commits)
ARM: Kirkwood: Replace mrvl with marvell
ARM: Kirkwood: Describe GoFlex Net LEDs and SATA in DT.
ARM: Kirkwood: Describe Dreamplug LEDs in DT.
ARM: Kirkwood: Describe iConnects LEDs in DT.
ARM: Kirkwood: Describe iConnects temperature sensor in DT.
ARM: Kirkwood: Describe IB62x0 LEDs in DT.
ARM: Kirkwood: Describe IB62x0 gpio-keys in DT.
ARM: Kirkwood: Describe DNS32? gpio-keys in DT.
ARM: Kirkwood: Move common portions into a kirkwood-dnskw.dtsi
ARM: Kirkwood: Replace DNS-320/DNS-325 leds with dt bindings
ARM: Kirkwood: Describe DNS325 temperature sensor in DT.
ARM: Kirkwood: Use DT to configure SATA device.
ARM: kirkwood: use devicetree for SPI on dreamplug
ARM: kirkwood: Add LS-XHL and LS-CHLv2 support
ARM: Kirkwood: Initial DTS support for Kirkwood GoFlex Net
ARM: Kirkwood: Add basic device tree support for QNAP TS219.
ATA: sata_mv: Add device tree support
ARM: Orion: DTify the watchdog timer.
ARM: Orion: Add arch support needed for I2C via DT.
ARM: kirkwood: use devicetree for orion-spi
...
Conflicts:
drivers/watchdog/orion_wdt.c
Diffstat (limited to 'drivers/ata')
-rw-r--r-- | drivers/ata/sata_mv.c | 42 |
1 files changed, 29 insertions, 13 deletions
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c index 24712adf69df..311be18d3f03 100644 --- a/drivers/ata/sata_mv.c +++ b/drivers/ata/sata_mv.c | |||
@@ -65,6 +65,8 @@ | |||
65 | #include <linux/mbus.h> | 65 | #include <linux/mbus.h> |
66 | #include <linux/bitops.h> | 66 | #include <linux/bitops.h> |
67 | #include <linux/gfp.h> | 67 | #include <linux/gfp.h> |
68 | #include <linux/of.h> | ||
69 | #include <linux/of_irq.h> | ||
68 | #include <scsi/scsi_host.h> | 70 | #include <scsi/scsi_host.h> |
69 | #include <scsi/scsi_cmnd.h> | 71 | #include <scsi/scsi_cmnd.h> |
70 | #include <scsi/scsi_device.h> | 72 | #include <scsi/scsi_device.h> |
@@ -4026,7 +4028,7 @@ static int mv_platform_probe(struct platform_device *pdev) | |||
4026 | struct ata_host *host; | 4028 | struct ata_host *host; |
4027 | struct mv_host_priv *hpriv; | 4029 | struct mv_host_priv *hpriv; |
4028 | struct resource *res; | 4030 | struct resource *res; |
4029 | int n_ports = 0; | 4031 | int n_ports = 0, irq = 0; |
4030 | int rc; | 4032 | int rc; |
4031 | #if defined(CONFIG_HAVE_CLK) | 4033 | #if defined(CONFIG_HAVE_CLK) |
4032 | int port; | 4034 | int port; |
@@ -4050,8 +4052,14 @@ static int mv_platform_probe(struct platform_device *pdev) | |||
4050 | return -EINVAL; | 4052 | return -EINVAL; |
4051 | 4053 | ||
4052 | /* allocate host */ | 4054 | /* allocate host */ |
4053 | mv_platform_data = pdev->dev.platform_data; | 4055 | if (pdev->dev.of_node) { |
4054 | n_ports = mv_platform_data->n_ports; | 4056 | of_property_read_u32(pdev->dev.of_node, "nr-ports", &n_ports); |
4057 | irq = irq_of_parse_and_map(pdev->dev.of_node, 0); | ||
4058 | } else { | ||
4059 | mv_platform_data = pdev->dev.platform_data; | ||
4060 | n_ports = mv_platform_data->n_ports; | ||
4061 | irq = platform_get_irq(pdev, 0); | ||
4062 | } | ||
4055 | 4063 | ||
4056 | host = ata_host_alloc_pinfo(&pdev->dev, ppi, n_ports); | 4064 | host = ata_host_alloc_pinfo(&pdev->dev, ppi, n_ports); |
4057 | hpriv = devm_kzalloc(&pdev->dev, sizeof(*hpriv), GFP_KERNEL); | 4065 | hpriv = devm_kzalloc(&pdev->dev, sizeof(*hpriv), GFP_KERNEL); |
@@ -4109,8 +4117,7 @@ static int mv_platform_probe(struct platform_device *pdev) | |||
4109 | dev_info(&pdev->dev, "slots %u ports %d\n", | 4117 | dev_info(&pdev->dev, "slots %u ports %d\n", |
4110 | (unsigned)MV_MAX_Q_DEPTH, host->n_ports); | 4118 | (unsigned)MV_MAX_Q_DEPTH, host->n_ports); |
4111 | 4119 | ||
4112 | rc = ata_host_activate(host, platform_get_irq(pdev, 0), mv_interrupt, | 4120 | rc = ata_host_activate(host, irq, mv_interrupt, IRQF_SHARED, &mv6_sht); |
4113 | IRQF_SHARED, &mv6_sht); | ||
4114 | if (!rc) | 4121 | if (!rc) |
4115 | return 0; | 4122 | return 0; |
4116 | 4123 | ||
@@ -4205,15 +4212,24 @@ static int mv_platform_resume(struct platform_device *pdev) | |||
4205 | #define mv_platform_resume NULL | 4212 | #define mv_platform_resume NULL |
4206 | #endif | 4213 | #endif |
4207 | 4214 | ||
4215 | #ifdef CONFIG_OF | ||
4216 | static struct of_device_id mv_sata_dt_ids[] __devinitdata = { | ||
4217 | { .compatible = "marvell,orion-sata", }, | ||
4218 | {}, | ||
4219 | }; | ||
4220 | MODULE_DEVICE_TABLE(of, mv_sata_dt_ids); | ||
4221 | #endif | ||
4222 | |||
4208 | static struct platform_driver mv_platform_driver = { | 4223 | static struct platform_driver mv_platform_driver = { |
4209 | .probe = mv_platform_probe, | 4224 | .probe = mv_platform_probe, |
4210 | .remove = __devexit_p(mv_platform_remove), | 4225 | .remove = __devexit_p(mv_platform_remove), |
4211 | .suspend = mv_platform_suspend, | 4226 | .suspend = mv_platform_suspend, |
4212 | .resume = mv_platform_resume, | 4227 | .resume = mv_platform_resume, |
4213 | .driver = { | 4228 | .driver = { |
4214 | .name = DRV_NAME, | 4229 | .name = DRV_NAME, |
4215 | .owner = THIS_MODULE, | 4230 | .owner = THIS_MODULE, |
4216 | }, | 4231 | .of_match_table = of_match_ptr(mv_sata_dt_ids), |
4232 | }, | ||
4217 | }; | 4233 | }; |
4218 | 4234 | ||
4219 | 4235 | ||