Changeset 14914


Ignore:
Timestamp:
2009-03-17T12:28:54+01:00 (7 years ago)
Author:
florian
Message:

[brcm63xx] fix SPI register switch and prepare for UDC, thanks to Henk Vergonet (#4783)

Location:
trunk/target/linux/brcm63xx/files
Files:
2 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/brcm63xx/files/arch/mips/bcm63xx/Kconfig

    r13692 r14914  
    55        bool "support 6338 CPU" 
    66        select USB_ARCH_HAS_OHCI 
     7        select USB_ARCH_HAS_UDC 
    78        select USB_OHCI_BIG_ENDIAN_DESC 
    89        select USB_OHCI_BIG_ENDIAN_MMIO 
     
    1213        select HW_HAS_PCI 
    1314        select USB_ARCH_HAS_OHCI 
     15        select USB_ARCH_HAS_UDC 
    1416        select USB_OHCI_BIG_ENDIAN_DESC 
    1517        select USB_OHCI_BIG_ENDIAN_MMIO 
  • trunk/target/linux/brcm63xx/files/arch/mips/bcm63xx/Makefile

    r14789 r14914  
    44obj-y           += dev-usb-ohci.o 
    55obj-y           += dev-usb-ehci.o 
     6obj-y           += dev-usb-udc.o 
    67obj-y           += dev-enet.o 
    78obj-y           += dev-wdt.o 
  • trunk/target/linux/brcm63xx/files/arch/mips/bcm63xx/boards/board_bcm963xx.c

    r14850 r14914  
    2828#include <bcm63xx_dev_usb_ohci.h> 
    2929#include <bcm63xx_dev_usb_ehci.h> 
     30#include <bcm63xx_dev_usb_udc.h> 
    3031#include <bcm63xx_dev_spi.h> 
    3132#include <board_bcm963xx.h> 
     
    164165 
    165166static struct board_info __initdata board_DV201AMR = { 
    166         .name                           = "DV201AMR", 
    167         .expected_cpu_id                = 0x6348, 
    168  
    169         .has_enet0                      = 1, 
    170         .has_enet1                      = 1, 
    171         .has_pci                        = 1, 
    172  
    173         .enet0 = { 
    174                 .has_phy                = 1, 
    175                 .use_internal_phy       = 1, 
    176         }, 
    177  
    178         .enet1 = { 
    179                 .force_speed_100        = 1, 
    180                 .force_duplex_full      = 1, 
    181         }, 
    182  
    183  
    184         .has_ohci0 = 1, 
    185         .has_pccard = 1, 
    186         .has_ehci0 = 1, 
     167        .name                           = "DV201AMR", 
     168        .expected_cpu_id                = 0x6348, 
     169 
     170        .has_pci                        = 1, 
     171        .has_ohci0                      = 1, 
     172        .has_udc0                       = 1, 
     173 
     174        .has_enet0                      = 1, 
     175        .has_enet1                      = 1, 
     176        .enet0 = { 
     177                .has_phy                = 1, 
     178                .use_internal_phy       = 1, 
     179        }, 
     180        .enet1 = { 
     181                .force_speed_100        = 1, 
     182                .force_duplex_full      = 1, 
     183        }, 
    187184}; 
    188185 
     
    526523                bcm63xx_ehci_register(); 
    527524 
     525        if (board.has_udc0) 
     526                bcm63xx_udc_register(); 
    528527        /* Generate MAC address for WLAN and 
    529528         * register our SPROM */ 
  • trunk/target/linux/brcm63xx/files/arch/mips/bcm63xx/clk.c

    r13368 r14914  
    138138 
    139139/* 
     140 * USB slave clock 
     141 */ 
     142static void usbs_set(struct clk *clk, int enable) 
     143{ 
     144        u32 mask; 
     145 
     146        switch(bcm63xx_get_cpu_id()) { 
     147        case BCM6338_CPU_ID: mask = CKCTL_6338_USBS_EN; break; 
     148        case BCM6348_CPU_ID: mask = CKCTL_6348_USBS_EN; break; 
     149        default: 
     150                return; 
     151        } 
     152        bcm_hwclock_set(mask, enable); 
     153} 
     154 
     155static struct clk clk_usbs = { 
     156        .set    = usbs_set, 
     157}; 
     158 
     159/* 
    140160 * SPI clock 
    141161 */ 
     
    203223        if (!strcmp(id, "usbh")) 
    204224                return &clk_usbh; 
     225        if (!strcmp(id, "usbs")) 
     226                return &clk_usbs; 
    205227        if (!strcmp(id, "spi")) 
    206228                return &clk_spi; 
  • trunk/target/linux/brcm63xx/files/arch/mips/bcm63xx/cpu.c

    r14790 r14914  
    3838        [RSET_TIMER]            = BCM_6338_TIMER_BASE, 
    3939        [RSET_WDT]              = BCM_6338_WDT_BASE, 
     40        [RSET_UDC0]             = BCM_6338_UDC0_BASE, 
    4041        [RSET_UART0]            = BCM_6338_UART0_BASE, 
    4142        [RSET_GPIO]             = BCM_6338_GPIO_BASE, 
     
    4950        [IRQ_UART0]             = BCM_6338_UART0_IRQ, 
    5051        [IRQ_DSL]               = BCM_6338_DSL_IRQ, 
     52        [IRQ_UDC0]              = BCM_6338_UDC0_IRQ, 
    5153        [IRQ_ENET0]             = BCM_6338_ENET0_IRQ, 
    5254        [IRQ_ENET_PHY]          = BCM_6338_ENET_PHY_IRQ, 
     
    8486        [RSET_OHCI_PRIV]        = BCM_6348_OHCI_PRIV_BASE, 
    8587        [RSET_USBH_PRIV]        = BCM_6348_USBH_PRIV_BASE, 
     88        [RSET_UDC0]             = BCM_6348_UDC0_BASE, 
    8689        [RSET_MPI]              = BCM_6348_MPI_BASE, 
    8790        [RSET_PCMCIA]           = BCM_6348_PCMCIA_BASE, 
     
    100103        [IRQ_UART0]             = BCM_6348_UART0_IRQ, 
    101104        [IRQ_DSL]               = BCM_6348_DSL_IRQ, 
     105        [IRQ_UDC0]              = BCM_6348_UDC0_IRQ, 
    102106        [IRQ_ENET0]             = BCM_6348_ENET0_IRQ, 
    103107        [IRQ_ENET1]             = BCM_6348_ENET1_IRQ, 
  • trunk/target/linux/brcm63xx/files/include/asm-mips/mach-bcm63xx/bcm63xx_cpu.h

    r14790 r14914  
    44#include <linux/types.h> 
    55#include <linux/init.h> 
     6 
     7#include <bcm63xx_regs.h> 
    68 
    79/* 
     
    107109 
    108110#define BCM_6338_PERF_BASE              (0xfffe0000) 
    109 #define BCM_6338_TIMER_BASE             (0xfffe0000) 
    110 #define BCM_6338_WDT_BASE               (0xfffe001c) 
     111#define BCM_6338_BB_BASE                (0xfffe0100) /* bus bridge registers */ 
     112#define BCM_6338_TIMER_BASE             (0xfffe0200) 
     113#define BCM_6338_WDT_BASE               (0xfffe021c) 
    111114#define BCM_6338_UART0_BASE             (0xfffe0300) 
    112115#define BCM_6338_GPIO_BASE              (0xfffe0400) 
    113116#define BCM_6338_SPI_BASE               (0xfffe0c00) 
     117#define BCM_6338_DSL_BASE               (0xfffe1000) 
    114118#define BCM_6338_SAR_BASE               (0xfffe2000) 
     119#define BCM_6338_ENETDMA_BASE           (0xfffe2400) 
     120#define BCM_6338_USBDMA_BASE            (0xfffe2400) 
     121#define BCM_6338_ENET0_BASE             (0xfffe2800) 
     122#define BCM_6338_UDC0_BASE              (0xfffe3000) /* USB_CTL_BASE */ 
    115123#define BCM_6338_MEMC_BASE              (0xfffe3100) 
    116124 
     
    120128#define BCM_6348_DSL_LMEM_BASE          (0xfff00000) 
    121129#define BCM_6348_PERF_BASE              (0xfffe0000) 
     130#define BCM_6348_BB_BASE                (0xfffe0100) /* bus bridge registers */ 
    122131#define BCM_6348_TIMER_BASE             (0xfffe0200) 
    123132#define BCM_6348_WDT_BASE               (0xfffe021c) 
     
    126135#define BCM_6348_SPI_BASE               (0xfffe0c00) 
    127136#define BCM_6348_UDC0_BASE              (0xfffe1000) 
     137#define BCM_6348_USBDMA_BASE            (0xfffe1400) 
    128138#define BCM_6348_OHCI0_BASE             (0xfffe1b00) 
    129139#define BCM_6348_OHCI_PRIV_BASE         (0xfffe1c00) 
     
    133143#define BCM_6348_SDRAM_REGS_BASE        (0xfffe2300) 
    134144#define BCM_6348_DSL_BASE               (0xfffe3000) 
     145#define BCM_6348_SAR_BASE               (0xfffe4000) 
     146#define BCM_6348_UBUS_BASE              (0xfffe5000) 
    135147#define BCM_6348_ENET0_BASE             (0xfffe6000) 
    136148#define BCM_6348_ENET1_BASE             (0xfffe6800) 
     
    352364        case SPI_INT_MASK_ST: 
    353365                return SPI_BCM_6348_SPI_MASK_INT_ST; 
     366        case SPI_INT_MASK: 
     367                return SPI_BCM_6348_SPI_INT_MASK; 
    354368        case SPI_INT_STATUS: 
    355369                return SPI_BCM_6348_SPI_INT_STATUS; 
     
    368382        case SPI_MSG_DATA: 
    369383                return SPI_BCM_6348_SPI_MSG_DATA; 
    370         case SPI_BCM_6348_SPI_RX_DATA: 
     384        case SPI_RX_DATA: 
    371385                return SPI_BCM_6348_SPI_RX_DATA; 
    372386} 
     
    412426        IRQ_SPI, 
    413427        IRQ_DSL, 
     428        IRQ_UDC0, 
    414429        IRQ_ENET0, 
    415430        IRQ_ENET1, 
     
    435450#define BCM_6338_DSL_IRQ                (IRQ_INTERNAL_BASE + 5) 
    436451#define BCM_6338_ATM_IRQ                (IRQ_INTERNAL_BASE + 6) 
    437 #define BCM_6338_USBS_IRQ               (IRQ_INTERNAL_BASE + 7) 
     452#define BCM_6338_UDC0_IRQ               (IRQ_INTERNAL_BASE + 7) 
    438453#define BCM_6338_ENET0_IRQ              (IRQ_INTERNAL_BASE + 8) 
    439454#define BCM_6338_ENET_PHY_IRQ           (IRQ_INTERNAL_BASE + 9) 
     
    454469#define BCM_6348_UART0_IRQ              (IRQ_INTERNAL_BASE + 2) 
    455470#define BCM_6348_DSL_IRQ                (IRQ_INTERNAL_BASE + 4) 
     471#define BCM_6348_UDC0_IRQ               (IRQ_INTERNAL_BASE + 6) 
    456472#define BCM_6348_ENET1_IRQ              (IRQ_INTERNAL_BASE + 7) 
    457473#define BCM_6348_ENET0_IRQ              (IRQ_INTERNAL_BASE + 8) 
    458474#define BCM_6348_ENET_PHY_IRQ           (IRQ_INTERNAL_BASE + 9) 
    459475#define BCM_6348_OHCI0_IRQ              (IRQ_INTERNAL_BASE + 12) 
     476#define BCM_6348_USB_CNTL_RX_DMA        (IRQ_INTERNAL_BASE + 14) 
     477#define BCM_6348_USB_CNTL_TX_DMA        (IRQ_INTERNAL_BASE + 15) 
     478#define BCM_6348_USB_BULK_RX_DMA        (IRQ_INTERNAL_BASE + 16) 
     479#define BCM_6348_USB_BULK_TX_DMA        (IRQ_INTERNAL_BASE + 17) 
     480#define BCM_6348_USB_ISO_RX_DMA         (IRQ_INTERNAL_BASE + 18) 
     481#define BCM_6348_USB_ISO_TX_DMA         (IRQ_INTERNAL_BASE + 19) 
    460482#define BCM_6348_ENET0_RXDMA_IRQ        (IRQ_INTERNAL_BASE + 20) 
    461483#define BCM_6348_ENET0_TXDMA_IRQ        (IRQ_INTERNAL_BASE + 21) 
  • trunk/target/linux/brcm63xx/files/include/asm-mips/mach-bcm63xx/board_bcm963xx.h

    r13368 r14914  
    4242        unsigned int    has_ohci0:1; 
    4343        unsigned int    has_ehci0:1; 
     44        unsigned int    has_udc0:1; 
    4445 
    4546        /* ethernet config */ 
Note: See TracChangeset for help on using the changeset viewer.