hc
2023-11-22 f743a7adbd6e230d66a6206fa115b59fec2d88eb
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
/*
 * Copyright (C) 2011
 * Heiko Schocher, DENX Software Engineering, hs@denx.de.
 *
 * SPDX-License-Identifier:    GPL-2.0+
 */
#ifndef _DV_PSC_DEFS_H_
#define _DV_PSC_DEFS_H_
 
/*
 * Power/Sleep Ctrl Register structure
 * See sprufb3.pdf, Chapter 7
 */
struct dv_psc_regs {
   unsigned int    pid;        /* 0x000 */
   unsigned char    rsvd0[16];    /* 0x004 */
   unsigned char    rsvd1[4];    /* 0x014 */
   unsigned int    inteval;    /* 0x018 */
   unsigned char    rsvd2[36];    /* 0x01C */
   unsigned int    merrpr0;    /* 0x040 */
   unsigned int    merrpr1;    /* 0x044 */
   unsigned char    rsvd3[8];    /* 0x048 */
   unsigned int    merrcr0;    /* 0x050 */
   unsigned int    merrcr1;    /* 0x054 */
   unsigned char    rsvd4[8];    /* 0x058 */
   unsigned int    perrpr;        /* 0x060 */
   unsigned char    rsvd5[4];    /* 0x064 */
   unsigned int    perrcr;        /* 0x068 */
   unsigned char    rsvd6[4];    /* 0x06C */
   unsigned int    epcpr;        /* 0x070 */
   unsigned char    rsvd7[4];    /* 0x074 */
   unsigned int    epccr;        /* 0x078 */
   unsigned char    rsvd8[144];    /* 0x07C */
   unsigned char    rsvd9[20];    /* 0x10C */
   unsigned int    ptcmd;        /* 0x120 */
   unsigned char    rsvd10[4];    /* 0x124 */
   unsigned int    ptstat;        /* 0x128 */
   unsigned char    rsvd11[212];    /* 0x12C */
   unsigned int    pdstat0;    /* 0x200 */
   unsigned int    pdstat1;    /* 0x204 */
   unsigned char    rsvd12[248];    /* 0x208 */
   unsigned int    pdctl0;        /* 0x300 */
   unsigned int    pdctl1;        /* 0x304 */
   unsigned char    rsvd13[536];    /* 0x308 */
   unsigned int    mckout0;    /* 0x520 */
   unsigned int    mckout1;    /* 0x524 */
   unsigned char    rsvd14[728];    /* 0x528 */
   unsigned int    mdstat[52];    /* 0x800 */
   unsigned char    rsvd15[304];    /* 0x8D0 */
   unsigned int    mdctl[52];    /* 0xA00 */
};
 
/* PSC constants */
#define EMURSTIE_MASK    (0x00000200)
 
#define PD0        (0)
 
#define PSC_ENABLE        (0x3)
#define PSC_DISABLE        (0x2)
#define PSC_SYNCRESET        (0x1)
#define PSC_SWRSTDISABLE    (0x0)
 
#define PSC_GOSTAT        (1 << 0)
#define PSC_MD_STATE_MSK    (0x1f)
 
#define PSC_CMD_GO        (1 << 0)
 
#define dv_psc_regs ((struct dv_psc_regs *)DAVINCI_PWR_SLEEP_CNTRL_BASE)
 
#endif /* _DV_PSC_DEFS_H_ */