diff options
Diffstat (limited to 'docs/marvell/misc/mvebu-ccu.txt')
-rw-r--r-- | docs/marvell/misc/mvebu-ccu.txt | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/docs/marvell/misc/mvebu-ccu.txt b/docs/marvell/misc/mvebu-ccu.txt new file mode 100644 index 00000000..c8b5df5d --- /dev/null +++ b/docs/marvell/misc/mvebu-ccu.txt @@ -0,0 +1,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 */ + }; |