aos/devices/omap/omap44xx_usbconf.dev
Daniel Schwyn 6d444bf552 Main handout
Signed-off-by: Daniel Schwyn <daniel.schwyn@inf.ethz.ch>
2022-03-03 14:57:51 +01:00

135 lines
4.5 KiB
Plaintext

/*
* Copyright (c) 2012, ETH Zurich. All rights reserved.
*
* This file is distributed under the terms in the attached LICENSE file.
* If you do not find this file, copies can be found by writing to:
* ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
*/
/*
* omap44xx_id.dev
*
* DESCRIPTION: OMAP44xx device identification
*
* This is derived from:
*
* OMAP4430 Multimedia Device Silicon Revision 2.x Technical Reference
* Manual Version O
* OMAP4460 Multimedia Device Silicon Revision 1.x Technical Reference
* Manual Version Q
*
* Section numbers are from the latter.
*
*/
device omap44xx_usbconf msbfirst ( addr base ) "OMAP44xx USB host subsystem" {
// 23.11.6.2.2
register revision ro addr(base, 0x0000) "Revision"
type(uint32);
register hwinfo ro addr(base, 0x0004) "Hardware info" {
_ 24;
sar_cntx_size 8 "Save-and-Restore context size";
};
constants idle_mode width(2) "Slave interface power mode" {
idle_force = 0b00 "Force-Idle mode";
idle_no = 0b01 "No idle mode";
idle_smart = 0b10 "Smart-idle mode";
};
register config rw addr(base, 0x0010) "Module configuration" {
_ 23;
clock_act 1 "Enable autogating OCP-derived int. clks.";
_ 3;
s_idle_mode 2 type(idle_mode) "Slave intf. power mgmt. ctrl";
ena_wakeup 1 "Asynchronous wake-up generation control";
soft_reset 1 wo "Module software reset";
auto_idle 1 "Internal autogating control";
};
register status ro addr(base, 0x0014) "Module status" {
_ 31;
reset_done 1 "Module has entirely come out of reset";
};
register irqstat rw1c addr(base, 0x0018) "IRQ status" {
_ 29 rsvd;
access_error 1 "Access error to ULPI register over OCP";
fclk_end 1 "Functional clock no longer requested";
fclk_start 1 "Functional clock requested for USB clocking";
};
register irqenable rw addr(base, 0x001c) "IRQ enable" {
_ 29 rsvd;
access_error 1 "Access error to ULPI register over OCP";
fclk_end 1 "Functional clock no longer requested";
fclk_start 1 "Functional clock requested for USB clocking";
};
register shared_conf rw addr(base, 0x0030) "Shared configuration" {
_ 30 rsvd;
fclk_req 1 "Functional clock request";
fclk_is_on 1 "Status of the functional clock input";
};
constants line_state width(2) "Line state" {
se0 = 0b00 "Single-ended 0";
fsj = 0b01 "Full-Speed J = differential 1";
fsk = 0b10 "Full-Speed K = differential 0";
se1 = 0b11 "Single-ended 1 (illegal in USB)";
};
constants si_mode width(4) "Serial interface mode" {
si_u6ps = 0x0 "6-pin unidirectional PHY i/f. Tx encoding Dat/Se0";
si_u6pd = 0x1 "6-pin unidirectional PHY i/f. Tx encoding is Dp/Dm";
si_b3p = 0x2 "3-pin bidirectional PHY i/f";
si_b4p = 0x3 "4-pin bidirectional PHY i/f";
si_u6ts = 0x4 "6-pin unidirectional TLL. Tx encoding is Dat/Se0";
si_u6td = 0x5 "6-pin unidirectional TLL. Tx encoding is Dp/Dm";
si_b3t = 0x6 "3-pin bidirectional TLL";
si_b4t = 0x7 "4-pin bidirectional TLL";
si_b2ts = 0xa "2-pin bidirectional TLL. Encoding is Dat/Se0";
si_b2td = 0xb "2-pin bidirectional TLL. Encoding is Dp/Dm";
};
constants ch_mode width(2) "Main channel mode" {
ch_u2u = 0b00 "UTMI-to-ULPI TLL mode (HS capable)";
ch_u2s = 0b01 "UTMI-to-serial (FS/LS)";
ch_trans= 0b10 "Transparent UTMI mode: to UTMI PHY";
ch_none = 0b11 "No mode selected";
};
regarray channel_conf rw addr(base, 0x0040)[2] "Channel configuration" {
_ 2 rsvd;
fslslinestate 2 type(line_state) "Line state for serial modes";
fslsmode 4 type(si_mode) "Serial interface mode select";
_ 3 rsvd;
testtxse0 1 "Force-Se0 tx override for mode test";
testtxdat 1 "Differential data tx override for mode test";
testtxen 1 "Differential data tx override for mode test";
testen 1 "Enable manual test override for Tx path";
drvvbus 1 "VBUS-drive for ChanMode = serial";
chrgvbus 1 "VBUS-charge for ChanMode = serial";
_ 3 rsvd;
ulpinobitstuff 1 "Disable bitstuff emulation in ULPI TLL";
ulpiautoidle 1 "Allow ULPI output clock to idle";
utmiautoidle 1 "Allow UTMI clock to idle";
_ 1 rsvd;
ulpioutclkmode 1 ro "ULPI clocking mode select";
tllfullspeed 1 "PHY speed emul. in TLL (full/slow)";
tllconnect 1 "Emulate Full/Low-Speed connect";
tllattach 1 "Emulate cable attach/detach";
utmiisadev 1 "Select cable end seen by UTMI side of TLL";
chanmode 2 "Main channel mode selection";
chanen 1 "Active-high channel enable";
};
regarray sar_cntx rw addr(base, 0x0400)[7]
"Save and restore context array"
type(uint32);
};