summaryrefslogtreecommitdiff
path: root/docs/marvell/misc/mvebu-ccu.txt
blob: c8b5df5d78581bfac659b01fc8dd0ac6f1d2cc88 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Marvell CCU address decoding bindings
=====================================

The CCU node includes a description of the address decoding configuration.

Mandatory functions:
	- marvell_get_ccu_reg_offs
		returns the base address of the CCU unit
	- marvell_get_ccu_max_win
		returns the number of the max mbus windows
	- marvell_get_ccu_memory_map
		return the CCU windows configuration and the number of windows

Mandatory structures:
	ccu_memory_map - Array that includes the configuration of the windows
	  every window/entry is a struct which has 5 parameters:
	  - High base address of the window
	  - Low base address of the window
	  - High size of the window
	  - Low size of the window
	  - Target-ID of the window

Note: if the base address is more than 32 bits, it should be divided into high and low.
	The same goes for the Size field. If it is larger than 32 bits, it is divided into
	high and low.
	Base example:
		base address: 0x10f0000000 should be divided into:
		base address high: 0x10
		base address low: 0xf0000000
	Size example:
		size: 0x1E00F00000 should be divided into:
		size high: 0x1E
		size low: 0x00F00000

Example:
	struct ccu_win ccu_memory_map[] = {
		{0x0,   0xf2000000,     0x0,    0xe000000,      IO_0_TID}, /* IO window */
	};