Merge tag 'mips_4.16_2' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/mips
[sfrench/cifs-2.6.git] / arch / arm / mach-omap2 / omap_hwmod_common_data.c
1 /*
2  * omap_hwmod common data structures
3  *
4  * Copyright (C) 2010 Texas Instruments, Inc.
5  * Thara Gopinath <thara@ti.com>
6  * BenoĆ®t Cousson
7  *
8  * Copyright (C) 2010 Nokia Corporation
9  * Paul Walmsley
10  *
11  * This program is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License version 2 as
13  * published by the Free Software Foundation.
14  *
15  * This data/structures are to be used while defining OMAP on-chip module
16  * data and their integration with other OMAP modules and Linux.
17  */
18
19 #include <linux/types.h>
20 #include <linux/platform_data/ti-sysc.h>
21
22 #include "omap_hwmod.h"
23
24 #include "omap_hwmod_common_data.h"
25
26 /**
27  * struct omap_hwmod_sysc_type1 - TYPE1 sysconfig scheme.
28  *
29  * To be used by hwmod structure to specify the sysconfig offsets
30  * if the device ip is compliant with the original PRCM protocol
31  * defined for OMAP2420.
32  */
33 struct sysc_regbits omap_hwmod_sysc_type1 = {
34         .midle_shift    = SYSC_TYPE1_MIDLEMODE_SHIFT,
35         .clkact_shift   = SYSC_TYPE1_CLOCKACTIVITY_SHIFT,
36         .sidle_shift    = SYSC_TYPE1_SIDLEMODE_SHIFT,
37         .enwkup_shift   = SYSC_TYPE1_ENAWAKEUP_SHIFT,
38         .srst_shift     = SYSC_TYPE1_SOFTRESET_SHIFT,
39         .autoidle_shift = SYSC_TYPE1_AUTOIDLE_SHIFT,
40 };
41
42 /**
43  * struct omap_hwmod_sysc_type2 - TYPE2 sysconfig scheme.
44  *
45  * To be used by hwmod structure to specify the sysconfig offsets if the
46  * device ip is compliant with the new PRCM protocol defined for new
47  * OMAP4 IPs.
48  */
49 struct sysc_regbits omap_hwmod_sysc_type2 = {
50         .midle_shift    = SYSC_TYPE2_MIDLEMODE_SHIFT,
51         .sidle_shift    = SYSC_TYPE2_SIDLEMODE_SHIFT,
52         .srst_shift     = SYSC_TYPE2_SOFTRESET_SHIFT,
53         .dmadisable_shift = SYSC_TYPE2_DMADISABLE_SHIFT,
54 };
55
56 /**
57  * struct omap_hwmod_sysc_type3 - TYPE3 sysconfig scheme.
58  * Used by some IPs on AM33xx
59  */
60 struct sysc_regbits omap_hwmod_sysc_type3 = {
61         .midle_shift    = SYSC_TYPE3_MIDLEMODE_SHIFT,
62         .sidle_shift    = SYSC_TYPE3_SIDLEMODE_SHIFT,
63 };
64
65 struct omap_dss_dispc_dev_attr omap2_3_dss_dispc_dev_attr = {
66         .manager_count          = 2,
67         .has_framedonetv_irq    = 0
68 };
69
70 struct sysc_regbits omap34xx_sr_sysc_fields = {
71         .clkact_shift   = 20,
72 };
73
74 struct sysc_regbits omap36xx_sr_sysc_fields = {
75         .sidle_shift    = 24,
76         .enwkup_shift   = 26,
77 };
78
79 struct sysc_regbits omap3_sham_sysc_fields = {
80         .sidle_shift    = 4,
81         .srst_shift     = 1,
82         .autoidle_shift = 0,
83 };
84
85 struct sysc_regbits omap3xxx_aes_sysc_fields = {
86         .sidle_shift    = 6,
87         .srst_shift     = 1,
88         .autoidle_shift = 0,
89 };
90
91 struct sysc_regbits omap_hwmod_sysc_type_mcasp = {
92         .sidle_shift    = 0,
93 };
94
95 struct sysc_regbits omap_hwmod_sysc_type_usb_host_fs = {
96         .midle_shift    = 4,
97         .sidle_shift    = 2,
98         .srst_shift     = 1,
99 };