Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:52

0001 /* SPDX-License-Identifier: BSD-2-Clause */
0002 
0003 /*
0004  * RTEMS generic MPC5200 BSP.
0005  *
0006  * This file declares functions to use the slice timer module.
0007  */
0008 
0009 /*
0010  * Copyright (c) 2005 embedded brains GmbH & Co. KG
0011  *
0012  * Redistribution and use in source and binary forms, with or without
0013  * modification, are permitted provided that the following conditions
0014  * are met:
0015  * 1. Redistributions of source code must retain the above copyright
0016  *    notice, this list of conditions and the following disclaimer.
0017  * 2. Redistributions in binary form must reproduce the above copyright
0018  *    notice, this list of conditions and the following disclaimer in the
0019  *    documentation and/or other materials provided with the distribution.
0020  *
0021  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0022  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0023  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0024  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
0025  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0026  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0027  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0028  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0029  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0030  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0031  * POSSIBILITY OF SUCH DAMAGE.
0032  */
0033 
0034 #ifndef __SLICETIMER_H__
0035 #define __SLICETIMER_H__
0036 
0037 #ifdef __cplusplus
0038 extern "C" {
0039 #endif
0040 
0041 #define SLT0                          0
0042 #define SLT1                          1
0043 
0044 #define SLT0_INT_FREQUENCY            10000
0045 #define SLT1_INT_FREQUENCY            0
0046 
0047 #define SLT_CNTRL_RW                  (1 << 26)
0048 #define SLT_CNTRL_INTEN               (1 << 25)
0049 #define SLT_CNTRL_TIMEN               (1 << 24)
0050 
0051 #define SLT_TSR_ST                    (1 << 24)
0052 
0053 #define SLT_TSR_COUNT(freq)           ((freq) ? ((IPB_CLOCK)/(freq)) : (0xFFFFFF))
0054 
0055 rtems_device_driver slt_initialize( rtems_device_major_number,
0056                                       rtems_device_minor_number,
0057                                       void *
0058                                     );
0059 
0060 #define SLTIME_DRIVER_TABLE_ENTRY \
0061   { slt_initialize, NULL, NULL, \
0062     NULL, NULL, NULL }
0063 
0064 void mpc5200_slt_isr(uint32_t);
0065 rtems_isr mpc5200_slt0_isr(rtems_irq_hdl_param);
0066 rtems_isr mpc5200_slt1_isr(rtems_irq_hdl_param);
0067 void mpc5200_init_slt(uint32_t);
0068 void mpc5200_set_slt_count(uint32_t);
0069 void mpc5200_enable_slt_int(uint32_t);
0070 void mpc5200_disable_slt_int(uint32_t);
0071 uint32_t mpc5200_check_slt_status(uint32_t);
0072 /*void sltOn(const rtems_irq_connect_data *);
0073 void sltOff(const rtems_irq_connect_data *);
0074 int sltIsOn(const rtems_irq_connect_data *);*/
0075 void Install_slt(rtems_device_minor_number);
0076 
0077 #ifdef __cplusplus
0078 }
0079 #endif
0080 
0081 #endif /* __SLICETIMER_H__ */