162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * omap_hwmod common data structures
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (C) 2010 Texas Instruments, Inc.
662306a36Sopenharmony_ci * Thara Gopinath <thara@ti.com>
762306a36Sopenharmony_ci * Benoît Cousson
862306a36Sopenharmony_ci *
962306a36Sopenharmony_ci * Copyright (C) 2010 Nokia Corporation
1062306a36Sopenharmony_ci * Paul Walmsley
1162306a36Sopenharmony_ci *
1262306a36Sopenharmony_ci * This data/structures are to be used while defining OMAP on-chip module
1362306a36Sopenharmony_ci * data and their integration with other OMAP modules and Linux.
1462306a36Sopenharmony_ci */
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci#include <linux/types.h>
1762306a36Sopenharmony_ci#include <linux/platform_data/ti-sysc.h>
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci#include "omap_hwmod.h"
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci#include "omap_hwmod_common_data.h"
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci/**
2462306a36Sopenharmony_ci * struct omap_hwmod_sysc_type1 - TYPE1 sysconfig scheme.
2562306a36Sopenharmony_ci *
2662306a36Sopenharmony_ci * To be used by hwmod structure to specify the sysconfig offsets
2762306a36Sopenharmony_ci * if the device ip is compliant with the original PRCM protocol
2862306a36Sopenharmony_ci * defined for OMAP2420.
2962306a36Sopenharmony_ci */
3062306a36Sopenharmony_cistruct sysc_regbits omap_hwmod_sysc_type1 = {
3162306a36Sopenharmony_ci	.midle_shift	= SYSC_TYPE1_MIDLEMODE_SHIFT,
3262306a36Sopenharmony_ci	.clkact_shift	= SYSC_TYPE1_CLOCKACTIVITY_SHIFT,
3362306a36Sopenharmony_ci	.sidle_shift	= SYSC_TYPE1_SIDLEMODE_SHIFT,
3462306a36Sopenharmony_ci	.enwkup_shift	= SYSC_TYPE1_ENAWAKEUP_SHIFT,
3562306a36Sopenharmony_ci	.srst_shift	= SYSC_TYPE1_SOFTRESET_SHIFT,
3662306a36Sopenharmony_ci	.autoidle_shift	= SYSC_TYPE1_AUTOIDLE_SHIFT,
3762306a36Sopenharmony_ci};
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci/**
4062306a36Sopenharmony_ci * struct omap_hwmod_sysc_type2 - TYPE2 sysconfig scheme.
4162306a36Sopenharmony_ci *
4262306a36Sopenharmony_ci * To be used by hwmod structure to specify the sysconfig offsets if the
4362306a36Sopenharmony_ci * device ip is compliant with the new PRCM protocol defined for new
4462306a36Sopenharmony_ci * OMAP4 IPs.
4562306a36Sopenharmony_ci */
4662306a36Sopenharmony_cistruct sysc_regbits omap_hwmod_sysc_type2 = {
4762306a36Sopenharmony_ci	.midle_shift	= SYSC_TYPE2_MIDLEMODE_SHIFT,
4862306a36Sopenharmony_ci	.sidle_shift	= SYSC_TYPE2_SIDLEMODE_SHIFT,
4962306a36Sopenharmony_ci	.srst_shift	= SYSC_TYPE2_SOFTRESET_SHIFT,
5062306a36Sopenharmony_ci	.dmadisable_shift = SYSC_TYPE2_DMADISABLE_SHIFT,
5162306a36Sopenharmony_ci};
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci/**
5462306a36Sopenharmony_ci * struct omap_hwmod_sysc_type3 - TYPE3 sysconfig scheme.
5562306a36Sopenharmony_ci * Used by some IPs on AM33xx
5662306a36Sopenharmony_ci */
5762306a36Sopenharmony_cistruct sysc_regbits omap_hwmod_sysc_type3 = {
5862306a36Sopenharmony_ci	.midle_shift	= SYSC_TYPE3_MIDLEMODE_SHIFT,
5962306a36Sopenharmony_ci	.sidle_shift	= SYSC_TYPE3_SIDLEMODE_SHIFT,
6062306a36Sopenharmony_ci};
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_cistruct omap_dss_dispc_dev_attr omap2_3_dss_dispc_dev_attr = {
6362306a36Sopenharmony_ci	.manager_count		= 2,
6462306a36Sopenharmony_ci	.has_framedonetv_irq	= 0
6562306a36Sopenharmony_ci};
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_cistruct sysc_regbits omap34xx_sr_sysc_fields = {
6862306a36Sopenharmony_ci	.clkact_shift	= 20,
6962306a36Sopenharmony_ci};
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_cistruct sysc_regbits omap36xx_sr_sysc_fields = {
7262306a36Sopenharmony_ci	.sidle_shift	= 24,
7362306a36Sopenharmony_ci	.enwkup_shift	= 26,
7462306a36Sopenharmony_ci};
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_cistruct sysc_regbits omap3_sham_sysc_fields = {
7762306a36Sopenharmony_ci	.sidle_shift	= 4,
7862306a36Sopenharmony_ci	.srst_shift	= 1,
7962306a36Sopenharmony_ci	.autoidle_shift	= 0,
8062306a36Sopenharmony_ci};
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_cistruct sysc_regbits omap3xxx_aes_sysc_fields = {
8362306a36Sopenharmony_ci	.sidle_shift	= 6,
8462306a36Sopenharmony_ci	.srst_shift	= 1,
8562306a36Sopenharmony_ci	.autoidle_shift	= 0,
8662306a36Sopenharmony_ci};
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_cistruct sysc_regbits omap_hwmod_sysc_type_mcasp = {
8962306a36Sopenharmony_ci	.sidle_shift	= 0,
9062306a36Sopenharmony_ci};
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_cistruct sysc_regbits omap_hwmod_sysc_type_usb_host_fs = {
9362306a36Sopenharmony_ci	.midle_shift	= 4,
9462306a36Sopenharmony_ci	.sidle_shift	= 2,
9562306a36Sopenharmony_ci	.srst_shift	= 1,
9662306a36Sopenharmony_ci};
97