summaryrefslogtreecommitdiff
path: root/drivers/mfd/db5500-prcmu-regs.h
blob: e8aa290147850822524735de851e882d192d136b (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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/*
 * Copyright (C) ST-Ericsson SA 2011
 *
 * License Terms: GNU General Public License v2
 */

#ifndef __MACH_PRCMU_REGS_DB5500_H
#define __MACH_PRCMU_REGS_DB5500_H

#define BITS(_start, _end) ((BIT(_end) - BIT(_start)) + BIT(_end))

#define PRCM_TCR		0x1C8
#define PRCM_TCR_TENSEL_MASK	BITS(0, 7)
#define PRCM_TCR_STOP_TIMERS	BIT(16)
#define PRCM_TCR_DOZE_MODE	BIT(17)

/* PRCMU HW semaphore */
#define PRCM_SEM 0x400
#define PRCM_SEM_PRCM_SEM BIT(0)

#define DB5500_PRCM_ACLK_MGT		0x004
#define DB5500_PRCM_SVACLK_MGT		0x008
#define DB5500_PRCM_SIACLK_MGT		0x00C
#define DB5500_PRCM_SGACLK_MGT		0x014
#define DB5500_PRCM_UARTCLK_MGT		0x018
#define DB5500_PRCM_MSP02CLK_MGT	0x01C
#define DB5500_PRCM_I2CCLK_MGT		0x020
#define DB5500_PRCM_SDMMCCLK_MGT	0x024
#define DB5500_PRCM_PER1CLK_MGT		0x02C
#define DB5500_PRCM_PER2CLK_MGT		0x030
#define DB5500_PRCM_PER3CLK_MGT		0x034
#define DB5500_PRCM_PER5CLK_MGT		0x038
#define DB5500_PRCM_PER6CLK_MGT		0x03C
#define DB5500_PRCM_IRDACLK_MGT		0x040
#define DB5500_PRCM_PWMCLK_MGT		0x044
#define DB5500_PRCM_SPARE1CLK_MGT	0x048
#define DB5500_PRCM_IRRCCLK_MGT		0x04C
#define DB5500_PRCM_HDMICLK_MGT		0x058
#define DB5500_PRCM_APEATCLK_MGT	0x05C
#define DB5500_PRCM_APETRACECLK_MGT	0x060
#define DB5500_PRCM_MCDECLK_MGT		0x064
#define DB5500_PRCM_DSIALTCLK_MGT	0x06C
#define DB5500_PRCM_DMACLK_MGT		0x074
#define DB5500_PRCM_B2R2CLK_MGT		0x078
#define DB5500_PRCM_TVCLK_MGT		0x07C
#define DB5500_PRCM_RNGCLK_MGT		0x284

#define PRCM_CLK_MGT_CLKPLLDIV_MASK	BITS(0, 4)
#define PRCM_CLK_MGT_CLKPLLDIV_SHIFT	0
#define PRCM_CLK_MGT_CLKPLLSW_MASK	BITS(5, 7)
#define PRCM_CLK_MGT_CLKEN		BIT(8)

#define PRCM_ARM_IT1_CLEAR 0x48C
#define PRCM_ARM_IT1_VAL 0x494

/* CPU mailbox registers */
#define PRCM_MBOX_CPU_VAL 0x0FC
#define PRCM_MBOX_CPU_SET 0x100

/* System reset register */
#define PRCM_APE_SOFTRST 0x228

/* PRCMU clock/PLL/reset registers */
#define PRCM_PLLDSI_FREQ	0x500
#define PRCM_PLLDSI_ENABLE	0x504
#define PRCM_PLLDSI_LOCKP	0x508
#define PRCM_DSI_PLLOUT_SEL	0x530
#define PRCM_DSITVCLK_DIV	0x52C
#define PRCM_APE_RESETN_SET	0x1E4
#define PRCM_APE_RESETN_CLR	0x1E8

/* CLKOUTx SEL0 settings */
#define CLKOUT_SEL0_REF_CLK  0x01 /* 0b 0001 */
#define CLKOUT_SEL0_RTC_CLK0 0x02 /* 0b 0010 */
#define CLKOUT_SEL0_ULP_CLK  0x04 /* 0b 0100 */
#define CLKOUT_SEL0_SEL_CLK  0x08 /* 0b 1000 */

/* CLKOUTx SEL settings */
#define CLKOUT_SEL_STATIC0     0x0001 /* 0b 00 0000 0001 */
#define CLKOUT_SEL_REFCLK      0x0002 /* 0b 00 0000 0010 */
#define CLKOUT_SEL_ULPCLK      0x0004 /* 0b 00 0000 0100 */
#define CLKOUT_SEL_ARMCLK      0x0008 /* 0b 00 0000 1000 */
#define CLKOUT_SEL_SYSACC0CLK  0x0010 /* 0b 00 0001 0000 */
#define CLKOUT_SEL_SOC0PLLCLK  0x0020 /* 0b 00 0010 0000 */
#define CLKOUT_SEL_SOC1PLLCLK  0x0040 /* 0b 00 0100 0000 */
#define CLKOUT_SEL_DDRPLLCLK   0x0080 /* 0b 00 1000 0000 */
#define CLKOUT_SEL_TVCLK       0x0100 /* 0b 01 0000 0000 */
#define CLKOUT_SEL_IRDACLK     0x0200 /* 0b 10 0000 0000 */

/* CLKOUTx dividers */
#define CLKOUT_DIV_2   0x00 /* 0b 000 */
#define CLKOUT_DIV_4   0x01 /* 0b 001 */
#define CLKOUT_DIV_8   0x02 /* 0b 010 */
#define CLKOUT_DIV_16  0x03 /* 0b 011 */
#define CLKOUT_DIV_32  0x04 /* 0b 100 */
#define CLKOUT_DIV_64  0x05 /* 0b 101 */
/* Values 0x06 and 0x07 will also set the CLKOUTx divider to 64. */

/* PRCM_CLKOCR CLKOUTx Control registers */
#define PRCM_CLKOCR  0x1CC
#define PRCM_CLKOCR_CLKOUT0_SEL0_SHIFT  0
#define PRCM_CLKOCR_CLKOUT0_SEL0_MASK   BITS(0, 3)
#define PRCM_CLKOCR_CLKOUT0_SEL_SHIFT   4
#define PRCM_CLKOCR_CLKOUT0_SEL_MASK    BITS(4, 13)
#define PRCM_CLKOCR_CLKOUT1_SEL0_SHIFT  16
#define PRCM_CLKOCR_CLKOUT1_SEL0_MASK   BITS(16, 19)
#define PRCM_CLKOCR_CLKOUT1_SEL_SHIFT   20
#define PRCM_CLKOCR_CLKOUT1_SEL_MASK    BITS(20, 29)

/* PRCM_CLKODIV CLKOUTx Dividers */
#define PRCM_CLKODIV  0x188
#define PRCM_CLKODIV_CLKOUT0_DIV_SHIFT  0
#define PRCM_CLKODIV_CLKOUT0_DIV_MASK   BITS(0, 2)
#define PRCM_CLKODIV_CLKOUT1_DIV_SHIFT  16
#define PRCM_CLKODIV_CLKOUT1_DIV_MASK   BITS(16, 18)

#define PRCM_MMIP_LS_CLAMP_SET 0x420
#define PRCM_MMIP_LS_CLAMP_CLR 0x424
#define PRCM_DDR_SUBSYS_APE_MINBW 0x438

/* Miscellaneous unit registers */
#define PRCM_DSI_SW_RESET 0x324
#define PRCM_RESOUTN_SET_OFFSET 0x214
#define PRCM_RESOUTN_CLR_OFFSET 0x218

#endif