Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
986b0c25
Commit
986b0c25
authored
Dec 16, 2011
by
Tony Lindgren
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'hwmod_data_devel_3.3' of
git://git.pwsan.com/linux-2.6
into hwmod
parents
4a4de1d9
3e47dc6a
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
594 additions
and
13 deletions
+594
-13
arch/arm/mach-omap2/clock3xxx_data.c
arch/arm/mach-omap2/clock3xxx_data.c
+11
-0
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+367
-7
arch/arm/mach-omap2/omap_hwmod_44xx_data.c
arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+212
-5
arch/arm/mach-omap2/prcm-common.h
arch/arm/mach-omap2/prcm-common.h
+2
-0
arch/arm/plat-omap/include/plat/irqs.h
arch/arm/plat-omap/include/plat/irqs.h
+1
-1
arch/arm/plat-omap/include/plat/serial.h
arch/arm/plat-omap/include/plat/serial.h
+1
-0
No files found.
arch/arm/mach-omap2/clock3xxx_data.c
View file @
986b0c25
...
...
@@ -2480,6 +2480,16 @@ static struct clk uart4_fck = {
.
recalc
=
&
followparent_recalc
,
};
static
struct
clk
uart4_fck_am35xx
=
{
.
name
=
"uart4_fck"
,
.
ops
=
&
clkops_omap2_dflt_wait
,
.
parent
=
&
per_48m_fck
,
.
enable_reg
=
OMAP_CM_REGADDR
(
CORE_MOD
,
CM_FCLKEN1
),
.
enable_bit
=
OMAP3430_EN_UART4_SHIFT
,
.
clkdm_name
=
"core_l4_clkdm"
,
.
recalc
=
&
followparent_recalc
,
};
static
struct
clk
gpt2_fck
=
{
.
name
=
"gpt2_fck"
,
.
ops
=
&
clkops_omap2_dflt_wait
,
...
...
@@ -3403,6 +3413,7 @@ static struct omap_clk omap3xxx_clks[] = {
CLK
(
NULL
,
"per_48m_fck"
,
&
per_48m_fck
,
CK_3XXX
),
CLK
(
NULL
,
"uart3_fck"
,
&
uart3_fck
,
CK_3XXX
),
CLK
(
NULL
,
"uart4_fck"
,
&
uart4_fck
,
CK_36XX
),
CLK
(
NULL
,
"uart4_fck"
,
&
uart4_fck_am35xx
,
CK_3505
|
CK_3517
),
CLK
(
NULL
,
"gpt2_fck"
,
&
gpt2_fck
,
CK_3XXX
),
CLK
(
NULL
,
"gpt3_fck"
,
&
gpt3_fck
,
CK_3XXX
),
CLK
(
NULL
,
"gpt4_fck"
,
&
gpt4_fck
,
CK_3XXX
),
...
...
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
View file @
986b0c25
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/omap_hwmod_44xx_data.c
View file @
986b0c25
...
...
@@ -70,6 +70,8 @@ static struct omap_hwmod omap44xx_mmc2_hwmod;
static
struct
omap_hwmod
omap44xx_mpu_hwmod
;
static
struct
omap_hwmod
omap44xx_mpu_private_hwmod
;
static
struct
omap_hwmod
omap44xx_usb_otg_hs_hwmod
;
static
struct
omap_hwmod
omap44xx_usb_host_hs_hwmod
;
static
struct
omap_hwmod
omap44xx_usb_tll_hs_hwmod
;
/*
* Interconnects omap_hwmod structures
...
...
@@ -2246,6 +2248,7 @@ static struct omap_hwmod_class_sysconfig omap44xx_i2c_sysc = {
SYSC_HAS_SOFTRESET
|
SYSS_HAS_RESET_STATUS
),
.
idlemodes
=
(
SIDLE_FORCE
|
SIDLE_NO
|
SIDLE_SMART
|
SIDLE_SMART_WKUP
),
.
clockact
=
CLOCKACT_TEST_ICLK
,
.
sysc_fields
=
&
omap_hwmod_sysc_type1
,
};
...
...
@@ -2300,7 +2303,7 @@ static struct omap_hwmod omap44xx_i2c1_hwmod = {
.
name
=
"i2c1"
,
.
class
=
&
omap44xx_i2c_hwmod_class
,
.
clkdm_name
=
"l4_per_clkdm"
,
.
flags
=
HWMOD_16BIT_REG
,
.
flags
=
HWMOD_16BIT_REG
|
HWMOD_SET_DEFAULT_CLOCKACT
,
.
mpu_irqs
=
omap44xx_i2c1_irqs
,
.
sdma_reqs
=
omap44xx_i2c1_sdma_reqs
,
.
main_clk
=
"i2c1_fck"
,
...
...
@@ -2356,7 +2359,7 @@ static struct omap_hwmod omap44xx_i2c2_hwmod = {
.
name
=
"i2c2"
,
.
class
=
&
omap44xx_i2c_hwmod_class
,
.
clkdm_name
=
"l4_per_clkdm"
,
.
flags
=
HWMOD_16BIT_REG
,
.
flags
=
HWMOD_16BIT_REG
|
HWMOD_SET_DEFAULT_CLOCKACT
,
.
mpu_irqs
=
omap44xx_i2c2_irqs
,
.
sdma_reqs
=
omap44xx_i2c2_sdma_reqs
,
.
main_clk
=
"i2c2_fck"
,
...
...
@@ -2412,7 +2415,7 @@ static struct omap_hwmod omap44xx_i2c3_hwmod = {
.
name
=
"i2c3"
,
.
class
=
&
omap44xx_i2c_hwmod_class
,
.
clkdm_name
=
"l4_per_clkdm"
,
.
flags
=
HWMOD_16BIT_REG
,
.
flags
=
HWMOD_16BIT_REG
|
HWMOD_SET_DEFAULT_CLOCKACT
,
.
mpu_irqs
=
omap44xx_i2c3_irqs
,
.
sdma_reqs
=
omap44xx_i2c3_sdma_reqs
,
.
main_clk
=
"i2c3_fck"
,
...
...
@@ -2468,7 +2471,7 @@ static struct omap_hwmod omap44xx_i2c4_hwmod = {
.
name
=
"i2c4"
,
.
class
=
&
omap44xx_i2c_hwmod_class
,
.
clkdm_name
=
"l4_per_clkdm"
,
.
flags
=
HWMOD_16BIT_REG
,
.
flags
=
HWMOD_16BIT_REG
|
HWMOD_SET_DEFAULT_CLOCKACT
,
.
mpu_irqs
=
omap44xx_i2c4_irqs
,
.
sdma_reqs
=
omap44xx_i2c4_sdma_reqs
,
.
main_clk
=
"i2c4_fck"
,
...
...
@@ -5276,6 +5279,207 @@ static struct omap_hwmod omap44xx_wd_timer3_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap44xx_wd_timer3_slaves
),
};
/*
* 'usb_host_hs' class
* high-speed multi-port usb host controller
*/
static
struct
omap_hwmod_ocp_if
omap44xx_usb_host_hs__l3_main_2
=
{
.
master
=
&
omap44xx_usb_host_hs_hwmod
,
.
slave
=
&
omap44xx_l3_main_2_hwmod
,
.
clk
=
"l3_div_ck"
,
.
user
=
OCP_USER_MPU
|
OCP_USER_SDMA
,
};
static
struct
omap_hwmod_class_sysconfig
omap44xx_usb_host_hs_sysc
=
{
.
rev_offs
=
0x0000
,
.
sysc_offs
=
0x0010
,
.
syss_offs
=
0x0014
,
.
sysc_flags
=
(
SYSC_HAS_MIDLEMODE
|
SYSC_HAS_SIDLEMODE
|
SYSC_HAS_SOFTRESET
),
.
idlemodes
=
(
SIDLE_FORCE
|
SIDLE_NO
|
SIDLE_SMART
|
SIDLE_SMART_WKUP
|
MSTANDBY_FORCE
|
MSTANDBY_NO
|
MSTANDBY_SMART
|
MSTANDBY_SMART_WKUP
),
.
sysc_fields
=
&
omap_hwmod_sysc_type2
,
};
static
struct
omap_hwmod_class
omap44xx_usb_host_hs_hwmod_class
=
{
.
name
=
"usb_host_hs"
,
.
sysc
=
&
omap44xx_usb_host_hs_sysc
,
};
static
struct
omap_hwmod_ocp_if
*
omap44xx_usb_host_hs_masters
[]
=
{
&
omap44xx_usb_host_hs__l3_main_2
,
};
static
struct
omap_hwmod_addr_space
omap44xx_usb_host_hs_addrs
[]
=
{
{
.
name
=
"uhh"
,
.
pa_start
=
0x4a064000
,
.
pa_end
=
0x4a0647ff
,
.
flags
=
ADDR_TYPE_RT
},
{
.
name
=
"ohci"
,
.
pa_start
=
0x4a064800
,
.
pa_end
=
0x4a064bff
,
},
{
.
name
=
"ehci"
,
.
pa_start
=
0x4a064c00
,
.
pa_end
=
0x4a064fff
,
},
{}
};
static
struct
omap_hwmod_irq_info
omap44xx_usb_host_hs_irqs
[]
=
{
{
.
name
=
"ohci-irq"
,
.
irq
=
76
+
OMAP44XX_IRQ_GIC_START
},
{
.
name
=
"ehci-irq"
,
.
irq
=
77
+
OMAP44XX_IRQ_GIC_START
},
{
.
irq
=
-
1
}
};
static
struct
omap_hwmod_ocp_if
omap44xx_l4_cfg__usb_host_hs
=
{
.
master
=
&
omap44xx_l4_cfg_hwmod
,
.
slave
=
&
omap44xx_usb_host_hs_hwmod
,
.
clk
=
"l4_div_ck"
,
.
addr
=
omap44xx_usb_host_hs_addrs
,
.
user
=
OCP_USER_MPU
|
OCP_USER_SDMA
,
};
static
struct
omap_hwmod_ocp_if
*
omap44xx_usb_host_hs_slaves
[]
=
{
&
omap44xx_l4_cfg__usb_host_hs
,
};
static
struct
omap_hwmod
omap44xx_usb_host_hs_hwmod
=
{
.
name
=
"usb_host_hs"
,
.
class
=
&
omap44xx_usb_host_hs_hwmod_class
,
.
clkdm_name
=
"l3_init_clkdm"
,
.
main_clk
=
"usb_host_hs_fck"
,
.
prcm
=
{
.
omap4
=
{
.
clkctrl_offs
=
OMAP4_CM_L3INIT_USB_HOST_CLKCTRL_OFFSET
,
.
context_offs
=
OMAP4_RM_L3INIT_USB_HOST_CONTEXT_OFFSET
,
.
modulemode
=
MODULEMODE_SWCTRL
,
},
},
.
mpu_irqs
=
omap44xx_usb_host_hs_irqs
,
.
slaves
=
omap44xx_usb_host_hs_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap44xx_usb_host_hs_slaves
),
.
masters
=
omap44xx_usb_host_hs_masters
,
.
masters_cnt
=
ARRAY_SIZE
(
omap44xx_usb_host_hs_masters
),
/*
* Errata: USBHOST Configured In Smart-Idle Can Lead To a Deadlock
* id: i660
*
* Description:
* In the following configuration :
* - USBHOST module is set to smart-idle mode
* - PRCM asserts idle_req to the USBHOST module ( This typically
* happens when the system is going to a low power mode : all ports
* have been suspended, the master part of the USBHOST module has
* entered the standby state, and SW has cut the functional clocks)
* - an USBHOST interrupt occurs before the module is able to answer
* idle_ack, typically a remote wakeup IRQ.
* Then the USB HOST module will enter a deadlock situation where it
* is no more accessible nor functional.
*
* Workaround:
* Don't use smart idle; use only force idle, hence HWMOD_SWSUP_SIDLE
*/
/*
* Errata: USB host EHCI may stall when entering smart-standby mode
* Id: i571
*
* Description:
* When the USBHOST module is set to smart-standby mode, and when it is
* ready to enter the standby state (i.e. all ports are suspended and
* all attached devices are in suspend mode), then it can wrongly assert
* the Mstandby signal too early while there are still some residual OCP
* transactions ongoing. If this condition occurs, the internal state
* machine may go to an undefined state and the USB link may be stuck
* upon the next resume.
*
* Workaround:
* Don't use smart standby; use only force standby,
* hence HWMOD_SWSUP_MSTANDBY
*/
/*
* During system boot; If the hwmod framework resets the module
* the module will have smart idle settings; which can lead to deadlock
* (above Errata Id:i660); so, dont reset the module during boot;
* Use HWMOD_INIT_NO_RESET.
*/
.
flags
=
HWMOD_SWSUP_SIDLE
|
HWMOD_SWSUP_MSTANDBY
|
HWMOD_INIT_NO_RESET
,
};
/*
* 'usb_tll_hs' class
* usb_tll_hs module is the adapter on the usb_host_hs ports
*/
static
struct
omap_hwmod_class_sysconfig
omap44xx_usb_tll_hs_sysc
=
{
.
rev_offs
=
0x0000
,
.
sysc_offs
=
0x0010
,
.
syss_offs
=
0x0014
,
.
sysc_flags
=
(
SYSC_HAS_CLOCKACTIVITY
|
SYSC_HAS_SIDLEMODE
|
SYSC_HAS_ENAWAKEUP
|
SYSC_HAS_SOFTRESET
|
SYSC_HAS_AUTOIDLE
),
.
idlemodes
=
(
SIDLE_FORCE
|
SIDLE_NO
|
SIDLE_SMART
),
.
sysc_fields
=
&
omap_hwmod_sysc_type1
,
};
static
struct
omap_hwmod_class
omap44xx_usb_tll_hs_hwmod_class
=
{
.
name
=
"usb_tll_hs"
,
.
sysc
=
&
omap44xx_usb_tll_hs_sysc
,
};
static
struct
omap_hwmod_irq_info
omap44xx_usb_tll_hs_irqs
[]
=
{
{
.
name
=
"tll-irq"
,
.
irq
=
78
+
OMAP44XX_IRQ_GIC_START
},
{
.
irq
=
-
1
}
};
static
struct
omap_hwmod_addr_space
omap44xx_usb_tll_hs_addrs
[]
=
{
{
.
name
=
"tll"
,
.
pa_start
=
0x4a062000
,
.
pa_end
=
0x4a063fff
,
.
flags
=
ADDR_TYPE_RT
},
{}
};
static
struct
omap_hwmod_ocp_if
omap44xx_l4_cfg__usb_tll_hs
=
{
.
master
=
&
omap44xx_l4_cfg_hwmod
,
.
slave
=
&
omap44xx_usb_tll_hs_hwmod
,
.
clk
=
"l4_div_ck"
,
.
addr
=
omap44xx_usb_tll_hs_addrs
,
.
user
=
OCP_USER_MPU
|
OCP_USER_SDMA
,
};
static
struct
omap_hwmod_ocp_if
*
omap44xx_usb_tll_hs_slaves
[]
=
{
&
omap44xx_l4_cfg__usb_tll_hs
,
};
static
struct
omap_hwmod
omap44xx_usb_tll_hs_hwmod
=
{
.
name
=
"usb_tll_hs"
,
.
class
=
&
omap44xx_usb_tll_hs_hwmod_class
,
.
clkdm_name
=
"l3_init_clkdm"
,
.
main_clk
=
"usb_tll_hs_ick"
,
.
prcm
=
{
.
omap4
=
{
.
clkctrl_offs
=
OMAP4_CM_L3INIT_USB_TLL_CLKCTRL_OFFSET
,
.
context_offs
=
OMAP4_RM_L3INIT_USB_TLL_CONTEXT_OFFSET
,
.
modulemode
=
MODULEMODE_HWCTRL
,
},
},
.
mpu_irqs
=
omap44xx_usb_tll_hs_irqs
,
.
slaves
=
omap44xx_usb_tll_hs_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap44xx_usb_tll_hs_slaves
),
};
static
__initdata
struct
omap_hwmod
*
omap44xx_hwmods
[]
=
{
/* dmm class */
...
...
@@ -5415,13 +5619,16 @@ static __initdata struct omap_hwmod *omap44xx_hwmods[] = {
&
omap44xx_uart3_hwmod
,
&
omap44xx_uart4_hwmod
,
/* usb host class */
&
omap44xx_usb_host_hs_hwmod
,
&
omap44xx_usb_tll_hs_hwmod
,
/* usb_otg_hs class */
&
omap44xx_usb_otg_hs_hwmod
,
/* wd_timer class */
&
omap44xx_wd_timer2_hwmod
,
&
omap44xx_wd_timer3_hwmod
,
NULL
,
};
...
...
arch/arm/mach-omap2/prcm-common.h
View file @
986b0c25
...
...
@@ -201,6 +201,8 @@
#define OMAP3430_EN_MMC2_SHIFT 25
#define OMAP3430_EN_MMC1_MASK (1 << 24)
#define OMAP3430_EN_MMC1_SHIFT 24
#define OMAP3430_EN_UART4_MASK (1 << 23)
#define OMAP3430_EN_UART4_SHIFT 23
#define OMAP3430_EN_MCSPI4_MASK (1 << 21)
#define OMAP3430_EN_MCSPI4_SHIFT 21
#define OMAP3430_EN_MCSPI3_MASK (1 << 20)
...
...
arch/arm/plat-omap/include/plat/irqs.h
View file @
986b0c25
...
...
@@ -357,7 +357,7 @@
#define INT_35XX_EMAC_C0_TX_PULSE_IRQ 69
#define INT_35XX_EMAC_C0_MISC_PULSE_IRQ 70
#define INT_35XX_USBOTG_IRQ 71
#define INT_35XX_UART4
84
#define INT_35XX_UART4
_IRQ
84
#define INT_35XX_CCDC_VD0_IRQ 88
#define INT_35XX_CCDC_VD1_IRQ 92
#define INT_35XX_CCDC_VD2_IRQ 93
...
...
arch/arm/plat-omap/include/plat/serial.h
View file @
986b0c25
...
...
@@ -44,6 +44,7 @@
#define OMAP3_UART2_BASE OMAP2_UART2_BASE
#define OMAP3_UART3_BASE 0x49020000
#define OMAP3_UART4_BASE 0x49042000
/* Only on 36xx */
#define OMAP3_UART4_AM35XX_BASE 0x4809E000
/* Only on AM35xx */
/* OMAP4 serial ports */
#define OMAP4_UART1_BASE OMAP2_UART1_BASE
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment