--- a/arch/mips/include/asm/mach-bcm63xx/pci_ath9k_fixup.h +++ b/arch/mips/include/asm/mach-bcm63xx/pci_ath9k_fixup.h @@ -2,6 +2,7 @@ #define _PCI_ATH9K_FIXUP -void pci_enable_ath9k_fixup(unsigned slot, u32 offset) __init; +void pci_enable_ath9k_fixup(unsigned slot, u32 offset, + unsigned endian_check) __init; #endif /* _PCI_ATH9K_FIXUP */ --- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h +++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h @@ -21,6 +21,7 @@ struct ath9k_caldata { unsigned int slot; u32 caldata_offset; + unsigned int endian_check:1; }; /* --- a/arch/mips/bcm63xx/pci-ath9k-fixup.c +++ b/arch/mips/bcm63xx/pci-ath9k-fixup.c @@ -181,12 +181,14 @@ static void ath9k_pci_fixup(struct pci_d } DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATHEROS, PCI_ANY_ID, ath9k_pci_fixup); -void __init pci_enable_ath9k_fixup(unsigned slot, u32 offset) +void __init pci_enable_ath9k_fixup(unsigned slot, u32 offset, + unsigned endian_check) { if (ath9k_num_fixups >= ARRAY_SIZE(ath9k_fixups)) return; ath9k_fixups[ath9k_num_fixups].slot = slot; + ath9k_fixups[ath9k_num_fixups].pdata.endian_check = endian_check; if (!bcm63xx_read_eeprom(ath9k_fixups[ath9k_num_fixups].pdata.eeprom_data, offset)) return; --- a/arch/mips/bcm63xx/boards/board_common.c +++ b/arch/mips/bcm63xx/boards/board_common.c @@ -300,7 +300,8 @@ int __init board_register_devices(void) /* register any fixups */ for (i = 0; i < board.has_caldata; i++) - pci_enable_ath9k_fixup(board.caldata[i].slot, board.caldata[i].caldata_offset); + pci_enable_ath9k_fixup(board.caldata[i].slot, board.caldata[i].caldata_offset, + board.caldata[i].endian_check); return 0; } ight'>James
aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm63xx/patches-3.6/308-MIPS-BCM63XX-expose-the-HS-SPI-clock.patch
blob: 8a11f8266e03bab8c4d7b716ed635f109c9c61a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
From 5aeb6273a610f8aab090b3499827177eb41311ba Mon Sep 17 00:00:00 2001
From: Jonas Gorski <jonas.gorski@gmail.com>
Date: Sat, 12 Nov 2011 12:19:09 +0100
Subject: [PATCH 53/79] MIPS: BCM63XX: expose the HS SPI clock

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
---
 arch/mips/bcm63xx/clk.c |   22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

--- a/arch/mips/bcm63xx/clk.c
+++ b/arch/mips/bcm63xx/clk.c
@@ -194,6 +194,26 @@ static struct clk clk_spi = {
 };
 
 /*
+ * SPI clock
+ */
+static void hsspi_set(struct clk *clk, int enable)
+{
+	u32 mask;
+
+	if (BCMCPU_IS_6328())
+		mask = CKCTL_6328_HSSPI_EN;
+	else
+		return;
+
+	bcm_hwclock_set(mask, enable);
+}
+
+static struct clk clk_hsspi = {
+	.set	= hsspi_set,
+};
+
+
+/*
  * XTM clock
  */
 static void xtm_set(struct clk *clk, int enable)
@@ -286,6 +306,8 @@ struct clk *clk_get(struct device *dev,
 		return &clk_usbh;
 	if (!strcmp(id, "spi"))
 		return &clk_spi;
+	if (!strcmp(id, "hsspi"))
+		return &clk_hsspi;
 	if (!strcmp(id, "xtm"))
 		return &clk_xtm;
 	if (!strcmp(id, "periph"))