18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * omap_hwmod common data structures
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Copyright (C) 2010 Texas Instruments, Inc.
68c2ecf20Sopenharmony_ci * Thara Gopinath <thara@ti.com>
78c2ecf20Sopenharmony_ci * Benoît Cousson
88c2ecf20Sopenharmony_ci *
98c2ecf20Sopenharmony_ci * Copyright (C) 2010 Nokia Corporation
108c2ecf20Sopenharmony_ci * Paul Walmsley
118c2ecf20Sopenharmony_ci *
128c2ecf20Sopenharmony_ci * This data/structures are to be used while defining OMAP on-chip module
138c2ecf20Sopenharmony_ci * data and their integration with other OMAP modules and Linux.
148c2ecf20Sopenharmony_ci */
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci#include <linux/types.h>
178c2ecf20Sopenharmony_ci#include <linux/platform_data/ti-sysc.h>
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci#include "omap_hwmod.h"
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci#include "omap_hwmod_common_data.h"
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci/**
248c2ecf20Sopenharmony_ci * struct omap_hwmod_sysc_type1 - TYPE1 sysconfig scheme.
258c2ecf20Sopenharmony_ci *
268c2ecf20Sopenharmony_ci * To be used by hwmod structure to specify the sysconfig offsets
278c2ecf20Sopenharmony_ci * if the device ip is compliant with the original PRCM protocol
288c2ecf20Sopenharmony_ci * defined for OMAP2420.
298c2ecf20Sopenharmony_ci */
308c2ecf20Sopenharmony_cistruct sysc_regbits omap_hwmod_sysc_type1 = {
318c2ecf20Sopenharmony_ci	.midle_shift	= SYSC_TYPE1_MIDLEMODE_SHIFT,
328c2ecf20Sopenharmony_ci	.clkact_shift	= SYSC_TYPE1_CLOCKACTIVITY_SHIFT,
338c2ecf20Sopenharmony_ci	.sidle_shift	= SYSC_TYPE1_SIDLEMODE_SHIFT,
348c2ecf20Sopenharmony_ci	.enwkup_shift	= SYSC_TYPE1_ENAWAKEUP_SHIFT,
358c2ecf20Sopenharmony_ci	.srst_shift	= SYSC_TYPE1_SOFTRESET_SHIFT,
368c2ecf20Sopenharmony_ci	.autoidle_shift	= SYSC_TYPE1_AUTOIDLE_SHIFT,
378c2ecf20Sopenharmony_ci};
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci/**
408c2ecf20Sopenharmony_ci * struct omap_hwmod_sysc_type2 - TYPE2 sysconfig scheme.
418c2ecf20Sopenharmony_ci *
428c2ecf20Sopenharmony_ci * To be used by hwmod structure to specify the sysconfig offsets if the
438c2ecf20Sopenharmony_ci * device ip is compliant with the new PRCM protocol defined for new
448c2ecf20Sopenharmony_ci * OMAP4 IPs.
458c2ecf20Sopenharmony_ci */
468c2ecf20Sopenharmony_cistruct sysc_regbits omap_hwmod_sysc_type2 = {
478c2ecf20Sopenharmony_ci	.midle_shift	= SYSC_TYPE2_MIDLEMODE_SHIFT,
488c2ecf20Sopenharmony_ci	.sidle_shift	= SYSC_TYPE2_SIDLEMODE_SHIFT,
498c2ecf20Sopenharmony_ci	.srst_shift	= SYSC_TYPE2_SOFTRESET_SHIFT,
508c2ecf20Sopenharmony_ci	.dmadisable_shift = SYSC_TYPE2_DMADISABLE_SHIFT,
518c2ecf20Sopenharmony_ci};
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci/**
548c2ecf20Sopenharmony_ci * struct omap_hwmod_sysc_type3 - TYPE3 sysconfig scheme.
558c2ecf20Sopenharmony_ci * Used by some IPs on AM33xx
568c2ecf20Sopenharmony_ci */
578c2ecf20Sopenharmony_cistruct sysc_regbits omap_hwmod_sysc_type3 = {
588c2ecf20Sopenharmony_ci	.midle_shift	= SYSC_TYPE3_MIDLEMODE_SHIFT,
598c2ecf20Sopenharmony_ci	.sidle_shift	= SYSC_TYPE3_SIDLEMODE_SHIFT,
608c2ecf20Sopenharmony_ci};
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_cistruct omap_dss_dispc_dev_attr omap2_3_dss_dispc_dev_attr = {
638c2ecf20Sopenharmony_ci	.manager_count		= 2,
648c2ecf20Sopenharmony_ci	.has_framedonetv_irq	= 0
658c2ecf20Sopenharmony_ci};
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_cistruct sysc_regbits omap34xx_sr_sysc_fields = {
688c2ecf20Sopenharmony_ci	.clkact_shift	= 20,
698c2ecf20Sopenharmony_ci};
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_cistruct sysc_regbits omap36xx_sr_sysc_fields = {
728c2ecf20Sopenharmony_ci	.sidle_shift	= 24,
738c2ecf20Sopenharmony_ci	.enwkup_shift	= 26,
748c2ecf20Sopenharmony_ci};
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_cistruct sysc_regbits omap3_sham_sysc_fields = {
778c2ecf20Sopenharmony_ci	.sidle_shift	= 4,
788c2ecf20Sopenharmony_ci	.srst_shift	= 1,
798c2ecf20Sopenharmony_ci	.autoidle_shift	= 0,
808c2ecf20Sopenharmony_ci};
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_cistruct sysc_regbits omap3xxx_aes_sysc_fields = {
838c2ecf20Sopenharmony_ci	.sidle_shift	= 6,
848c2ecf20Sopenharmony_ci	.srst_shift	= 1,
858c2ecf20Sopenharmony_ci	.autoidle_shift	= 0,
868c2ecf20Sopenharmony_ci};
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_cistruct sysc_regbits omap_hwmod_sysc_type_mcasp = {
898c2ecf20Sopenharmony_ci	.sidle_shift	= 0,
908c2ecf20Sopenharmony_ci};
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_cistruct sysc_regbits omap_hwmod_sysc_type_usb_host_fs = {
938c2ecf20Sopenharmony_ci	.midle_shift	= 4,
948c2ecf20Sopenharmony_ci	.sidle_shift	= 2,
958c2ecf20Sopenharmony_ci	.srst_shift	= 1,
968c2ecf20Sopenharmony_ci};
97