diff options
author | Daniel Borkmann <danborkmann@iogearbox.net> | 2012-04-18 17:55:08 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-04-19 22:09:18 -0400 |
commit | 73eb94a094e54cb81c41c64e59eb5d6a05ecb045 (patch) | |
tree | 50424ae9af086c44b3d5b072b5875fdd1e1b2a29 /drivers/char | |
parent | b4161f0bb5f815ca6d8108062b8e3b650c18fe39 (diff) |
xilinx_hwicap: add support for virtex6 FPGAs
This patch adds support for the virtex6 FPGA to the xilinx_hwicap driver.
Tested on a Xilinx ML605 board. The patch is against the latest linus-tree.
Signed-off-by: Ariane Keller <ariane.keller@tik.ee.ethz.ch>
Signed-off-by: Daniel Borkmann <daniel.borkmann@tik.ee.ethz.ch>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/xilinx_hwicap/xilinx_hwicap.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/drivers/char/xilinx_hwicap/xilinx_hwicap.c b/drivers/char/xilinx_hwicap/xilinx_hwicap.c index 31ba11ca75e..2c5d15beea3 100644 --- a/drivers/char/xilinx_hwicap/xilinx_hwicap.c +++ b/drivers/char/xilinx_hwicap/xilinx_hwicap.c | |||
@@ -167,6 +167,7 @@ static const struct config_registers v4_config_registers = { | |||
167 | .BOOTSTS = UNIMPLEMENTED, | 167 | .BOOTSTS = UNIMPLEMENTED, |
168 | .CTL_1 = UNIMPLEMENTED, | 168 | .CTL_1 = UNIMPLEMENTED, |
169 | }; | 169 | }; |
170 | |||
170 | static const struct config_registers v5_config_registers = { | 171 | static const struct config_registers v5_config_registers = { |
171 | .CRC = 0, | 172 | .CRC = 0, |
172 | .FAR = 1, | 173 | .FAR = 1, |
@@ -192,6 +193,31 @@ static const struct config_registers v5_config_registers = { | |||
192 | .CTL_1 = 19, | 193 | .CTL_1 = 19, |
193 | }; | 194 | }; |
194 | 195 | ||
196 | static const struct config_registers v6_config_registers = { | ||
197 | .CRC = 0, | ||
198 | .FAR = 1, | ||
199 | .FDRI = 2, | ||
200 | .FDRO = 3, | ||
201 | .CMD = 4, | ||
202 | .CTL = 5, | ||
203 | .MASK = 6, | ||
204 | .STAT = 7, | ||
205 | .LOUT = 8, | ||
206 | .COR = 9, | ||
207 | .MFWR = 10, | ||
208 | .FLR = UNIMPLEMENTED, | ||
209 | .KEY = UNIMPLEMENTED, | ||
210 | .CBC = 11, | ||
211 | .IDCODE = 12, | ||
212 | .AXSS = 13, | ||
213 | .C0R_1 = 14, | ||
214 | .CSOB = 15, | ||
215 | .WBSTAR = 16, | ||
216 | .TIMER = 17, | ||
217 | .BOOTSTS = 22, | ||
218 | .CTL_1 = 24, | ||
219 | }; | ||
220 | |||
195 | /** | 221 | /** |
196 | * hwicap_command_desync - Send a DESYNC command to the ICAP port. | 222 | * hwicap_command_desync - Send a DESYNC command to the ICAP port. |
197 | * @drvdata: a pointer to the drvdata. | 223 | * @drvdata: a pointer to the drvdata. |
@@ -744,6 +770,8 @@ static int __devinit hwicap_of_probe(struct platform_device *op, | |||
744 | regs = &v4_config_registers; | 770 | regs = &v4_config_registers; |
745 | } else if (!strcmp(family, "virtex5")) { | 771 | } else if (!strcmp(family, "virtex5")) { |
746 | regs = &v5_config_registers; | 772 | regs = &v5_config_registers; |
773 | } else if (!strcmp(family, "virtex6")) { | ||
774 | regs = &v6_config_registers; | ||
747 | } | 775 | } |
748 | } | 776 | } |
749 | return hwicap_setup(&op->dev, id ? *id : -1, &res, config, | 777 | return hwicap_setup(&op->dev, id ? *id : -1, &res, config, |
@@ -785,6 +813,8 @@ static int __devinit hwicap_drv_probe(struct platform_device *pdev) | |||
785 | regs = &v4_config_registers; | 813 | regs = &v4_config_registers; |
786 | } else if (!strcmp(family, "virtex5")) { | 814 | } else if (!strcmp(family, "virtex5")) { |
787 | regs = &v5_config_registers; | 815 | regs = &v5_config_registers; |
816 | } else if (!strcmp(family, "virtex6")) { | ||
817 | regs = &v6_config_registers; | ||
788 | } | 818 | } |
789 | } | 819 | } |
790 | 820 | ||