source: rtems/bsps/arm/include/libcpu/am335x.h @ 2afb22b

5
Last change on this file since 2afb22b was 2afb22b, checked in by Chris Johns <chrisj@…>, on 12/23/17 at 07:18:56

Remove make preinstall

A speciality of the RTEMS build system was the make preinstall step. It
copied header files from arbitrary locations into the build tree. The
header files were included via the -Bsome/build/tree/path GCC command
line option.

This has at least seven problems:

  • The make preinstall step itself needs time and disk space.
  • Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error.
  • There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult.
  • The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit.
  • An introduction of a new build system is difficult.
  • Include paths specified by the -B option are system headers. This may suppress warnings.
  • The parallel build had sporadic failures on some hosts.

This patch removes the make preinstall step. All installed header
files are moved to dedicated include directories in the source tree.
Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc,
etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g.
erc32, imx, qoriq, etc.

The new cpukit include directories are:

  • cpukit/include
  • cpukit/score/cpu/@RTEMS_CPU@/include
  • cpukit/libnetworking

The new BSP include directories are:

  • bsps/include
  • bsps/@RTEMS_CPU@/include
  • bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include

There are build tree include directories for generated files.

The include directory order favours the most general header file, e.g.
it is not possible to override general header files via the include path
order.

The "bootstrap -p" option was removed. The new "bootstrap -H" option
should be used to regenerate the "headers.am" files.

Update #3254.

  • Property mode set to 100644
File size: 27.2 KB
RevLine 
[b51842b]1/*
2 * Copyright (c) 2012 Claas Ziemke. All rights reserved.
3 *
4 *  Claas Ziemke
5 *  Kernerstrasse 11
6 *  70182 Stuttgart
7 *  Germany
8 *  <claas.ziemke@gmx.net>
9 *
10 * The license and distribution terms for this file may be
11 * found in the file LICENSE in this distribution or at
[d4edbdbc]12 * http://www.rtems.org/license/LICENSE.
[b51842b]13 *
14 * Modified by Ben Gras <beng@shrike-systems.com> to add lots
15 * of beagleboard/beaglebone definitions, delete lpc32xx specific
16 * ones, and merge with some other header files.
17 */
18
[e806b731]19#if !defined(_AM335X_H_)
20#define _AM335X_H_
21
[b51842b]22/* Interrupt controller memory map */
23#define OMAP3_DM37XX_INTR_BASE 0x48200000 /* INTCPS physical address */
24
25/* Interrupt controller memory map */
26#define OMAP3_AM335X_INTR_BASE 0x48200000 /* INTCPS physical address */
27
28#define AM335X_INT_EMUINT             0
29    /* Emulation interrupt (EMUICINTR) */
30#define AM335X_INT_COMMTX             1
31    /* CortexA8 COMMTX */
32#define AM335X_INT_COMMRX             2
33    /* CortexA8 COMMRX */
34#define AM335X_INT_BENCH              3
35    /* CortexA8 NPMUIRQ */
36#define AM335X_INT_ELM_IRQ            4
37    /* Sinterrupt (Error location process completion) */
38#define AM335X_INT_NMI                7
39    /* nmi_int */
40#define AM335X_INT_L3DEBUG            9
41    /* l3_FlagMux_top_FlagOut1 */
42#define AM335X_INT_L3APPINT           10
43    /* l3_FlagMux_top_FlagOut0  */
44#define AM335X_INT_PRCMINT            11
45    /* irq_mpu */
46#define AM335X_INT_EDMACOMPINT        12
47    /* tpcc_int_pend_po0 */
48#define AM335X_INT_EDMAMPERR          13
49    /* tpcc_mpint_pend_po */
50#define AM335X_INT_EDMAERRINT         14
51    /* tpcc_errint_pend_po */
52#define AM335X_INT_ADC_TSC_GENINT     16
53    /* gen_intr_pend */
54#define AM335X_INT_USBSSINT           17
55    /* usbss_intr_pend */
56#define AM335X_INT_USB0               18
57    /* usb0_intr_pend */
58#define AM335X_INT_USB1               19
59    /* usb1_intr_pend */
60#define AM335X_INT_PRUSS1_EVTOUT0     20
61    /* pr1_host_intr0_intr_pend */
62#define AM335X_INT_PRUSS1_EVTOUT1     21
63    /* pr1_host_intr1_intr_pend */
64#define AM335X_INT_PRUSS1_EVTOUT2     22
65    /* pr1_host_intr2_intr_pend */
66#define AM335X_INT_PRUSS1_EVTOUT3     23
67    /* pr1_host_intr3_intr_pend */
68#define AM335X_INT_PRUSS1_EVTOUT4     24
69    /* pr1_host_intr4_intr_pend */
70#define AM335X_INT_PRUSS1_EVTOUT5     25
71    /* pr1_host_intr5_intr_pend */
72#define AM335X_INT_PRUSS1_EVTOUT6     26
73    /* pr1_host_intr6_intr_pend */
74#define AM335X_INT_PRUSS1_EVTOUT7     27
75    /* pr1_host_intr7_intr_pend */
76#define AM335X_INT_MMCSD1INT          28
77    /* MMCSD1  SINTERRUPTN */
78#define AM335X_INT_MMCSD2INT          29
79    /* MMCSD2  SINTERRUPT */
80#define AM335X_INT_I2C2INT            30
81    /* I2C2  POINTRPEND */
82#define AM335X_INT_eCAP0INT           31
83    /* ecap_intr_intr_pend */
84#define AM335X_INT_GPIOINT2A          32
85    /* GPIO 2  POINTRPEND1 */
86#define AM335X_INT_GPIOINT2B          33
87    /* GPIO 2  POINTRPEND2 */
88#define AM335X_INT_USBWAKEUP          34
89    /* USBSS  slv0p_Swakeup */
90#define AM335X_INT_LCDCINT            36
91    /* LCDC  lcd_irq */
92#define AM335X_INT_GFXINT             37
93    /* SGX530  THALIAIRQ */
94#define AM335X_INT_ePWM2INT           39
95    /* (PWM Subsystem)  epwm_intr_intr_pend */
96#define AM335X_INT_3PGSWRXTHR0        40
97    /* (Ethernet)  c0_rx_thresh_pend (RX_THRESH_PULSE) */
98#define AM335X_INT_3PGSWRXINT0        41
99    /* CPSW (Ethernet)  c0_rx_pend */
100#define AM335X_INT_3PGSWTXINT0        42
101    /* CPSW (Ethernet)  c0_tx_pend */
102#define AM335X_INT_3PGSWMISC0         43
103    /* CPSW (Ethernet)  c0_misc_pend */
104#define AM335X_INT_UART3INT           44
105    /* UART3  niq */
106#define AM335X_INT_UART4INT           45
107    /* UART4  niq */
108#define AM335X_INT_UART5INT           46
109    /* UART5  niq */
110#define AM335X_INT_eCAP1INT           47
111    /* (PWM Subsystem)  ecap_intr_intr_pend */
112#define AM335X_INT_DCAN0_INT0         52
113    /* DCAN0  dcan_intr0_intr_pend */
114#define AM335X_INT_DCAN0_INT1         53
115    /* DCAN0  dcan_intr1_intr_pend */
116#define AM335X_INT_DCAN0_PARITY       54
117    /* DCAN0  dcan_uerr_intr_pend */
118#define AM335X_INT_DCAN1_INT0         55
119    /* DCAN1  dcan_intr0_intr_pend */
120#define AM335X_INT_DCAN1_INT1         56
121    /* DCAN1  dcan_intr1_intr_pend */
122#define AM335X_INT_DCAN1_PARITY       57
123    /* DCAN1  dcan_uerr_intr_pend */
124#define AM335X_INT_ePWM0_TZINT        58
125    /* eHRPWM0 TZ interrupt (PWM  epwm_tz_intr_pend Subsystem) */
126#define AM335X_INT_ePWM1_TZINT        59
127    /* eHRPWM1 TZ interrupt (PWM  epwm_tz_intr_pend Subsystem) */
128#define AM335X_INT_ePWM2_TZINT        60
129    /* eHRPWM2 TZ interrupt (PWM  epwm_tz_intr_pend Subsystem) */
130#define AM335X_INT_eCAP2INT           61
131    /* eCAP2 (PWM Subsystem)  ecap_intr_intr_pend */
132#define AM335X_INT_GPIOINT3A          62
133    /* GPIO 3  POINTRPEND1 */
134#define AM335X_INT_GPIOINT3B          63
135    /* GPIO 3  POINTRPEND2 */
136#define AM335X_INT_MMCSD0INT          64
137    /* MMCSD0  SINTERRUPTN */
138#define AM335X_INT_SPI0INT            65
139    /* McSPI0  SINTERRUPTN */
140#define AM335X_INT_TINT0              66
141    /* Timer0  POINTR_PEND */
142#define AM335X_INT_TINT1_1MS          67
143    /* DMTIMER_1ms  POINTR_PEND */
144#define AM335X_INT_TINT2              68
145    /* DMTIMER2  POINTR_PEND */
146#define AM335X_INT_TINT3              69
147    /* DMTIMER3  POINTR_PEND */
148#define AM335X_INT_I2C0INT            70
149    /* I2C0  POINTRPEND */
150#define AM335X_INT_I2C1INT            71
151    /* I2C1  POINTRPEND */
152#define AM335X_INT_UART0INT           72
153    /* UART0  niq */
154#define AM335X_INT_UART1INT           73
155    /* UART1  niq */
156#define AM335X_INT_UART2INT           74
157    /* UART2  niq */
158#define AM335X_INT_RTCINT             75
159    /* RTC  timer_intr_pend */
160#define AM335X_INT_RTCALARMINT        76
161    /* RTC  alarm_intr_pend */
162#define AM335X_INT_MBINT0             77
163    /* Mailbox0 (mail_u0_irq)  initiator_sinterrupt_q_n */
164#define AM335X_INT_M3_TXEV            78
165    /* Wake M3 Subsystem  TXEV */
166#define AM335X_INT_eQEP0INT           79
167    /* eQEP0 (PWM Subsystem)  eqep_intr_intr_pend */
168#define AM335X_INT_MCATXINT0          80
169    /* McASP0  mcasp_x_intr_pend */
170#define AM335X_INT_MCARXINT0          81
171    /* McASP0  mcasp_r_intr_pend */
172#define AM335X_INT_MCATXINT1          82
173    /* McASP1  mcasp_x_intr_pend */
174#define AM335X_INT_MCARXINT1          83
175    /* McASP1  mcasp_r_intr_pend */
176#define AM335X_INT_ePWM0INT           86
177    /* (PWM Subsystem)  epwm_intr_intr_pend */
178#define AM335X_INT_ePWM1INT           87
179    /* (PWM Subsystem)  epwm_intr_intr_pend */
180#define AM335X_INT_eQEP1INT           88
181    /* (PWM Subsystem)  eqep_intr_intr_pend */
182#define AM335X_INT_eQEP2INT           89
183    /* (PWM Subsystem)  eqep_intr_intr_pend */
184#define AM335X_INT_DMA_INTR_PIN2      90
185    /* External DMA/Interrupt Pin2  */
186#define AM335X_INT_WDT1INT            91
187    /* (Public Watchdog) WDTIMER1 PO_INT_PEND */
188#define AM335X_INT_TINT4              92
189    /* DMTIMER4  POINTR_PEN */
190#define AM335X_INT_TINT5              93
191    /* DMTIMER5  POINTR_PEN */
192#define AM335X_INT_TINT6              94
193    /* DMTIMER6  POINTR_PEND */
194#define AM335X_INT_TINT7              95
195    /* DMTIMER7  POINTR_PEND */
196#define AM335X_INT_GPIOINT0A          96
197    /* GPIO 0  POINTRPEND1 */
198#define AM335X_INT_GPIOINT0B          97
199    /* GPIO 0  POINTRPEND2 */
200#define AM335X_INT_GPIOINT1A          98
201    /* GPIO 1  POINTRPEND1 */
202#define AM335X_INT_GPIOINT1B          99
203    /* GPIO 1  POINTRPEND2 */
204#define AM335X_INT_GPMCINT            100
205    /* GPMC  gpmc_sinterrupt */
206#define AM335X_INT_DDRERR0            101
207    /* EMIF  sys_err_intr_pend */
208#define AM335X_INT_TCERRINT0          112
209    /* TPTC0  tptc_erint_pend_po */
210#define AM335X_INT_TCERRINT1          113
211    /* TPTC1  tptc_erint_pend_po */
212#define AM335X_INT_TCERRINT2          114
213    /* TPTC2  tptc_erint_pend_po */
214#define AM335X_INT_ADC_TSC_PENINT     115
215    /* ADC_TSC  pen_intr_pend */
216#define AM335X_INT_SMRFLX_Sabertooth  120
217    /* Smart Reflex 0  intrpen */
218#define AM335X_INT_SMRFLX_Core        121
219    /* Smart Reflex 1  intrpend */
220#define AM335X_INT_DMA_INTR_PIN0      123
221    /* pi_x_dma_event_intr0 (xdma_event_intr0) */
222#define AM335X_INT_DMA_INTR_PIN1      124
223    /* pi_x_dma_event_intr1 (xdma_event_intr1) */
224#define AM335X_INT_SPI1INT            125
225    /* McSPI1  SINTERRUPTN */
226
227#define OMAP3_AM335X_NR_IRQ_VECTORS    125
228
229#define AM335X_DMTIMER0_BASE      0x44E05000
230    /* DMTimer0 Registers */
231#define AM335X_DMTIMER1_1MS_BASE  0x44E31000
232    /* DMTimer1 1ms Registers (Accurate 1ms timer) */
233#define AM335X_DMTIMER2_BASE      0x48040000
234    /*  DMTimer2 Registers */
235#define AM335X_DMTIMER3_BASE      0x48042000
236    /*  DMTimer3 Registers */
237#define AM335X_DMTIMER4_BASE      0x48044000
238    /* DMTimer4 Registers  */
239#define AM335X_DMTIMER5_BASE      0x48046000
240    /* DMTimer5 Registers  */
241#define AM335X_DMTIMER6_BASE      0x48048000
242    /*  DMTimer6 Registers */
243#define AM335X_DMTIMER7_BASE      0x4804A000
244    /*  DMTimer7 Registers */
245
246/* General-purpose timer registers
247   AM335x non 1MS timers have different offsets */
248#define AM335X_TIMER_TIDR             0x000
249    /* IP revision code */
250#define AM335X_TIMER_TIOCP_CFG        0x010
251    /* Controls params for GP timer L4 interface */
252#define AM335X_TIMER_IRQSTATUS_RAW    0x024
253    /* Timer IRQSTATUS Raw Register */
254#define AM335X_TIMER_IRQSTATUS        0x028
255    /* Timer IRQSTATUS Register */
256#define AM335X_TIMER_IRQENABLE_SET    0x02C
257    /* Timer IRQENABLE Set Register */
258#define AM335X_TIMER_IRQENABLE_CLR    0x030
259    /* Timer IRQENABLE Clear Register */
260#define AM335X_TIMER_IRQWAKEEN        0x034
261    /* Timer IRQ Wakeup Enable Register */
262#define AM335X_TIMER_TCLR             0x038
263    /* Controls optional features */
264#define AM335X_TIMER_TCRR             0x03C
265    /* Internal counter value */
266#define AM335X_TIMER_TLDR             0x040
267    /* Timer load value */
268#define AM335X_TIMER_TTGR             0x044
269    /* Triggers counter reload */
270#define AM335X_TIMER_TWPS             0x048
271    /* Indicates if Write-Posted pending */
272#define AM335X_TIMER_TMAR             0x04C
273    /* Value to be compared with counter */
274#define AM335X_TIMER_TCAR1            0x050
275    /* First captured value of counter register */
276#define AM335X_TIMER_TSICR            0x054
277    /* Control posted mode and functional SW reset */
278#define AM335X_TIMER_TCAR2            0x058
279    /* Second captured value of counter register */
[13d9029]280#define AM335X_WDT_BASE                0x44E35000
281    /* Watchdog timer */
282#define AM335X_WDT_WWPS                0x34
283    /* Command posted status */
284#define AM335X_WDT_WSPR                0x48
285    /* Activate/deactivate sequence */
[d55d7a0]286
287/* RTC registers */
288#define AM335X_RTC_BASE         0x44E3E000
289#define AM335X_RTC_SECS         0x0
290#define AM335X_RTC_MINS         0x4
291#define AM335X_RTC_HOURS        0x8
292#define AM335X_RTC_DAYS         0xc
293#define AM335X_RTC_MONTHS       0x10
294#define AM335X_RTC_YEARS        0x14
295#define AM335X_RTC_WEEKS        0x18
296#define AM335X_RTC_CTRL_REG     0x40
297#define AM335X_RTC_STATUS_REG   0x44
298#define AM335X_RTC_REV_REG      0x74
299#define AM335X_RTC_SYSCONFIG    0x78
300#define AM335X_RTC_KICK0        0x6c
301#define AM335X_RTC_KICK1        0x70
302#define AM335X_RTC_OSC_CLOCK    0x54
303
304#define AM335X_RTC_KICK0_KEY    0x83E70B13
305#define AM335X_RTC_KICK1_KEY    0x95A4F1E0
[151e53f]306
307/* GPIO memory-mapped registers */
308
309#define AM335X_GPIO0_BASE           0x44E07000
310    /* GPIO Bank 0 base Register */
311#define AM335X_GPIO1_BASE           0x4804C000
312    /* GPIO Bank 1 base Register */
313#define AM335X_GPIO2_BASE           0x481AC000
314    /* GPIO Bank 2 base Register */
315#define AM335X_GPIO3_BASE           0x481AE000
316    /* GPIO Bank 3 base Register */
317
318#define AM335X_GPIO_REVISION        0x00
319#define AM335X_GPIO_SYSCONFIG       0x10
320#define AM335X_GPIO_EOI             0x20
321#define AM335X_GPIO_IRQSTATUS_RAW_0 0x24
322#define AM335X_GPIO_IRQSTATUS_RAW_1 0x28
323#define AM335X_GPIO_IRQSTATUS_0     0x2C
324#define AM335X_GPIO_IRQSTATUS_1     0x30
325#define AM335X_GPIO_IRQSTATUS_SET_0 0x34
326#define AM335X_GPIO_IRQSTATUS_SET_1 0x38
327#define AM335X_GPIO_IRQSTATUS_CLR_0 0x3C
328#define AM335X_GPIO_IRQSTATUS_CLR_1 0x40
329#define AM335X_GPIO_IRQWAKEN_0      0x44
330#define AM335X_GPIO_IRQWAKEN_1      0x48
331#define AM335X_GPIO_SYSSTATUS       0x114
332#define AM335X_GPIO_CTRL            0x130
333#define AM335X_GPIO_OE              0x134
334#define AM335X_GPIO_DATAIN          0x138
335#define AM335X_GPIO_DATAOUT         0x13C
336#define AM335X_GPIO_LEVELDETECT0    0x140
337#define AM335X_GPIO_LEVELDETECT1    0x144
338#define AM335X_GPIO_RISINGDETECT    0x148
339#define AM335X_GPIO_FALLINGDETECT   0x14C
340#define AM335X_GPIO_DEBOUNCENABLE   0x150
341#define AM335X_GPIO_DEBOUNCINGTIME  0x154
342#define AM335X_GPIO_CLEARDATAOUT    0x190
343#define AM335X_GPIO_SETDATAOUT      0x194
344
345/* AM335X Pad Configuration Register Base */
346#define AM335X_PADCONF_BASE 0x44E10000
347
348/* Memory mapped register offset for Control Module */
349#define AM335X_CONF_GPMC_AD0 0x800
350#define AM335X_CONF_GPMC_AD1 0x804
351#define AM335X_CONF_GPMC_AD2 0x808
352#define AM335X_CONF_GPMC_AD3 0x80C
353#define AM335X_CONF_GPMC_AD4 0x810
354#define AM335X_CONF_GPMC_AD5 0x814
355#define AM335X_CONF_GPMC_AD6 0x818
356#define AM335X_CONF_GPMC_AD7 0x81C
357#define AM335X_CONF_GPMC_AD8 0x820
358#define AM335X_CONF_GPMC_AD9 0x824
359#define AM335X_CONF_GPMC_AD10 0x828
360#define AM335X_CONF_GPMC_AD11 0x82C
361#define AM335X_CONF_GPMC_AD12 0x830
362#define AM335X_CONF_GPMC_AD13 0x834
363#define AM335X_CONF_GPMC_AD14 0x838
364#define AM335X_CONF_GPMC_AD15 0x83C
365#define AM335X_CONF_GPMC_A0 0x840
366#define AM335X_CONF_GPMC_A1 0x844
367#define AM335X_CONF_GPMC_A2 0x848
368#define AM335X_CONF_GPMC_A3 0x84C
369#define AM335X_CONF_GPMC_A4 0x850
370#define AM335X_CONF_GPMC_A5 0x854
371#define AM335X_CONF_GPMC_A6 0x858
372#define AM335X_CONF_GPMC_A7 0x85C
373#define AM335X_CONF_GPMC_A8 0x860
374#define AM335X_CONF_GPMC_A9 0x864
375#define AM335X_CONF_GPMC_A10 0x868
376#define AM335X_CONF_GPMC_A11 0x86C
377#define AM335X_CONF_GPMC_WAIT0 0x870
378#define AM335X_CONF_GPMC_WPN 0x874
379#define AM335X_CONF_GPMC_BEN1 0x878
380#define AM335X_CONF_GPMC_CSN0 0x87C
381#define AM335X_CONF_GPMC_CSN1 0x880
382#define AM335X_CONF_GPMC_CSN2 0x884
383#define AM335X_CONF_GPMC_CSN3 0x888
384#define AM335X_CONF_GPMC_CLK 0x88C
385#define AM335X_CONF_GPMC_ADVN_ALE 0x890
386#define AM335X_CONF_GPMC_OEN_REN 0x894
387#define AM335X_CONF_GPMC_WEN 0x898
388#define AM335X_CONF_GPMC_BEN0_CLE 0x89C
389#define AM335X_CONF_LCD_DATA0 0x8A0
390#define AM335X_CONF_LCD_DATA1 0x8A4
391#define AM335X_CONF_LCD_DATA2 0x8A8
392#define AM335X_CONF_LCD_DATA3 0x8AC
393#define AM335X_CONF_LCD_DATA4 0x8B0
394#define AM335X_CONF_LCD_DATA5 0x8B4
395#define AM335X_CONF_LCD_DATA6 0x8B8
396#define AM335X_CONF_LCD_DATA7 0x8BC
397#define AM335X_CONF_LCD_DATA8 0x8C0
398#define AM335X_CONF_LCD_DATA9 0x8C4
399#define AM335X_CONF_LCD_DATA10 0x8C8
400#define AM335X_CONF_LCD_DATA11 0x8CC
401#define AM335X_CONF_LCD_DATA12 0x8D0
402#define AM335X_CONF_LCD_DATA13 0x8D4
403#define AM335X_CONF_LCD_DATA14 0x8D8
404#define AM335X_CONF_LCD_DATA15 0x8DC
405#define AM335X_CONF_LCD_VSYNC 0x8E0
406#define AM335X_CONF_LCD_HSYNC 0x8E4
407#define AM335X_CONF_LCD_PCLK 0x8E8
408#define AM335X_CONF_LCD_AC_BIAS_EN 0x8EC
409#define AM335X_CONF_MMC0_DAT3 0x8F0
410#define AM335X_CONF_MMC0_DAT2 0x8F4
411#define AM335X_CONF_MMC0_DAT1 0x8F8
412#define AM335X_CONF_MMC0_DAT0 0x8FC
413#define AM335X_CONF_MMC0_CLK 0x900
414#define AM335X_CONF_MMC0_CMD 0x904
415#define AM335X_CONF_MII1_COL 0x908
416#define AM335X_CONF_MII1_CRS 0x90C
417#define AM335X_CONF_MII1_RX_ER 0x910
418#define AM335X_CONF_MII1_TX_EN 0x914
419#define AM335X_CONF_MII1_RX_DV 0x918
420#define AM335X_CONF_MII1_TXD3 0x91C
421#define AM335X_CONF_MII1_TXD2 0x920
422#define AM335X_CONF_MII1_TXD1 0x924
423#define AM335X_CONF_MII1_TXD0 0x928
424#define AM335X_CONF_MII1_TX_CLK 0x92C
425#define AM335X_CONF_MII1_RX_CLK 0x930
426#define AM335X_CONF_MII1_RXD3 0x934
427#define AM335X_CONF_MII1_RXD2 0x938
428#define AM335X_CONF_MII1_RXD1 0x93C
429#define AM335X_CONF_MII1_RXD0 0x940
430#define AM335X_CONF_RMII1_REF_CLK 0x944
431#define AM335X_CONF_MDIO 0x948
432#define AM335X_CONF_MDC 0x94C
433#define AM335X_CONF_SPI0_SCLK 0x950
434#define AM335X_CONF_SPI0_D0 0x954
435#define AM335X_CONF_SPI0_D1 0x958
436#define AM335X_CONF_SPI0_CS0 0x95C
437#define AM335X_CONF_SPI0_CS1 0x960
438#define AM335X_CONF_ECAP0_IN_PWM0_OUT 0x964
439#define AM335X_CONF_UART0_CTSN 0x968
440#define AM335X_CONF_UART0_RTSN 0x96C
441#define AM335X_CONF_UART0_RXD 0x970
442#define AM335X_CONF_UART0_TXD 0x974
443#define AM335X_CONF_UART1_CTSN 0x978
444#define AM335X_CONF_UART1_RTSN 0x97C
445#define AM335X_CONF_UART1_RXD 0x980
446#define AM335X_CONF_UART1_TXD 0x984
447#define AM335X_CONF_I2C0_SDA 0x988
448#define AM335X_CONF_I2C0_SCL 0x98C
449#define AM335X_CONF_MCASP0_ACLKX 0x990
450#define AM335X_CONF_MCASP0_FSX 0x994
451#define AM335X_CONF_MCASP0_AXR0 0x998
452#define AM335X_CONF_MCASP0_AHCLKR 0x99C
453#define AM335X_CONF_MCASP0_ACLKR 0x9A0
454#define AM335X_CONF_MCASP0_FSR 0x9A4
455#define AM335X_CONF_MCASP0_AXR1 0x9A8
456#define AM335X_CONF_MCASP0_AHCLKX 0x9AC
457#define AM335X_CONF_XDMA_EVENT_INTR0 0x9B0
458#define AM335X_CONF_XDMA_EVENT_INTR1 0x9B4
459#define AM335X_CONF_WARMRSTN 0x9B8
460#define AM335X_CONF_NNMI 0x9C0
461#define AM335X_CONF_TMS 0x9D0
462#define AM335X_CONF_TDI 0x9D4
463#define AM335X_CONF_TDO 0x9D8
464#define AM335X_CONF_TCK 0x9DC
465#define AM335X_CONF_TRSTN 0x9E0
466#define AM335X_CONF_EMU0 0x9E4
467#define AM335X_CONF_EMU1 0x9E8
468#define AM335X_CONF_RTC_PWRONRSTN 0x9F8
469#define AM335X_CONF_PMIC_POWER_EN 0x9FC
470#define AM335X_CONF_EXT_WAKEUP 0xA00
471#define AM335X_CONF_RTC_KALDO_ENN 0xA04
472#define AM335X_CONF_USB0_DRVVBUS 0xA1C
[5e3096db]473#define AM335X_CONF_USB1_DRVVBUS 0xA34
474
475/* Registers for PWM Subsystem */
476#define AM335X_PWMSS_CTRL      (0x664)
477#define AM335X_CM_PER_EPWMSS0_CLKCTRL    (0xD4)
478#define AM335X_CM_PER_EPWMSS1_CLKCTRL    (0xCC)
479#define AM335X_CM_PER_EPWMSS2_CLKCTRL    (0xD8)
480#define AM335X_CONTROL_MODULE      (0x44e10000)
481#define AM335X_CM_PER_ADDR     (0x44e00000)
482#define AM335X_PWMSS_CLKSTATUS         (0xC)
483#define AM335X_PWMSS0_MMAP_ADDR        0x48300000
484#define AM335X_PWMSS1_MMAP_ADDR        0x48302000
485#define AM335X_PWMSS2_MMAP_ADDR        0x48304000
486#define AM335X_PWMSS_MMAP_LEN          0x1000
487#define AM335X_PWMSS_IDVER         0x0
488#define AM335X_PWMSS_SYSCONFIG     0x4
489#define AM335X_PWMSS_CLKCONFIG     0x8
490#define AM335X_PWMSS_CLK_EN_ACK        0x100
491#define AM335X_EPWM_TBCTL          0x0
492#define AM335X_EPWM_TBSTS          0x2
493#define AM335X_EPWM_TBPHSHR        0x4
494#define AM335X_EPWM_TBPHS          0x6
495#define AM335X_EPWM_TBCNT          0x8
496#define AM335X_EPWM_TBPRD          0xA
497#define AM335X_EPWM_CMPCTL         0xE
498#define AM335X_EPWM_CMPAHR         0x10
499#define AM335X_EPWM_CMPA           0x12
500#define AM335X_EPWM_CMPB           0x14
501#define AM335X_EPWM_AQCTLA         0x16
502#define AM335X_EPWM_AQCTLB         0x18
503#define AM335X_EPWM_AQSFRC         0x1A
504#define AM335X_EPWM_AQCSFRC        0x1C
505#define AM335X_EPWM_DBCTL          0x1E
506#define AM335X_EPWM_DBRED          0x20
507#define AM335X_EPWM_DBFED          0x22
508#define AM335X_TBCTL_CTRMODE_UP        0x0
509#define AM335X_TBCTL_CTRMODE_DOWN      0x1
510#define AM335X_TBCTL_CTRMODE_UPDOWN    0x2
511#define AM335X_TBCTL_CTRMODE_FREEZE    0x3
512#define AM335X_EPWM_AQCTLA_ZRO_XALOW         (0x0001u)
513#define AM335X_EPWM_AQCTLA_ZRO_XAHIGH        (0x0002u)
514#define AM335X_EPWM_AQCTLA_CAU_EPWMXATOGGLE   (0x0003u)
515#define AM335X_EPWM_AQCTLA_CAU_SHIFT          (0x0004u)
516#define AM335X_EPWM_AQCTLA_ZRO_XBLOW         (0x0001u)
517#define AM335X_EPWM_AQCTLB_ZRO_XBHIGH        (0x0002u)
518#define AM335X_EPWM_AQCTLB_CBU_EPWMXBTOGGLE   (0x0003u)
519#define AM335X_EPWM_AQCTLB_CBU_SHIFT          (0x0008u)
520#define AM335X_EPWM_TBCTL_CTRMODE_STOPFREEZE  (0x0003u)
521#define AM335X_PWMSS_CTRL_PWMSS0_TBCLKEN      (0x00000001u)
522#define AM335X_PWMSS_CTRL_PWMSS1_TBCLKEN      (0x00000002u)
523#define AM335X_PWMSS_CTRL_PWMSS2_TBCLKEN      (0x00000004u)
524#define AM335X_CM_PER_EPWMSS0_CLKCTRL_MODULEMODE_ENABLE   (0x2u)
525#define AM335X_CM_PER_EPWMSS1_CLKCTRL_MODULEMODE_ENABLE   (0x2u)
526#define AM335X_CM_PER_EPWMSS2_CLKCTRL_MODULEMODE_ENABLE   (0x2u)
527#define AM335X_TBCTL_CLKDIV_MASK              (3 << 10)
528#define AM335X_TBCTL_HSPCLKDIV_MASK           (3 << 7)
529#define AM335X_EPWM_TBCTL_CLKDIV              (0x1C00u)
530#define AM335X_EPWM_TBCTL_CLKDIV_SHIFT        (0x000Au)
531#define AM335X_EPWM_TBCTL_HSPCLKDIV           (0x0380u)
532#define AM335X_EPWM_TBCTL_HSPCLKDIV_SHIFT     (0x0007u)
533#define AM335X_EPWM_TBCTL_PRDLD               (0x0008u)
534#define AM335X_EPWM_PRD_LOAD_SHADOW_MASK      AM335X_EPWM_TBCTL_PRDLD
535#define AM335X_EPWM_SHADOW_WRITE_ENABLE       0x0
536#define AM335X_EPWM_SHADOW_WRITE_DISABLE      0x1
537#define AM335X_EPWM_TBCTL_PRDLD_SHIFT         (0x0003u)
538#define AM335X_EPWM_TBCTL_CTRMODE             (0x0003u)
539#define AM335X_EPWM_COUNTER_MODE_MASK         AM335X_EPWM_TBCTL_CTRMODE
540#define AM335X_TBCTL_FREERUN                  (2 << 14)
541#define AM335X_TBCTL_CTRMODE_SHIFT            (0x0000u)
542#define AM335X_EPWM_COUNT_UP                  (AM335X_TBCTL_CTRMODE_UP << \
543                                                     AM335X_TBCTL_CTRMODE_SHIFT)
544
545#define AM335X_EPWM_REGS                       (0x00000200)
546#define AM335X_EPWM_0_REGS                     (AM335X_PWMSS0_MMAP_ADDR + AM335X_EPWM_REGS)
547#define AM335X_EPWM_1_REGS                     (AM335X_PWMSS1_MMAP_ADDR + AM335X_EPWM_REGS)
548#define AM335X_EPWM_2_REGS                     (AM335X_PWMSS2_MMAP_ADDR + AM335X_EPWM_REGS)
549
550#define AM335X_CM_PER_EPWMSS0_CLKCTRL_MODULEMODE   (0x00000003u)
551#define AM335X_CM_PER_EPWMSS0_CLKCTRL_IDLEST_FUNC  (0x0u)
552#define AM335X_CM_PER_EPWMSS0_CLKCTRL_IDLEST_SHIFT (0x00000010u)
553#define AM335X_CM_PER_EPWMSS0_CLKCTRL_IDLEST       (0x00030000u)
554
555#define AM335X_CM_PER_EPWMSS1_CLKCTRL_MODULEMODE   (0x00000003u)
556#define AM335X_CM_PER_EPWMSS1_CLKCTRL_IDLEST       (0x00030000u)
557#define AM335X_CM_PER_EPWMSS1_CLKCTRL_IDLEST_FUNC  (0x0u)
558#define AM335X_CM_PER_EPWMSS1_CLKCTRL_IDLEST_SHIFT (0x00000010u)
559
560#define AM335X_CM_PER_EPWMSS2_CLKCTRL_MODULEMODE   (0x00000003u)
561#define AM335X_CM_PER_EPWMSS2_CLKCTRL_IDLEST_FUNC  (0x0u)
562#define AM335X_CM_PER_EPWMSS2_CLKCTRL_IDLEST_SHIFT (0x00000010u)
563#define AM335X_CM_PER_EPWMSS2_CLKCTRL_IDLEST       (0x00030000u)
564
565
566
[8f550d2]567/* I2C registers */
568#define AM335X_I2C0_BASE 0x44e0b000
569    /* I2C0 base address */
570#define AM335X_I2C1_BASE 0x4802a000
571    /* I2C1 base address */
572#define AM335X_I2C2_BASE 0x4819c000
573    /* I2C2 base address */
574#define AM335X_I2C_REVNB_LO        0x00
575    /* Module Revision Register (low bytes) */
576#define AM335X_I2C_REVNB_HI        0x04
577    /* Module Revision Register (high bytes) */
578#define AM335X_I2C_SYSC            0x10
579    /* System Configuration Register */
580#define AM335X_I2C_IRQSTATUS_RAW   0x24
581    /* I2C Status Raw Register */
582#define AM335X_I2C_IRQSTATUS       0x28
583    /* I2C Status Register */
584#define AM335X_I2C_IRQENABLE_SET   0x2c
585    /* I2C Interrupt Enable Set Register */
586#define AM335X_I2C_IRQENABLE_CLR   0x30
587    /* I2C Interrupt Enable Clear Register */
588#define AM335X_I2C_WE              0x34
589    /* I2C Wakeup Enable Register */
590#define AM335X_I2C_DMARXENABLE_SET 0x38
591    /* Receive DMA Enable Set Register */
592#define AM335X_I2C_DMATXENABLE_SET 0x3c
593    /* Transmit DMA Enable Set Register */
594#define AM335X_I2C_DMARXENABLE_CLR 0x40
595    /* Receive DMA Enable Clear Register */
596#define AM335X_I2C_DMATXENABLE_CLR 0x44
597    /* Transmit DMA Enable Clear Register */
598#define AM335X_I2C_DMARXWAKE_EN    0x48
599    /* Receive DMA Wakeup Register */
600#define AM335X_I2C_DMATXWAKE_EN    0x4c
601    /* Transmit DMA Wakeup Register */
602#define AM335X_I2C_SYSS            0x90
603    /* System Status Register */
604#define AM335X_I2C_BUF             0x94
605    /* Buffer Configuration Register */
606#define AM335X_I2C_CNT             0x98
607    /* Data Counter Register */
608#define AM335X_I2C_DATA            0x9c
609    /* Data Access Register */
610#define AM335X_I2C_CON             0xa4
611    /* I2C Configuration Register */
612#define AM335X_I2C_OA              0xa8
613    /* I2C Own Address Register */
614#define AM335X_I2C_SA              0xac
615    /* I2C Slave Address Register */
616#define AM335X_I2C_PSC             0xb0
617    /* I2C Clock Prescaler Register */
618#define AM335X_I2C_SCLL            0xb4
619    /* I2C SCL Low Time Register */
620#define AM335X_I2C_SCLH            0xb8
621    /* I2C SCL High Time Register */
622#define AM335X_I2C_SYSTEST         0xbc
623    /* System Test Register */
624#define AM335X_I2C_BUFSTAT         0xc0
625    /* I2C Buffer Status Register */
626#define AM335X_I2C_OA1             0xc4
627    /* I2C Own Address 1 Register */
628#define AM335X_I2C_OA2             0xc8
629    /* I2C Own Address 2 Register */
630#define AM335X_I2C_OA3             0xcc
631    /* I2C Own Address 3 Register */
632#define AM335X_I2C_ACTOA           0xd0
633    /* Active Own Address Register */
634#define AM335X_I2C_SBLOCK          0xd4
635    /* I2C Clock Blocking Enable Register */
636
637#define AM335X_CM_PER_L4LS_CLKSTCTRL  (0x0)
638#define AM335X_CM_PER_L4LS_CLKSTCTRL_CLKTRCTRL_SW_WKUP  (0x2u)
639#define AM335X_CM_PER_L4LS_CLKSTCTRL_CLKTRCTRL  (0x00000003u)
640#define AM335X_CM_PER_L4LS_CLKCTRL  (0x60)
641#define AM335X_CM_PER_L4LS_CLKCTRL_MODULEMODE_ENABLE  (0x2u)
642#define AM335X_CM_PER_L4LS_CLKCTRL_MODULEMODE  (0x00000003u)
643#define AM335X_CM_PER_I2C1_CLKCTRL  (0x48)
644#define AM335X_CM_PER_I2C1_CLKCTRL_MODULEMODE_ENABLE  (0x2u)
645#define AM335X_CM_PER_I2C1_CLKCTRL_MODULEMODE  (0x00000003u)
646#define AM335X_CM_PER_I2C2_CLKCTRL (0x44)
647#define AM335X_CM_PER_I2C2_CLKCTRL_MODULEMODE_ENABLE  (0x2u)
648#define AM335X_CM_PER_I2C2_CLKCTRL_MODULEMODE  (0x00000003u)
649#define AM335X_CM_PER_L4LS_CLKSTCTRL_CLKACTIVITY_L4LS_GCLK (0x00000100u)
650#define AM335X_CM_PER_L4LS_CLKSTCTRL_CLKACTIVITY_I2C_FCLK (0x01000000u)
651#define AM335X_CM_PER_I2C1_CLKCTRL_MODULEMODE   (0x00000003u)
652#define AM335X_I2C_CON_XSA  (0x00000100u)
653#define AM335X_I2C_CFG_10BIT_SLAVE_ADDR  AM335X_I2C_CON_XSA
654#define AM335X_I2C_CON_XSA_SHIFT  (0x00000008u)
655#define AM335X_I2C_CFG_7BIT_SLAVE_ADDR  (0 << AM335X_I2C_CON_XSA_SHIFT)
656#define AM335X_I2C_CON_I2C_EN   (0x00008000u)
657#define AM335X_I2C_CON_TRX   (0x00000200u)
658#define AM335X_I2C_CON_MST   (0x00000400u)
659#define AM335X_I2C_CON_STB   (0x00000800u)
660#define AM335X_I2C_SYSC_AUTOIDLE   (0x00000001u)
661
662/*I2C0 module clock registers*/
663
664#define AM335X_CM_WKUP_CONTROL_CLKCTRL   (0x4)
665#define AM335X_CM_WKUP_CLKSTCTRL   (0x0)
666#define AM335X_CM_WKUP_I2C0_CLKCTRL   (0xb8)
667#define AM335X_CM_WKUP_I2C0_CLKCTRL_MODULEMODE_ENABLE   (0x2u)
668#define AM335X_CM_WKUP_I2C0_CLKCTRL_MODULEMODE   (0x00000003u)
669#define AM335X_CM_WKUP_CONTROL_CLKCTRL_IDLEST_FUNC   (0x0u)
670#define AM335X_CM_WKUP_CONTROL_CLKCTRL_IDLEST_SHIFT   (0x00000010u)
671#define AM335X_CM_WKUP_CONTROL_CLKCTRL_IDLEST   (0x00030000u)
672#define AM335X_CM_WKUP_CLKSTCTRL_CLKACTIVITY_I2C0_GFCLK   (0x00000800u)
673#define AM335X_CM_WKUP_I2C0_CLKCTRL_IDLEST_FUNC   (0x0u)
674#define AM335X_CM_WKUP_I2C0_CLKCTRL_IDLEST_SHIFT   (0x00000010u)
675#define AM335X_CM_WKUP_I2C0_CLKCTRL_IDLEST   (0x00030000u)
676#define AM335X_SOC_CM_WKUP_REGS                     (AM335X_CM_PER_ADDR + 0x400)
677
678/* I2C status Register */
679#define AM335X_I2C_IRQSTATUS_NACK (1 << 1)
680#define AM335X_I2C_IRQSTATUS_ROVR (1 << 11)
681#define AM335X_I2C_IRQSTATUS_AL   (1<<0)
682#define AM335X_I2C_IRQSTATUS_ARDY (1 << 2)
683#define AM335X_I2C_IRQSTATUS_RRDY (1 << 3)
684#define AM335X_I2C_IRQSTATUS_XRDY (1 << 4)
685#define AM335X_I2C_IRQSTATUS_XUDF (1 << 10)
686#define AM335X_I2C_BUF_TXFIFO_CLR   (0x00000040u)
687#define AM335X_I2C_BUF_RXFIFO_CLR   (0x00004000u)
688#define AM335X_I2C_IRQSTATUS_AAS  (1 << 9)
689#define AM335X_I2C_IRQSTATUS_BF  (1 << 8)
690#define AM335X_I2C_IRQSTATUS_STC  (1 << 6)
691#define AM335X_I2C_IRQSTATUS_GC (1 << 5)
692#define AM335X_I2C_IRQSTATUS_XDR (1 << 14)
693#define AM335X_I2C_IRQSTATUS_RDR (1 << 13)
694
695#define AM335X_I2C_INT_RECV_READY AM335X_I2C_IRQSTATUS_RRDY
696#define AM335X_I2C_CON_STOP  (0x00000002u)
697#define AM335X_I2C_CON_START (0x00000001u)
698#define AM335X_I2C_CFG_MST_RX AM335X_I2C_CON_MST
699#define AM335X_I2C_CFG_MST_TX  (AM335X_I2C_CON_TRX | AM335X_I2C_CON_MST)
700#define AM335X_I2C_IRQSTATUS_RAW_BB   (0x00001000u)
701#define AM335X_CM_PER_OCPWP_L3_CLKSTCTRL_CLKACTIVITY_OCPWP_L4_GCLK (0x00000020u)
702#define AM335X_I2C_INT_STOP_CONDITION AM335X_I2C_IRQSTATUS_BF
[e806b731]703
704#endif
Note: See TracBrowser for help on using the repository browser.