~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm/mach-omap2/cm.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0-only */
  2 /*
  3  * OMAP2+ Clock Management prototypes
  4  *
  5  * Copyright (C) 2007-2009, 2012 Texas Instruments, Inc.
  6  * Copyright (C) 2007-2009 Nokia Corporation
  7  *
  8  * Written by Paul Walmsley
  9  */
 10 #ifndef __ARCH_ASM_MACH_OMAP2_CM_H
 11 #define __ARCH_ASM_MACH_OMAP2_CM_H
 12 
 13 /*
 14  * MAX_MODULE_READY_TIME: max duration in microseconds to wait for the
 15  * PRCM to request that a module exit the inactive state in the case of
 16  * OMAP2 & 3.
 17  * In the case of OMAP4 this is the max duration in microseconds for the
 18  * module to reach the functionnal state from an inactive state.
 19  */
 20 #define MAX_MODULE_READY_TIME           2000
 21 
 22 # ifndef __ASSEMBLER__
 23 #include <linux/clk/ti.h>
 24 
 25 #include "prcm-common.h"
 26 
 27 extern struct omap_domain_base cm_base;
 28 extern struct omap_domain_base cm2_base;
 29 # endif
 30 
 31 /*
 32  * MAX_MODULE_DISABLE_TIME: max duration in microseconds to wait for
 33  * the PRCM to request that a module enter the inactive state in the
 34  * case of OMAP2 & 3.  In the case of OMAP4 this is the max duration
 35  * in microseconds for the module to reach the inactive state from
 36  * a functional state.
 37  * XXX FSUSB on OMAP4430 takes ~4ms to idle after reset during
 38  * kernel init.
 39  */
 40 #define MAX_MODULE_DISABLE_TIME         5000
 41 
 42 # ifndef __ASSEMBLER__
 43 
 44 /**
 45  * struct cm_ll_data - fn ptrs to per-SoC CM function implementations
 46  * @split_idlest_reg: ptr to the SoC CM-specific split_idlest_reg impl
 47  * @wait_module_ready: ptr to the SoC CM-specific wait_module_ready impl
 48  * @wait_module_idle: ptr to the SoC CM-specific wait_module_idle impl
 49  * @module_enable: ptr to the SoC CM-specific module_enable impl
 50  * @module_disable: ptr to the SoC CM-specific module_disable impl
 51  * @xlate_clkctrl: ptr to the SoC CM-specific clkctrl xlate addr impl
 52  */
 53 struct cm_ll_data {
 54         int (*split_idlest_reg)(struct clk_omap_reg *idlest_reg, s16 *prcm_inst,
 55                                 u8 *idlest_reg_id);
 56         int (*wait_module_ready)(u8 part, s16 prcm_mod, u16 idlest_reg,
 57                                  u8 idlest_shift);
 58         int (*wait_module_idle)(u8 part, s16 prcm_mod, u16 idlest_reg,
 59                                 u8 idlest_shift);
 60         void (*module_enable)(u8 mode, u8 part, u16 inst, u16 clkctrl_offs);
 61         void (*module_disable)(u8 part, u16 inst, u16 clkctrl_offs);
 62         u32 (*xlate_clkctrl)(u8 part, u16 inst, u16 clkctrl_offs);
 63 };
 64 
 65 extern int cm_split_idlest_reg(struct clk_omap_reg *idlest_reg, s16 *prcm_inst,
 66                                u8 *idlest_reg_id);
 67 int omap_cm_wait_module_ready(u8 part, s16 prcm_mod, u16 idlest_reg,
 68                               u8 idlest_shift);
 69 int omap_cm_wait_module_idle(u8 part, s16 prcm_mod, u16 idlest_reg,
 70                              u8 idlest_shift);
 71 int omap_cm_module_enable(u8 mode, u8 part, u16 inst, u16 clkctrl_offs);
 72 int omap_cm_module_disable(u8 part, u16 inst, u16 clkctrl_offs);
 73 u32 omap_cm_xlate_clkctrl(u8 part, u16 inst, u16 clkctrl_offs);
 74 extern int cm_register(const struct cm_ll_data *cld);
 75 extern int cm_unregister(const struct cm_ll_data *cld);
 76 int omap_cm_init(void);
 77 int omap2_cm_base_init(void);
 78 
 79 # endif
 80 
 81 #endif
 82 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php