Changeset 30027


Ignore:
Timestamp:
2012-02-04T11:17:27+01:00 (6 years ago)
Author:
jogo
Message:

brcm63xx: add support for linux 3.3

Location:
trunk
Files:
4 added
1 edited
35 copied

Legend:

Unmodified
Added
Removed
  • trunk/package/kernel/modules/usb.mk

    r29861 r30027  
    102102        CONFIG_USB_OHCI_AR71XX=y \ 
    103103        CONFIG_USB_OHCI_ATH79=y \ 
     104        CONFIG_USB_OHCI_BCM63XX=y \ 
    104105        CONFIG_USB_OCTEON_OHCI=y 
    105106  FILES:=$(LINUX_DIR)/drivers/usb/host/ohci-hcd.ko 
     
    213214    CONFIG_USB_EHCI_AR71XX=y \ 
    214215    CONFIG_USB_EHCI_ATH79=y \ 
     216    CONFIG_USB_EHCI_BCM63XX=y \ 
    215217    CONFIG_USB_OCTEON_EHCI=y \ 
    216218    CONFIG_USB_EHCI_FSL=n 
  • trunk/target/linux/brcm63xx/config-3.3

    r30026 r30027  
     1CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y 
     2CONFIG_ARCH_DISCARD_MEMBLOCK=y 
    13# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set 
    24# CONFIG_ARCH_HAS_ILOG2_U32 is not set 
     
    46CONFIG_ARCH_HIBERNATION_POSSIBLE=y 
    57# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 
    6 CONFIG_ARCH_POPULATES_NODE_MAP=y 
    78CONFIG_ARCH_REQUIRE_GPIOLIB=y 
    89# CONFIG_ARCH_SUPPORTS_MSI is not set 
     
    1617CONFIG_BCM63XX_CPU_6348=y 
    1718CONFIG_BCM63XX_CPU_6358=y 
     19# CONFIG_BCM63XX_CPU_6368 is not set 
    1820CONFIG_BCM63XX_ENET=y 
    1921CONFIG_BCM63XX_PHY=y 
     
    4850CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 
    4951CONFIG_GENERIC_CMOS_UPDATE=y 
     52# CONFIG_GENERIC_CPU_DEVICES is not set 
    5053CONFIG_GENERIC_GPIO=y 
    5154CONFIG_GENERIC_IRQ_SHOW=y 
     55CONFIG_GENERIC_PCI_IOMAP=y 
    5256CONFIG_GPIOLIB=y 
    5357CONFIG_GPIO_74X164=y 
     
    7377CONFIG_HAVE_IDE=y 
    7478CONFIG_HAVE_IRQ_WORK=y 
     79CONFIG_HAVE_MEMBLOCK=y 
     80CONFIG_HAVE_MEMBLOCK_NODE_MAP=y 
    7581CONFIG_HAVE_OPROFILE=y 
    7682CONFIG_HAVE_PERF_EVENTS=y 
     
    97103CONFIG_MODULE_FORCE_LOAD=y 
    98104CONFIG_MODULE_FORCE_UNLOAD=y 
    99 CONFIG_MTD_BCM963XX=y 
     105CONFIG_MTD_BCM63XX_PARTS=y 
    100106CONFIG_MTD_CFI_ADV_OPTIONS=y 
    101107CONFIG_MTD_CFI_BE_BYTE_SWAP=y 
     
    106112# CONFIG_MTD_COMPLEX_MAPPINGS is not set 
    107113CONFIG_MTD_JEDECPROBE=y 
     114CONFIG_MTD_PHYSMAP=y 
    108115CONFIG_MTD_REDBOOT_PARTS=y 
    109116CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y 
     
    147154CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y 
    148155CONFIG_USB_ARCH_HAS_XHCI=y 
    149 CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y 
    150 CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y 
    151 CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y 
    152156CONFIG_USB_SUPPORT=y 
    153157CONFIG_VM_EVENT_COUNTERS=y 
  • trunk/target/linux/brcm63xx/patches-3.3/007-usb-ohci-support.patch

    r30026 r30027  
    1 The bcm63xx SOC has an integrated OHCI controller, this patch adds 
    2 platform device registration and change board code to register ohci 
    3 device when necessary. 
     1From 4ce192d5860760140439a3f305bc32f5e2316aa8 Mon Sep 17 00:00:00 2001 
     2From: Maxime Bizon <mbizon@freebox.fr> 
     3Date: Tue, 24 May 2011 21:47:41 +0200 
     4Subject: [PATCH 21/57] MIPS: BCM63XX: register ohci device. 
    45 
    5 Signed-off-by: Maxime Bizon <mbizon@freebox.fr> 
    66--- 
    7  arch/mips/bcm63xx/Kconfig                          |    6 ++ 
    8  arch/mips/bcm63xx/Makefile                         |    3 +- 
     7 arch/mips/bcm63xx/Kconfig                          |    9 ++-- 
     8 arch/mips/bcm63xx/Makefile                         |    2 +- 
    99 arch/mips/bcm63xx/boards/board_bcm963xx.c          |    4 ++ 
    10  arch/mips/bcm63xx/dev-usb-ohci.c                   |   49 ++++++++++++++++++++ 
     10 arch/mips/bcm63xx/dev-usb-ohci.c                   |   50 ++++++++++++++++++++ 
    1111 .../asm/mach-bcm63xx/bcm63xx_dev_usb_ohci.h        |    6 ++ 
    12  5 files changed, 67 insertions(+), 1 deletions(-) 
     12 5 files changed, 65 insertions(+), 6 deletions(-) 
    1313 create mode 100644 arch/mips/bcm63xx/dev-usb-ohci.c 
    1414 create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_usb_ohci.h 
     
    1616--- a/arch/mips/bcm63xx/Kconfig 
    1717+++ b/arch/mips/bcm63xx/Kconfig 
    18 @@ -16,10 +16,16 @@ config BCM63XX_CPU_6345 
     18@@ -4,26 +4,25 @@ menu "CPU support" 
     19 config BCM63XX_CPU_6338 
     20        bool "support 6338 CPU" 
     21        select HW_HAS_PCI 
     22-       select USB_ARCH_HAS_OHCI 
     23-       select USB_OHCI_BIG_ENDIAN_DESC 
     24-       select USB_OHCI_BIG_ENDIAN_MMIO 
     25+       select USB_ARCH_HAS_OHCI if USB_SUPPORT 
     26  
     27 config BCM63XX_CPU_6345 
     28        bool "support 6345 CPU" 
     29-       select USB_OHCI_BIG_ENDIAN_DESC 
     30-       select USB_OHCI_BIG_ENDIAN_MMIO 
     31  
    1932 config BCM63XX_CPU_6348 
    2033        bool "support 6348 CPU" 
    2134        select HW_HAS_PCI 
    22 +       select USB_ARCH_HAS_OHCI 
    23 +       select USB_OHCI_BIG_ENDIAN_DESC 
    24 +       select USB_OHCI_BIG_ENDIAN_MMIO 
     35+       select USB_ARCH_HAS_OHCI if USB_SUPPORT 
    2536  
    2637 config BCM63XX_CPU_6358 
    2738        bool "support 6358 CPU" 
    2839        select HW_HAS_PCI 
    29 +       select USB_ARCH_HAS_OHCI 
    30 +       select USB_OHCI_BIG_ENDIAN_DESC 
    31 +       select USB_OHCI_BIG_ENDIAN_MMIO 
     40+       select USB_ARCH_HAS_OHCI if USB_SUPPORT 
     41  
     42 config BCM63XX_CPU_6368 
     43        bool "support 6368 CPU" 
     44        select HW_HAS_PCI 
     45+       select USB_ARCH_HAS_OHCI if USB_SUPPORT 
    3246 endmenu 
    3347  
     
    3852 obj-y          += clk.o cpu.o cs.o gpio.o irq.o prom.o setup.o timer.o \ 
    3953-                  dev-dsp.o dev-enet.o dev-pcmcia.o dev-uart.o dev-wdt.o 
    40 +                  dev-dsp.o dev-enet.o dev-pcmcia.o dev-uart.o dev-wdt.o \ 
    41 +                  dev-usb-ohci.o 
     54+                  dev-dsp.o dev-enet.o dev-pcmcia.o dev-uart.o \ 
     55+                  dev-usb-ohci.o dev-wdt.o 
    4256 obj-$(CONFIG_EARLY_PRINTK)     += early_printk.o 
    4357  
     
    5367  
    5468 #define PFX    "board_bcm963xx: " 
    55 @@ -883,6 +884,9 @@ int __init board_register_devices(void) 
     69@@ -874,6 +875,9 @@ int __init board_register_devices(void) 
    5670            !board_get_mac_address(board.enet1.mac_addr)) 
    5771                bcm63xx_enet_register(1, &board.enet1); 
     
    6579--- /dev/null 
    6680+++ b/arch/mips/bcm63xx/dev-usb-ohci.c 
    67 @@ -0,0 +1,49 @@ 
     81@@ -0,0 +1,50 @@ 
    6882+/* 
    6983+ * This file is subject to the terms and conditions of the GNU General Public 
     
    7185+ * for more details. 
    7286+ * 
    73 + * Copyright (C) 2010 Maxime Bizon <mbizon@freebox.fr> 
     87+ * Copyright (C) 2008 Maxime Bizon <mbizon@freebox.fr> 
    7488+ */ 
    7589+ 
     
    8296+static struct resource ohci_resources[] = { 
    8397+       { 
    84 +               /* start & end filled at runtime */ 
     98+               .start          = -1, /* filled at runtime */ 
     99+               .end            = -1, /* filled at runtime */ 
    85100+               .flags          = IORESOURCE_MEM, 
    86101+       }, 
    87102+       { 
    88 +               /* start filled at runtime */ 
     103+               .start          = -1, /* filled at runtime */ 
    89104+               .flags          = IORESOURCE_IRQ, 
    90105+       }, 
     
    106121+int __init bcm63xx_ohci_register(void) 
    107122+{ 
    108 +       if (!BCMCPU_IS_6348() && !BCMCPU_IS_6358()) 
     123+       if (!BCMCPU_IS_6348() && !BCMCPU_IS_6358() && !BCMCPU_IS_6368()) 
    109124+               return 0; 
    110125+ 
  • trunk/target/linux/brcm63xx/patches-3.3/008-usb-ehci-support.patch

    r30026 r30027  
    1 The bcm63xx SOC has an integrated EHCI controller, this patch adds 
    2 platform device registration and change board code to register 
    3 EHCI device when necessary. 
     1From 00fefa81d4919c72470ad68f05bc9e239108ca1b Mon Sep 17 00:00:00 2001 
     2From: Maxime Bizon <mbizon@freebox.fr> 
     3Date: Tue, 24 May 2011 21:50:33 +0200 
     4Subject: [PATCH 23/57] MIPS: BCM63XX: register ehci device. 
    45 
    5 Signed-off-by: Maxime Bizon <mbizon@freebox.fr> 
    66--- 
    77 arch/mips/bcm63xx/Kconfig                          |    2 + 
    88 arch/mips/bcm63xx/Makefile                         |    2 +- 
    99 arch/mips/bcm63xx/boards/board_bcm963xx.c          |    4 ++ 
    10  arch/mips/bcm63xx/dev-usb-ehci.c                   |   49 ++++++++++++++++++++ 
     10 arch/mips/bcm63xx/dev-usb-ehci.c                   |   50 ++++++++++++++++++++ 
    1111 .../asm/mach-bcm63xx/bcm63xx_dev_usb_ehci.h        |    6 ++ 
    12  5 files changed, 62 insertions(+), 1 deletions(-) 
     12 5 files changed, 63 insertions(+), 1 deletions(-) 
    1313 create mode 100644 arch/mips/bcm63xx/dev-usb-ehci.c 
    1414 create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_usb_ehci.h 
     
    1616--- a/arch/mips/bcm63xx/Kconfig 
    1717+++ b/arch/mips/bcm63xx/Kconfig 
    18 @@ -26,6 +26,8 @@ config BCM63XX_CPU_6358 
    19         select USB_ARCH_HAS_OHCI 
    20         select USB_OHCI_BIG_ENDIAN_DESC 
    21         select USB_OHCI_BIG_ENDIAN_MMIO 
    22 +       select USB_ARCH_HAS_EHCI 
    23 +       select USB_EHCI_BIG_ENDIAN_MMIO 
     18@@ -18,11 +18,13 @@ config BCM63XX_CPU_6358 
     19        bool "support 6358 CPU" 
     20        select HW_HAS_PCI 
     21        select USB_ARCH_HAS_OHCI if USB_SUPPORT 
     22+       select USB_ARCH_HAS_EHCI if USB_SUPPORT 
     23  
     24 config BCM63XX_CPU_6368 
     25        bool "support 6368 CPU" 
     26        select HW_HAS_PCI 
     27        select USB_ARCH_HAS_OHCI if USB_SUPPORT 
     28+       select USB_ARCH_HAS_EHCI if USB_SUPPORT 
    2429 endmenu 
    2530  
     
    2934@@ -1,6 +1,6 @@ 
    3035 obj-y          += clk.o cpu.o cs.o gpio.o irq.o prom.o setup.o timer.o \ 
    31                    dev-dsp.o dev-enet.o dev-pcmcia.o dev-uart.o dev-wdt.o \ 
    32 -                  dev-usb-ohci.o 
    33 +                  dev-usb-ohci.o dev-usb-ehci.o 
     36                   dev-dsp.o dev-enet.o dev-pcmcia.o dev-uart.o \ 
     37-                  dev-usb-ohci.o dev-wdt.o 
     38+                  dev-usb-ehci.o dev-usb-ohci.o dev-wdt.o 
    3439 obj-$(CONFIG_EARLY_PRINTK)     += early_printk.o 
    3540  
     
    4550  
    4651 #define PFX    "board_bcm963xx: " 
    47 @@ -884,6 +885,9 @@ int __init board_register_devices(void) 
     52@@ -875,6 +876,9 @@ int __init board_register_devices(void) 
    4853            !board_get_mac_address(board.enet1.mac_addr)) 
    4954                bcm63xx_enet_register(1, &board.enet1); 
     
    5762--- /dev/null 
    5863+++ b/arch/mips/bcm63xx/dev-usb-ehci.c 
    59 @@ -0,0 +1,49 @@ 
     64@@ -0,0 +1,50 @@ 
    6065+/* 
    6166+ * This file is subject to the terms and conditions of the GNU General Public 
     
    6368+ * for more details. 
    6469+ * 
    65 + * Copyright (C) 2010 Maxime Bizon <mbizon@freebox.fr> 
     70+ * Copyright (C) 2008 Maxime Bizon <mbizon@freebox.fr> 
    6671+ */ 
    6772+ 
     
    7479+static struct resource ehci_resources[] = { 
    7580+       { 
    76 +               /* start & end filled at runtime */ 
     81+               .start          = -1, /* filled at runtime */ 
     82+               .end            = -1, /* filled at runtime */ 
    7783+               .flags          = IORESOURCE_MEM, 
    7884+       }, 
    7985+       { 
    80 +               /* start filled at runtime */ 
     86+               .start          = -1, /* filled at runtime */ 
    8187+               .flags          = IORESOURCE_IRQ, 
    8288+       }, 
     
    98104+int __init bcm63xx_ehci_register(void) 
    99105+{ 
    100 +       if (!BCMCPU_IS_6358()) 
     106+       if (!BCMCPU_IS_6358() && !BCMCPU_IS_6368()) 
    101107+               return 0; 
    102108+ 
  • trunk/target/linux/brcm63xx/patches-3.3/010-add_bcm63xx_ohci_controller.patch

    r30026 r30027  
    1 Signed-off-by: Maxime Bizon <mbizon@freebox.fr> 
     1From f4aa3db2fb59983d45a9038daabad76102d32fc4 Mon Sep 17 00:00:00 2001 
     2From: Maxime Bizon <mbizon@freebox.fr> 
     3Date: Fri, 10 Jun 2011 19:14:30 +0200 
     4Subject: [PATCH 20/57] ohci: add driver for bcm63xx integrated controller. 
     5 
    26--- 
    3  drivers/usb/host/ohci-bcm63xx.c |  166 +++++++++++++++++++++++++++++++++++++++ 
     7 drivers/usb/host/Kconfig        |    9 ++ 
     8 drivers/usb/host/ohci-bcm63xx.c |  175 +++++++++++++++++++++++++++++++++++++++ 
    49 drivers/usb/host/ohci-hcd.c     |    5 + 
    510 drivers/usb/host/ohci.h         |    2 +- 
    6  3 files changed, 172 insertions(+), 1 deletions(-) 
     11 4 files changed, 190 insertions(+), 1 deletions(-) 
    712 create mode 100644 drivers/usb/host/ohci-bcm63xx.c 
    813 
     14--- a/drivers/usb/host/Kconfig 
     15+++ b/drivers/usb/host/Kconfig 
     16@@ -296,6 +296,15 @@ config USB_OHCI_HCD 
     17          To compile this driver as a module, choose M here: the 
     18          module will be called ohci-hcd. 
     19  
     20+config USB_OHCI_BCM63XX 
     21+       bool "Support for Broadcom 63xx on-chip OHCI USB controller" 
     22+       depends on USB_OHCI_HCD && BCM63XX 
     23+       select USB_OHCI_BIG_ENDIAN_DESC 
     24+       select USB_OHCI_BIG_ENDIAN_MMIO 
     25+       ---help--- 
     26+         Enables support for the on-chip OHCI controller on 
     27+         BCM63XX chips. 
     28+ 
     29 config USB_OHCI_HCD_OMAP1 
     30        bool "OHCI support for OMAP1/2 chips" 
     31        depends on USB_OHCI_HCD && (ARCH_OMAP1 || ARCH_OMAP2) 
    932--- /dev/null 
    1033+++ b/drivers/usb/host/ohci-bcm63xx.c 
    11 @@ -0,0 +1,166 @@ 
     34@@ -0,0 +1,175 @@ 
    1235+/* 
    1336+ * This file is subject to the terms and conditions of the GNU General Public 
     
    1538+ * for more details. 
    1639+ * 
    17 + * Copyright (C) 2010 Maxime Bizon <mbizon@freebox.fr> 
     40+ * Copyright (C) 2008 Maxime Bizon <mbizon@freebox.fr> 
    1841+ */ 
    1942+ 
     
    3255+       int ret; 
    3356+ 
    34 +        /* 
    35 +         * port 2 can be shared with USB slave, but all boards seem to 
    36 +         * have only one host port populated, so we can hardcode it 
    37 +         */ 
    3857+       ohci->num_ports = 1; 
    3958+ 
     
    4160+       if (ret < 0) 
    4261+               return ret; 
     62+ 
     63+       /* FIXME: autodetected port 2 is shared with USB slave */ 
    4364+ 
    4465+       ret = ohci_run(ohci); 
     
    7596+       struct usb_hcd *hcd; 
    7697+       struct ohci_hcd *ohci; 
     98+       struct clk *clk; 
    7799+       u32 reg; 
    78100+       int ret, irq; 
     
    83105+               return -ENODEV; 
    84106+ 
    85 +       if (BCMCPU_IS_6348()) { 
    86 +               struct clk *clk; 
    87 +               /* enable USB host clock */ 
    88 +               clk = clk_get(&pdev->dev, "usbh"); 
    89 +               if (IS_ERR(clk)) 
    90 +                       return -ENODEV; 
    91 + 
    92 +               clk_enable(clk); 
    93 +               usb_host_clock = clk; 
     107+       /* enable USB host clock */ 
     108+       clk = clk_get(&pdev->dev, "usbh"); 
     109+       if (IS_ERR(clk)) 
     110+               return -ENODEV; 
     111+ 
     112+       clk_enable(clk); 
     113+       usb_host_clock = clk; 
     114+       msleep(100); 
     115+ 
     116+       if (BCMCPU_IS_6348()) 
    94117+               bcm_rset_writel(RSET_OHCI_PRIV, 0, OHCI_PRIV_REG); 
    95 + 
    96 +       } else if (BCMCPU_IS_6358()) { 
    97 +               reg = bcm_rset_readl(RSET_USBH_PRIV, USBH_PRIV_SWAP_REG); 
     118+       else if (BCMCPU_IS_6358()) { 
     119+               reg = bcm_rset_readl(RSET_USBH_PRIV, USBH_PRIV_SWAP_6358_REG); 
    98120+               reg &= ~USBH_PRIV_SWAP_OHCI_ENDN_MASK; 
    99121+               reg |= USBH_PRIV_SWAP_OHCI_DATA_MASK; 
    100 +               bcm_rset_writel(RSET_USBH_PRIV, reg, USBH_PRIV_SWAP_REG); 
     122+               bcm_rset_writel(RSET_USBH_PRIV, reg, USBH_PRIV_SWAP_6358_REG); 
    101123+               /* 
    102124+                * The magic value comes for the original vendor BSP 
     
    104126+                * help, so the magic value is used as-is. 
    105127+                */ 
    106 +               bcm_rset_writel(RSET_USBH_PRIV, 0x1c0020, USBH_PRIV_TEST_REG); 
    107 +       } else 
    108 +               return 0; 
     128+               bcm_rset_writel(RSET_USBH_PRIV, 0x1c0020, 
     129+                               USBH_PRIV_TEST_6358_REG); 
     130+ 
     131+       } else if (BCMCPU_IS_6368()) { 
     132+               reg = bcm_rset_readl(RSET_USBH_PRIV, USBH_PRIV_SWAP_6368_REG); 
     133+               reg &= ~USBH_PRIV_SWAP_OHCI_ENDN_MASK; 
     134+               reg |= USBH_PRIV_SWAP_OHCI_DATA_MASK; 
     135+               bcm_rset_writel(RSET_USBH_PRIV, reg, USBH_PRIV_SWAP_6368_REG); 
     136+ 
     137+               reg = bcm_rset_readl(RSET_USBH_PRIV, USBH_PRIV_SETUP_6368_REG); 
     138+               reg |= USBH_PRIV_SETUP_IOC_MASK; 
     139+               bcm_rset_writel(RSET_USBH_PRIV, reg, USBH_PRIV_SETUP_6368_REG); 
     140+       } 
    109141+ 
    110142+       hcd = usb_create_hcd(&ohci_bcm63xx_hc_driver, &pdev->dev, "bcm63xx"); 
     
    178210--- a/drivers/usb/host/ohci-hcd.c 
    179211+++ b/drivers/usb/host/ohci-hcd.c 
    180 @@ -1055,6 +1055,11 @@ MODULE_LICENSE ("GPL"); 
    181  #define PLATFORM_DRIVER                ohci_hcd_da8xx_driver 
     212@@ -1121,6 +1121,11 @@ MODULE_LICENSE ("GPL"); 
     213 #define PLATFORM_DRIVER                ohci_xls_driver 
    182214 #endif 
    183215  
    184 +#ifdef CONFIG_BCM63XX 
     216+#ifdef CONFIG_USB_OHCI_BCM63XX 
    185217+#include "ohci-bcm63xx.c" 
    186218+#define PLATFORM_DRIVER                ohci_hcd_bcm63xx_driver 
    187219+#endif 
    188220+ 
    189  #ifdef CONFIG_USB_OHCI_SH 
    190  #include "ohci-sh.c" 
    191  #define PLATFORM_DRIVER                ohci_hcd_sh_driver 
     221 #if    !defined(PCI_DRIVER) &&         \ 
     222        !defined(PLATFORM_DRIVER) &&    \ 
     223        !defined(OMAP1_PLATFORM_DRIVER) &&      \ 
    192224--- a/drivers/usb/host/ohci.h 
    193225+++ b/drivers/usb/host/ohci.h 
    194 @@ -645,7 +645,7 @@ static inline u32 hc32_to_cpup (const st 
     226@@ -652,7 +652,7 @@ static inline u32 hc32_to_cpup (const st 
    195227  * some big-endian SOC implementations.  Same thing happens with PSW access. 
    196228  */ 
  • trunk/target/linux/brcm63xx/patches-3.3/011-add_bcm63xx_ehci_controller.patch

    r30026 r30027  
    1 Signed-off-by: Maxime Bizon <mbizon@freebox.fr> 
     1From 0f7d8ff44dc9e7048c141e6589bb590438cfc656 Mon Sep 17 00:00:00 2001 
     2From: Maxime Bizon <mbizon@freebox.fr> 
     3Date: Fri, 10 Jun 2011 19:15:47 +0200 
     4Subject: [PATCH 22/57] ehci: add driver for bcm63xx integrated controller. 
     5 
    26--- 
    3  drivers/usb/host/ehci-bcm63xx.c |  154 +++++++++++++++++++++++++++++++++++++++ 
     7 drivers/usb/host/Kconfig        |   10 ++- 
     8 drivers/usb/host/ehci-bcm63xx.c |  185 +++++++++++++++++++++++++++++++++++++++ 
    49 drivers/usb/host/ehci-hcd.c     |    5 + 
    5  2 files changed, 159 insertions(+), 0 deletions(-) 
     10 3 files changed, 199 insertions(+), 1 deletions(-) 
    611 create mode 100644 drivers/usb/host/ehci-bcm63xx.c 
    712 
     13--- a/drivers/usb/host/Kconfig 
     14+++ b/drivers/usb/host/Kconfig 
     15@@ -106,7 +106,7 @@ config USB_EHCI_BIG_ENDIAN_MMIO 
     16        depends on USB_EHCI_HCD && (PPC_CELLEB || PPC_PS3 || 440EPX || \ 
     17                                    ARCH_IXP4XX || XPS_USB_HCD_XILINX || \ 
     18                                    PPC_MPC512x || CPU_CAVIUM_OCTEON || \ 
     19-                                   PMC_MSP || SPARC_LEON) 
     20+                                   PMC_MSP || SPARC_LEON || BCM63XX) 
     21        default y 
     22  
     23 config USB_EHCI_BIG_ENDIAN_DESC 
     24@@ -129,6 +129,14 @@ config XPS_USB_HCD_XILINX 
     25 config USB_FSL_MPH_DR_OF 
     26        tristate 
     27  
     28+config USB_EHCI_BCM63XX 
     29+       bool "Support for Broadcom 63xx on-chip EHCI USB controller" 
     30+       depends on USB_EHCI_HCD && BCM63XX 
     31+       select USB_EHCI_BIG_ENDIAN_MMIO 
     32+       ---help--- 
     33+         Enables support for the on-chip EHCI controller on 
     34+         BCM6358 and later chips. 
     35+ 
     36 config USB_EHCI_FSL 
     37        bool "Support for Freescale on-chip EHCI USB controller" 
     38        depends on USB_EHCI_HCD && FSL_SOC 
    839--- /dev/null 
    940+++ b/drivers/usb/host/ehci-bcm63xx.c 
    10 @@ -0,0 +1,155 @@ 
     41@@ -0,0 +1,185 @@ 
    1142+/* 
    1243+ * This file is subject to the terms and conditions of the GNU General Public 
     
    1849+ 
    1950+#include <linux/init.h> 
     51+#include <linux/clk.h> 
    2052+#include <linux/platform_device.h> 
    2153+#include <bcm63xx_cpu.h> 
    2254+#include <bcm63xx_regs.h> 
    2355+#include <bcm63xx_io.h> 
     56+ 
     57+static struct clk *usb_host_clock; 
    2458+ 
    2559+static int ehci_bcm63xx_setup(struct usb_hcd *hcd) 
     
    75109+       struct usb_hcd *hcd; 
    76110+       struct ehci_hcd *ehci; 
     111+       struct clk *clk; 
    77112+       u32 reg; 
    78113+       int ret, irq; 
     
    83118+               return -ENODEV; 
    84119+ 
    85 +       reg = bcm_rset_readl(RSET_USBH_PRIV, USBH_PRIV_SWAP_REG); 
    86 +       reg &= ~USBH_PRIV_SWAP_EHCI_DATA_MASK; 
    87 +       reg |= USBH_PRIV_SWAP_EHCI_ENDN_MASK; 
    88 +       bcm_rset_writel(RSET_USBH_PRIV, reg, USBH_PRIV_SWAP_REG); 
    89 + 
    90 +       /* 
    91 +        * The magic value comes for the original vendor BSP and is 
    92 +        * needed for USB to work. Datasheet does not help, so the 
    93 +        * magic value is used as-is. 
    94 +        */ 
    95 +       bcm_rset_writel(RSET_USBH_PRIV, 0x1c0020, USBH_PRIV_TEST_REG); 
     120+       /* enable USB host clock */ 
     121+       clk = clk_get(&pdev->dev, "usbh"); 
     122+       if (IS_ERR(clk)) 
     123+               return -ENODEV; 
     124+ 
     125+       clk_enable(clk); 
     126+       usb_host_clock = clk; 
     127+       msleep(100); 
     128+ 
     129+       if (BCMCPU_IS_6358()) { 
     130+               reg = bcm_rset_readl(RSET_USBH_PRIV, USBH_PRIV_SWAP_6358_REG); 
     131+               reg &= ~USBH_PRIV_SWAP_EHCI_DATA_MASK; 
     132+               reg |= USBH_PRIV_SWAP_EHCI_ENDN_MASK; 
     133+               bcm_rset_writel(RSET_USBH_PRIV, reg, USBH_PRIV_SWAP_6358_REG); 
     134+ 
     135+               /* 
     136+                * The magic value comes for the original vendor BSP 
     137+                * and is needed for USB to work. Datasheet does not 
     138+                * help, so the magic value is used as-is. 
     139+                */ 
     140+               bcm_rset_writel(RSET_USBH_PRIV, 0x1c0020, 
     141+                               USBH_PRIV_TEST_6358_REG); 
     142+ 
     143+       } else if (BCMCPU_IS_6368()) { 
     144+ 
     145+               reg = bcm_rset_readl(RSET_USBH_PRIV, USBH_PRIV_SWAP_6368_REG); 
     146+               reg &= ~USBH_PRIV_SWAP_EHCI_DATA_MASK; 
     147+               reg |= USBH_PRIV_SWAP_EHCI_ENDN_MASK; 
     148+               bcm_rset_writel(RSET_USBH_PRIV, reg, USBH_PRIV_SWAP_6368_REG); 
     149+ 
     150+               reg = bcm_rset_readl(RSET_USBH_PRIV, USBH_PRIV_SETUP_6368_REG); 
     151+               reg |= USBH_PRIV_SETUP_IOC_MASK; 
     152+               bcm_rset_writel(RSET_USBH_PRIV, reg, USBH_PRIV_SETUP_6368_REG); 
     153+       } 
    96154+ 
    97155+       hcd = usb_create_hcd(&ehci_bcm63xx_hc_driver, &pdev->dev, "bcm63xx"); 
     
    122180+       ehci->hcs_params = ehci_readl(ehci, &ehci->caps->hcs_params); 
    123181+       ehci->sbrn = 0x20; 
    124 +       ehci->ignore_oc = 1; 
    125182+ 
    126183+       ret = usb_add_hcd(hcd, irq, IRQF_DISABLED); 
     
    149206+       usb_put_hcd(hcd); 
    150207+       release_mem_region(hcd->rsrc_start, hcd->rsrc_len); 
     208+       if (usb_host_clock) { 
     209+               clk_disable(usb_host_clock); 
     210+               clk_put(usb_host_clock); 
     211+       } 
    151212+       platform_set_drvdata(pdev, NULL); 
    152213+       return 0; 
     
    166227--- a/drivers/usb/host/ehci-hcd.c 
    167228+++ b/drivers/usb/host/ehci-hcd.c 
    168 @@ -1319,6 +1319,11 @@ MODULE_LICENSE ("GPL"); 
    169  #define PLATFORM_DRIVER                ehci_grlib_driver 
     229@@ -1376,6 +1376,11 @@ MODULE_LICENSE ("GPL"); 
     230 #define        PLATFORM_DRIVER         ehci_mv_driver 
    170231 #endif 
    171232  
    172 +#ifdef CONFIG_BCM63XX 
     233+#ifdef CONFIG_USB_EHCI_BCM63XX 
    173234+#include "ehci-bcm63xx.c" 
    174 +#define PLATFORM_DRIVER                ehci_hcd_bcm63xx_driver 
     235+#define        PLATFORM_DRIVER         ehci_hcd_bcm63xx_driver 
    175236+#endif 
    176237+ 
  • trunk/target/linux/brcm63xx/patches-3.3/080-bcm6345_enet.patch

    r30026 r30027  
    2626  
    2727 #define CKCTL_6348_ADSLPHY_EN          (1 << 0) 
    28 @@ -547,6 +546,39 @@ 
    29  #define ENETDMA_SRAM4_REG(x)           (0x20c + (x) * 0x10) 
     28@@ -701,6 +700,39 @@ 
     29 #define ENETSW_MIB_REG_COUNT           47 
    3030  
    3131  
  • trunk/target/linux/brcm63xx/patches-3.3/100-reset_buttons.patch

    r30026 r30027  
    4444  
    4545 static struct board_info __initdata board_FAST2404 = { 
    46 @@ -844,12 +866,23 @@ static struct platform_device bcm63xx_gp 
     46@@ -852,12 +874,23 @@ static struct platform_device bcm63xx_gp 
    4747        .dev.platform_data      = &bcm63xx_led_data, 
    4848 }; 
     
    6868        if (board.has_uart0) 
    6969                bcm63xx_uart_register(0); 
    70 @@ -891,5 +924,16 @@ int __init board_register_devices(void) 
     70@@ -912,5 +945,16 @@ int __init board_register_devices(void) 
    7171  
    7272        platform_device_register(&bcm63xx_gpio_leds); 
     
    8787--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 
    8888+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 
    89 @@ -57,6 +57,9 @@ struct board_info { 
     89@@ -3,6 +3,7 @@ 
     90  
     91 #include <linux/types.h> 
     92 #include <linux/gpio.h> 
     93+#include <linux/gpio_buttons.h> 
     94 #include <linux/leds.h> 
     95 #include <bcm63xx_dev_enet.h> 
     96 #include <bcm63xx_dev_dsp.h> 
     97@@ -57,6 +58,9 @@ struct board_info { 
    9098  
    9199        /* GPIO LEDs */ 
  • trunk/target/linux/brcm63xx/patches-3.3/141-led_count.patch

    r30026 r30027  
    11--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    22+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    3 @@ -883,6 +883,7 @@ int __init board_register_devices(void) 
     3@@ -891,6 +891,7 @@ int __init board_register_devices(void) 
    44 { 
    55        u32 val; 
     
    99        if (board.has_uart0) 
    1010                bcm63xx_uart_register(0); 
    11 @@ -919,7 +920,11 @@ int __init board_register_devices(void) 
     11@@ -940,7 +941,11 @@ int __init board_register_devices(void) 
    1212  
    1313        platform_device_register(&mtd_dev); 
  • trunk/target/linux/brcm63xx/patches-3.3/180-udc_preliminary_support.patch

    r30026 r30027  
    1818  
    1919 static struct board_info __initdata board_rta1025w_16 = { 
    20 @@ -911,6 +914,9 @@ int __init board_register_devices(void) 
    21         if (board.has_dsp) 
    22                 bcm63xx_dsp_register(&board.dsp); 
     20@@ -932,6 +935,9 @@ int __init board_register_devices(void) 
     21        } 
     22 #endif 
    2323  
    2424+       if (board.has_udc0) 
     
    9191--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h 
    9292+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h 
    93 @@ -127,7 +127,7 @@ enum bcm63xx_regs_set { 
    94  #define BCM_6338_UART1_BASE            (0xdeadbeef) 
     93@@ -163,7 +163,7 @@ enum bcm63xx_regs_set { 
    9594 #define BCM_6338_GPIO_BASE             (0xfffe0400) 
    9695 #define BCM_6338_SPI_BASE              (0xfffe0c00) 
     96 #define BCM_6338_SPI2_BASE             (0xdeadbeef) 
    9797-#define BCM_6338_UDC0_BASE             (0xdeadbeef) 
    9898+#define BCM_6338_UDC0_BASE             (0xfffe3000) 
     
    100100 #define BCM_6338_OHCI0_BASE            (0xdeadbeef) 
    101101 #define BCM_6338_OHCI_PRIV_BASE                (0xfffe3000) 
    102 @@ -158,7 +158,7 @@ enum bcm63xx_regs_set { 
    103  #define BCM_6345_UART1_BASE            (0xdeadbeef) 
     102@@ -207,7 +207,7 @@ enum bcm63xx_regs_set { 
    104103 #define BCM_6345_GPIO_BASE             (0xfffe0400) 
    105104 #define BCM_6345_SPI_BASE              (0xdeadbeef) 
     105 #define BCM_6345_SPI2_BASE             (0xdeadbeef) 
    106106-#define BCM_6345_UDC0_BASE             (0xdeadbeef) 
    107107+#define BCM_6345_UDC0_BASE             (0xfffe2100) 
     
    109109 #define BCM_6345_ENET0_BASE            (0xfffe1800) 
    110110 #define BCM_6345_ENETDMA_BASE          (0xfffe2800) 
    111 @@ -215,7 +215,7 @@ enum bcm63xx_regs_set { 
    112  #define BCM_6358_UART1_BASE            (0xfffe0120) 
     111@@ -291,7 +291,7 @@ enum bcm63xx_regs_set { 
    113112 #define BCM_6358_GPIO_BASE             (0xfffe0080) 
    114113 #define BCM_6358_SPI_BASE              (0xdeadbeef) 
     114 #define BCM_6358_SPI2_BASE             (0xfffe0800) 
    115115-#define BCM_6358_UDC0_BASE             (0xfffe0800) 
    116116+#define BCM_6358_UDC0_BASE             (0xfffe0400) 
     
    118118 #define BCM_6358_OHCI_PRIV_BASE                (0xdeadbeef) 
    119119 #define BCM_6358_USBH_PRIV_BASE                (0xfffe1500) 
    120 @@ -444,6 +444,7 @@ enum bcm63xx_irq { 
     120@@ -481,6 +481,7 @@ enum bcm63xx_irq { 
    121121        IRQ_UART0, 
    122122        IRQ_UART1, 
     
    126126        IRQ_ENET1, 
    127127        IRQ_ENET_PHY, 
    128 @@ -486,7 +487,7 @@ enum bcm63xx_irq { 
    129  #define BCM_6345_UART0_IRQ             (IRQ_INTERNAL_BASE + 2) 
    130  #define BCM_6345_DSL_IRQ               (IRQ_INTERNAL_BASE + 3) 
    131  #define BCM_6345_ATM_IRQ               (IRQ_INTERNAL_BASE + 4) 
    132 -#define BCM_6345_USB_IRQ               (IRQ_INTERNAL_BASE + 5) 
     128@@ -547,6 +548,7 @@ enum bcm63xx_irq { 
     129 #define BCM_6345_ENET_PHY_IRQ          (IRQ_INTERNAL_BASE + 12) 
     130 #define BCM_6345_OHCI0_IRQ             0 
     131 #define BCM_6345_EHCI0_IRQ             0 
    133132+#define BCM_6345_UDC0_IRQ              (IRQ_INTERNAL_BASE + 5) 
    134  #define BCM_6345_ENET0_IRQ             (IRQ_INTERNAL_BASE + 8) 
    135  #define BCM_6345_ENET_PHY_IRQ          (IRQ_INTERNAL_BASE + 12) 
    136133 #define BCM_6345_ENET0_RXDMA_IRQ       (IRQ_INTERNAL_BASE + 13 + 1) 
    137 @@ -508,10 +509,17 @@ enum bcm63xx_irq { 
    138  #define BCM_6348_TIMER_IRQ             (IRQ_INTERNAL_BASE + 0) 
    139  #define BCM_6348_UART0_IRQ             (IRQ_INTERNAL_BASE + 2) 
    140  #define BCM_6348_DSL_IRQ               (IRQ_INTERNAL_BASE + 4) 
    141 +#define BCM_6348_UDC0_IRQ              (IRQ_INTERNAL_BASE + 6) 
    142  #define BCM_6348_ENET1_IRQ             (IRQ_INTERNAL_BASE + 7) 
    143  #define BCM_6348_ENET0_IRQ             (IRQ_INTERNAL_BASE + 8) 
     134 #define BCM_6345_ENET0_TXDMA_IRQ       (IRQ_INTERNAL_BASE + 13 + 2) 
     135 #define BCM_6345_ENET1_RXDMA_IRQ       0 
     136@@ -577,6 +579,13 @@ enum bcm63xx_irq { 
    144137 #define BCM_6348_ENET_PHY_IRQ          (IRQ_INTERNAL_BASE + 9) 
    145138 #define BCM_6348_OHCI0_IRQ             (IRQ_INTERNAL_BASE + 12) 
     139 #define BCM_6348_EHCI0_IRQ             0 
     140+#define BCM_6348_UDC0_IRQ              (IRQ_INTERNAL_BASE + 6) 
    146141+#define BCM_6348_USB_CNTL_RX_DMA_IRQ   (IRQ_INTERNAL_BASE + 14) 
    147142+#define BCM_6348_USB_CNTL_TX_DMA_IRQ   (IRQ_INTERNAL_BASE + 15) 
     
    164159--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 
    165160+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 
    166 @@ -47,6 +47,7 @@ struct board_info { 
     161@@ -48,6 +48,7 @@ struct board_info { 
    167162        unsigned int    has_dsp:1; 
    168163        unsigned int    has_uart0:1; 
     
    176171@@ -1,6 +1,6 @@ 
    177172 obj-y          += clk.o cpu.o cs.o gpio.o irq.o prom.o setup.o timer.o \ 
    178                    dev-dsp.o dev-enet.o dev-pcmcia.o dev-uart.o dev-wdt.o \ 
    179 -                  dev-usb-ohci.o dev-usb-ehci.o 
    180 +                  dev-usb-ohci.o dev-usb-ehci.o dev-usb-udc.o 
     173                   dev-dsp.o dev-enet.o dev-pcmcia.o dev-uart.o \ 
     174-                  dev-usb-ehci.o dev-usb-ohci.o dev-wdt.o 
     175+                  dev-usb-ehci.o dev-usb-ohci.o dev-usb-udc.o dev-wdt.o 
    181176 obj-$(CONFIG_EARLY_PRINTK)     += early_printk.o 
    182177  
     
    184179--- a/arch/mips/bcm63xx/clk.c 
    185180+++ b/arch/mips/bcm63xx/clk.c 
    186 @@ -141,6 +141,30 @@ static struct clk clk_usbh = { 
     181@@ -171,6 +171,30 @@ static struct clk clk_usbh = { 
    187182 }; 
    188183  
     
    215210  */ 
    216211 static void spi_set(struct clk *clk, int enable) 
    217 @@ -208,6 +232,8 @@ struct clk *clk_get(struct device *dev, 
     212@@ -270,6 +294,8 @@ struct clk *clk_get(struct device *dev, 
    218213                return &clk_ephy; 
    219214        if (!strcmp(id, "usbh")) 
     
    223218        if (!strcmp(id, "spi")) 
    224219                return &clk_spi; 
    225         if (!strcmp(id, "periph")) 
     220        if (!strcmp(id, "xtm")) 
    226221--- a/arch/mips/bcm63xx/Kconfig 
    227222+++ b/arch/mips/bcm63xx/Kconfig 
    228 @@ -7,6 +7,7 @@ config BCM63XX_CPU_6338 
    229         select USB_ARCH_HAS_OHCI 
    230         select USB_OHCI_BIG_ENDIAN_DESC 
    231         select USB_OHCI_BIG_ENDIAN_MMIO 
     223@@ -5,6 +5,7 @@ config BCM63XX_CPU_6338 
     224        bool "support 6338 CPU" 
     225        select HW_HAS_PCI 
     226        select USB_ARCH_HAS_OHCI if USB_SUPPORT 
    232227+       select USB_ARCH_HAS_UDC 
    233228  
    234229 config BCM63XX_CPU_6345 
    235230        bool "support 6345 CPU" 
    236 @@ -19,6 +20,7 @@ config BCM63XX_CPU_6348 
    237         select USB_ARCH_HAS_OHCI 
    238         select USB_OHCI_BIG_ENDIAN_DESC 
    239         select USB_OHCI_BIG_ENDIAN_MMIO 
     231@@ -13,6 +14,7 @@ config BCM63XX_CPU_6348 
     232        bool "support 6348 CPU" 
     233        select HW_HAS_PCI 
     234        select USB_ARCH_HAS_OHCI if USB_SUPPORT 
    240235+       select USB_ARCH_HAS_UDC 
    241236  
  • trunk/target/linux/brcm63xx/patches-3.3/200-extended-platform-devices.patch

    r30026 r30027  
    11--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    22+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    3 @@ -917,6 +917,9 @@ int __init board_register_devices(void) 
     3@@ -938,6 +938,9 @@ int __init board_register_devices(void) 
    44        if (board.has_udc0) 
    55                bcm63xx_udc_register(); 
     
    1313--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 
    1414+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 
    15 @@ -61,6 +61,10 @@ struct board_info { 
     15@@ -62,6 +62,10 @@ struct board_info { 
    1616  
    1717        /* Buttons */ 
  • trunk/target/linux/brcm63xx/patches-3.3/200-spi-board-info.patch

    r30026 r30027  
    11--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    22+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    3 @@ -920,6 +920,9 @@ int __init board_register_devices(void) 
     3@@ -941,6 +941,9 @@ int __init board_register_devices(void) 
    44        if (board.num_devs) 
    55                platform_add_devices(board.devs, board.num_devs); 
     
    1313--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 
    1414+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 
    15 @@ -65,6 +65,10 @@ struct board_info { 
     15@@ -66,6 +66,10 @@ struct board_info { 
    1616        /* Additional platform devices */ 
    1717        struct platform_device **devs; 
  • trunk/target/linux/brcm63xx/patches-3.3/230-6358-enet1-external-mii-clk.patch

    r30026 r30027  
    1212--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h 
    1313+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h 
    14 @@ -400,6 +400,8 @@ 
     14@@ -466,6 +466,8 @@ 
    1515 #define GPIO_MODE_6358_EXTRA_SPI_SS    (1 << 7) 
    1616 #define GPIO_MODE_6358_SERIAL_LED      (1 << 10) 
     
    1919+#define GPIO_MODE_6358_ENET1_MII_CLK_INV (1 << 31) 
    2020  
    21   
    22  /************************************************************************* 
     21 #define GPIO_MODE_6368_ANALOG_AFE_0    (1 << 0) 
     22 #define GPIO_MODE_6368_ANALOG_AFE_1    (1 << 1) 
  • trunk/target/linux/brcm63xx/patches-3.3/240-spi.patch

    r30026 r30027  
    1 --- a/arch/mips/bcm63xx/cpu.c 
    2 +++ b/arch/mips/bcm63xx/cpu.c 
    3 @@ -58,6 +58,7 @@ static const unsigned long bcm96338_regs 
    4   
    5  static const int bcm96338_irqs[] = { 
    6         [IRQ_TIMER]             = BCM_6338_TIMER_IRQ, 
    7 +       [IRQ_SPI]               = BCM_6338_SPI_IRQ, 
    8         [IRQ_UART0]             = BCM_6338_UART0_IRQ, 
    9         [IRQ_DSL]               = BCM_6338_DSL_IRQ, 
    10         [IRQ_ENET0]             = BCM_6338_ENET0_IRQ, 
    11 @@ -132,6 +133,7 @@ static const unsigned long bcm96348_regs 
    12   
    13  static const int bcm96348_irqs[] = { 
    14         [IRQ_TIMER]             = BCM_6348_TIMER_IRQ, 
    15 +       [IRQ_SPI]               = BCM_6348_SPI_IRQ, 
    16         [IRQ_UART0]             = BCM_6348_UART0_IRQ, 
    17         [IRQ_DSL]               = BCM_6348_DSL_IRQ, 
    18         [IRQ_ENET0]             = BCM_6348_ENET0_IRQ, 
    19 @@ -175,6 +177,7 @@ static const unsigned long bcm96358_regs 
    20   
    21  static const int bcm96358_irqs[] = { 
    22         [IRQ_TIMER]             = BCM_6358_TIMER_IRQ, 
    23 +       [IRQ_SPI]               = BCM_6358_SPI_IRQ, 
    24         [IRQ_UART0]             = BCM_6358_UART0_IRQ, 
    25         [IRQ_UART1]             = BCM_6358_UART1_IRQ, 
    26         [IRQ_DSL]               = BCM_6358_DSL_IRQ, 
    271--- /dev/null 
    282+++ b/arch/mips/bcm63xx/dev-spi.c 
     
    129103--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h 
    130104+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h 
    131 @@ -109,6 +109,7 @@ enum bcm63xx_regs_set { 
    132  #define RSET_WDT_SIZE                  12 
     105@@ -138,6 +138,7 @@ enum bcm63xx_regs_set { 
    133106 #define RSET_ENET_SIZE                 2048 
    134107 #define RSET_ENETDMA_SIZE              2048 
     108 #define RSET_ENETSW_SIZE               65536 
    135109+#define RSET_SPI_SIZE                  256 
    136110 #define RSET_UART_SIZE                 24 
    137111 #define RSET_UDC_SIZE                  256 
    138112 #define RSET_OHCI_SIZE                 256 
    139 @@ -214,7 +215,7 @@ enum bcm63xx_regs_set { 
     113@@ -289,7 +290,7 @@ enum bcm63xx_regs_set { 
    140114 #define BCM_6358_UART0_BASE            (0xfffe0100) 
    141115 #define BCM_6358_UART1_BASE            (0xfffe0120) 
     
    143117-#define BCM_6358_SPI_BASE              (0xdeadbeef) 
    144118+#define BCM_6358_SPI_BASE              (0xfffe0800) 
     119 #define BCM_6358_SPI2_BASE             (0xfffe0800) 
    145120 #define BCM_6358_UDC0_BASE             (0xfffe0400) 
    146121 #define BCM_6358_OHCI0_BASE            (0xfffe1400) 
    147  #define BCM_6358_OHCI_PRIV_BASE                (0xdeadbeef) 
    148 @@ -441,6 +442,7 @@ static inline unsigned long bcm63xx_regs 
     122@@ -478,6 +479,7 @@ static inline unsigned long bcm63xx_regs 
    149123  */ 
    150124 enum bcm63xx_irq { 
     
    154128        IRQ_UART1, 
    155129        IRQ_DSL, 
    156 @@ -507,6 +509,7 @@ enum bcm63xx_irq { 
     130@@ -571,6 +573,7 @@ enum bcm63xx_irq { 
    157131  * 6348 irqs 
    158132  */ 
     
    160134+#define BCM_6348_SPI_IRQ               (IRQ_INTERNAL_BASE + 1) 
    161135 #define BCM_6348_UART0_IRQ             (IRQ_INTERNAL_BASE + 2) 
     136 #define BCM_6348_UART1_IRQ             0 
    162137 #define BCM_6348_DSL_IRQ               (IRQ_INTERNAL_BASE + 4) 
    163  #define BCM_6348_UDC0_IRQ              (IRQ_INTERNAL_BASE + 6) 
    164 @@ -531,6 +534,7 @@ enum bcm63xx_irq { 
     138@@ -608,6 +611,7 @@ enum bcm63xx_irq { 
    165139  * 6358 irqs 
    166140  */ 
     
    169143 #define BCM_6358_UART0_IRQ             (IRQ_INTERNAL_BASE + 2) 
    170144 #define BCM_6358_UART1_IRQ             (IRQ_INTERNAL_BASE + 3) 
    171  #define BCM_6358_OHCI0_IRQ             (IRQ_INTERNAL_BASE + 5) 
     145 #define BCM_6358_DSL_IRQ               (IRQ_INTERNAL_BASE + 29) 
    172146--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h 
    173147+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h 
    174 @@ -804,4 +804,116 @@ 
    175  #define DMIPSPLLCFG_N2_SHIFT           29 
    176  #define DMIPSPLLCFG_N2_MASK            (0x7 << DMIPSPLLCFG_N2_SHIFT) 
     148@@ -1007,4 +1007,116 @@ 
     149 #define M2M_SRCID_REG(x)               ((x) * 0x40 + 0x14) 
     150 #define M2M_DSTID_REG(x)               ((x) * 0x40 + 0x18) 
    177151  
    178152+/************************************************************************* 
     
    903877--- a/arch/mips/bcm63xx/Makefile 
    904878+++ b/arch/mips/bcm63xx/Makefile 
    905 @@ -1,6 +1,6 @@ 
     879@@ -1,5 +1,5 @@ 
    906880 obj-y          += clk.o cpu.o cs.o gpio.o irq.o prom.o setup.o timer.o \ 
    907                    dev-dsp.o dev-enet.o dev-pcmcia.o dev-uart.o dev-wdt.o \ 
    908 -                  dev-usb-ohci.o dev-usb-ehci.o dev-usb-udc.o 
    909 +                  dev-usb-ohci.o dev-usb-ehci.o dev-usb-udc.o dev-spi.o 
     881-                  dev-dsp.o dev-enet.o dev-pcmcia.o dev-uart.o \ 
     882+                  dev-dsp.o dev-enet.o dev-pcmcia.o dev-spi.o dev-uart.o \ 
     883                   dev-usb-ehci.o dev-usb-ohci.o dev-usb-udc.o dev-wdt.o 
    910884 obj-$(CONFIG_EARLY_PRINTK)     += early_printk.o 
    911885  
    912  obj-y          += boards/ 
    913886--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    914887+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
     
    921894  
    922895 #define PFX    "board_bcm963xx: " 
    923 @@ -934,6 +935,8 @@ int __init board_register_devices(void) 
     896@@ -955,6 +956,8 @@ int __init board_register_devices(void) 
    924897        if (board.num_spis) 
    925898                spi_register_board_info(board.spis, board.num_spis); 
  • trunk/target/linux/brcm63xx/patches-3.3/300-alice_gate2_leds.patch

    r30026 r30027  
    103103--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 
    104104+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 
    105 @@ -57,7 +57,7 @@ struct board_info { 
     105@@ -58,7 +58,7 @@ struct board_info { 
    106106        struct bcm63xx_dsp_platform_data dsp; 
    107107  
  • trunk/target/linux/brcm63xx/patches-3.3/452-board_V2500V.patch

    r30026 r30027  
    9696        /* dump cfe version */ 
    9797        cfe = boot_addr + BCM963XX_CFE_VERSION_OFFSET; 
    98 @@ -2261,6 +2335,13 @@ int __init board_register_devices(void) 
     98@@ -2281,6 +2355,13 @@ int __init board_register_devices(void) 
    9999        val = bcm_mpi_readl(MPI_CSBASE_REG(0)); 
    100100        val &= MPI_CSBASE_BASE_MASK; 
Note: See TracChangeset for help on using the changeset viewer.