2010-05-18 09:58:52 +00:00
|
|
|
/***************************************************************************
|
|
|
|
* __________ __ ___.
|
|
|
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
|
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
|
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
|
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
|
|
* \/ \/ \/ \/ \/
|
|
|
|
* $Id$
|
|
|
|
*
|
|
|
|
* Copyright © 2010 Amaury Pouly
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
* as published by the Free Software Foundation; either version 2
|
|
|
|
* of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
|
|
* KIND, either express or implied.
|
|
|
|
*
|
|
|
|
****************************************************************************/
|
|
|
|
#ifndef __USB_DRV_AS3525v2_H__
|
|
|
|
#define __USB_DRV_AS3525v2_H__
|
|
|
|
|
|
|
|
#include "as3525v2.h"
|
2011-12-13 04:21:06 +00:00
|
|
|
#include "usb-s3c6400x.h"
|
2010-05-18 09:58:52 +00:00
|
|
|
|
|
|
|
/**
|
2011-12-13 04:21:06 +00:00
|
|
|
* Registers not present in usb-s3c6400
|
2010-05-18 09:58:52 +00:00
|
|
|
*/
|
2011-12-13 04:21:06 +00:00
|
|
|
#define BASE_REG(offset) (*(volatile uint32_t*)(OTGBASE + offset))
|
2010-06-19 20:39:57 +00:00
|
|
|
|
|
|
|
/** User HW Config1 Register */
|
2010-06-21 20:25:37 +00:00
|
|
|
#define GHWCFG1 BASE_REG(0x044)
|
|
|
|
#define GHWCFG1_epdir_bitp(ep) (2 * (ep))
|
|
|
|
#define GHWCFG1_epdir_bits 0x3
|
|
|
|
#define GHWCFG1_EPDIR_BIDIR 0
|
|
|
|
#define GHWCFG1_EPDIR_IN 1
|
|
|
|
#define GHWCFG1_EPDIR_OUT 2
|
2010-06-19 20:39:57 +00:00
|
|
|
|
|
|
|
/** User HW Config2 Register */
|
|
|
|
#define GHWCFG2 BASE_REG(0x048)
|
2010-06-19 20:40:07 +00:00
|
|
|
#define GHWCFG2_arch_bitp 3 /** Architecture */
|
|
|
|
#define GHWCFG2_arch_bits 0x3
|
|
|
|
#define GHWCFG2_hs_phy_type_bitp 6 /** High speed PHY type */
|
|
|
|
#define GHWCFG2_hs_phy_type_bits 0x3
|
|
|
|
#define GHWCFG2_fs_phy_type_bitp 8 /** Full speed PHY type */
|
|
|
|
#define GHWCFG2_fs_phy_type_bits 0x3
|
|
|
|
#define GHWCFG2_num_ep_bitp 10 /** Number of endpoints */
|
|
|
|
#define GHWCFG2_num_ep_bits 0xf
|
|
|
|
#define GHWCFG2_dyn_fifo (1 << 19) /** Dynamic FIFO */
|
|
|
|
/* For GHWCFG2_HS_PHY_TYPE and GHWCFG2_FS_PHY_TYPE */
|
|
|
|
#define GHWCFG2_PHY_TYPE_UNSUPPORTED 0
|
|
|
|
#define GHWCFG2_PHY_TYPE_UTMI 1
|
|
|
|
#define GHWCFG2_ARCH_INTERNAL_DMA 2
|
2010-06-19 20:39:57 +00:00
|
|
|
|
|
|
|
/** User HW Config3 Register */
|
2010-06-19 20:40:07 +00:00
|
|
|
#define GHWCFG3 BASE_REG(0x04C)
|
|
|
|
#define GHWCFG3_dfifo_len_bitp 16 /** Total fifo size */
|
|
|
|
#define GHWCFG3_dfifo_len_bits 0xffff
|
2010-06-19 20:39:57 +00:00
|
|
|
|
|
|
|
/** User HW Config4 Register */
|
2010-06-19 20:40:07 +00:00
|
|
|
#define GHWCFG4 BASE_REG(0x050)
|
|
|
|
#define GHWCFG4_utmi_phy_data_width_bitp 14 /** UTMI+ data bus width */
|
|
|
|
#define GHWCFG4_utmi_phy_data_width_bits 0x3
|
|
|
|
#define GHWCFG4_ded_fifo_en (1 << 25) /** Dedicated Tx FIFOs */
|
|
|
|
#define GHWCFG4_num_in_ep_bitp 26 /** Number of IN endpoints */
|
|
|
|
#define GHWCFG4_num_in_ep_bits 0xf
|
2010-05-18 09:58:52 +00:00
|
|
|
|
2010-06-21 20:25:31 +00:00
|
|
|
/** Device IN Endpoint (ep) Transmit FIFO Status Register */
|
2011-12-13 04:21:06 +00:00
|
|
|
#define DTXFSTS(ep) (*((const void* volatile*)(OTGBASE + 0x918 + 0x20 * (x))))
|
2010-06-21 20:25:31 +00:00
|
|
|
|
|
|
|
/** Device OUT Endpoint (ep) Frame number Register */
|
2011-12-13 04:21:06 +00:00
|
|
|
#define DOEPFN(ep) (*((const void* volatile*)(OTGBASE + 0xB04 + 0x20 * (x))))
|
2010-05-19 08:33:50 +00:00
|
|
|
|
2010-05-18 09:58:52 +00:00
|
|
|
#endif /* __USB_DRV_AS3525v2_H__ */
|