By default ti1520 bridge expects an input clock on CLOCK pin (to control
power chip). However on this boards CLOCK should be generated by PCI1520
itself. Add a quirk that enables internal 16 KHz clock generation on
this pin.

Signed-off-by: Dmitry Eremin-Solenikov <dbarysh...@gmail.com>
---
 arch/powerpc/platforms/85xx/tqm85xx.c |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/platforms/85xx/tqm85xx.c 
b/arch/powerpc/platforms/85xx/tqm85xx.c
index 5b0ab99..8f29bbc 100644
--- a/arch/powerpc/platforms/85xx/tqm85xx.c
+++ b/arch/powerpc/platforms/85xx/tqm85xx.c
@@ -151,6 +151,27 @@ static void tqm85xx_show_cpuinfo(struct seq_file *m)
        seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
 }
 
+static void __init tqm85xx_ti1520_fixup(struct pci_dev *pdev)
+{
+       unsigned int val;
+
+       /* Do not do the fixup on other platforms! */
+       if (!machine_is(tqm85xx))
+               return;
+
+       dev_info(&pdev->dev, "Using TI 1520 fixup on TQM85xx\n");
+
+       /*
+        * Enable P2CCLK bit in system control register
+        * to enable CLOCK output to power chip
+        */
+       pci_read_config_dword(pdev, 0x80, &val);
+       pci_write_config_dword(pdev, 0x80, val | (1 << 27));
+
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_1520,
+               tqm85xx_ti1520_fixup);
+
 static struct of_device_id __initdata of_bus_ids[] = {
        { .compatible = "simple-bus", },
        { .compatible = "gianfar", },
-- 
1.7.1

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to