mirror of
https://github.com/genesi/linux-legacy.git
synced 2026-09-23 07:05:27 +00:00
This is i.MX BSP 5.0.0 release ported to 2.6.31 Signed-off-by: Rob Herring <r.herring@freescale.com> Signed-off-by: Alan Tull <r80115@freescale.com> Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
259 lines
6.7 KiB
C
259 lines
6.7 KiB
C
/*
|
|
* Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.
|
|
*/
|
|
|
|
/*
|
|
* The code contained herein is licensed under the GNU General Public
|
|
* License. You may obtain a copy of the GNU General Public License
|
|
* Version 2 or later at the following locations:
|
|
*
|
|
* http://www.opensource.org/licenses/gpl-license.html
|
|
* http://www.gnu.org/copyleft/gpl.html
|
|
*/
|
|
|
|
/*!
|
|
* @defgroup DAM Digital Audio Multiplexer (AUDMUX) Driver
|
|
*/
|
|
|
|
/*!
|
|
* @file dam.h
|
|
* @brief This is the brief documentation for this dam.h file.
|
|
*
|
|
* This header file contains DAM driver functions prototypes.
|
|
*
|
|
* @ingroup DAM
|
|
*/
|
|
|
|
#ifndef __MXC_DAM_H__
|
|
#define __MXC_DAM_H__
|
|
|
|
/*!
|
|
* This enumeration describes the Digital Audio Multiplexer mode.
|
|
*/
|
|
typedef enum {
|
|
|
|
/*!
|
|
* Normal mode
|
|
*/
|
|
normal_mode = 0,
|
|
|
|
/*!
|
|
* Internal network mode
|
|
*/
|
|
internal_network_mode = 1,
|
|
|
|
/*!
|
|
* CE bus network mode
|
|
*/
|
|
CE_bus_network_mode = 2
|
|
} dam_mode;
|
|
|
|
/*!
|
|
* This enumeration describes the port.
|
|
*/
|
|
typedef enum {
|
|
|
|
/*!
|
|
* The port 1
|
|
*/
|
|
port_1 = 0,
|
|
|
|
/*!
|
|
* The port 2
|
|
*/
|
|
port_2 = 1,
|
|
|
|
/*!
|
|
* The port 3
|
|
*/
|
|
port_3 = 2,
|
|
|
|
/*!
|
|
* The port 4
|
|
*/
|
|
port_4 = 3,
|
|
|
|
/*!
|
|
* The port 5
|
|
*/
|
|
port_5 = 4,
|
|
|
|
/*!
|
|
* The port 6
|
|
*/
|
|
port_6 = 5,
|
|
|
|
/*!
|
|
* The port 7
|
|
*/
|
|
port_7 = 6
|
|
} dam_port;
|
|
|
|
/*!
|
|
* This enumeration describes the signal direction.
|
|
*/
|
|
typedef enum {
|
|
|
|
/*!
|
|
* Signal In
|
|
*/
|
|
signal_in = 0,
|
|
|
|
/*!
|
|
* Signal Out
|
|
*/
|
|
signal_out = 1
|
|
} signal_direction;
|
|
|
|
/*!
|
|
* Test purpose definition
|
|
*/
|
|
#define TEST_DAM 1
|
|
|
|
#ifdef TEST_DAM
|
|
|
|
#define DAM_IOCTL 0x55
|
|
#define DAM_CONFIG_SSI1_MC13783 _IOWR(DAM_IOCTL, 1, int)
|
|
#define DAM_CONFIG_SSI2_MC13783 _IOWR(DAM_IOCTL, 2, int)
|
|
#define DAM_CONFIG_SSI_NETWORK_MODE_MC13783 _IOWR(DAM_IOCTL, 3, int)
|
|
#endif
|
|
|
|
/*!
|
|
* This function selects the operation mode of the port.
|
|
*
|
|
* @param port the DAM port to configure
|
|
* @param the_mode the operation mode of the port
|
|
* @return This function returns the result of the operation
|
|
* (0 if successful, -1 otherwise).
|
|
*/
|
|
int dam_select_mode(dam_port port, dam_mode the_mode);
|
|
|
|
/*!
|
|
* This function controls Receive clock signal direction for the port.
|
|
*
|
|
* @param port the DAM port to configure
|
|
* @param direction the Rx clock signal direction
|
|
*/
|
|
void dam_select_RxClk_direction(dam_port port, signal_direction direction);
|
|
|
|
/*!
|
|
* This function controls Receive clock signal source for the port.
|
|
*
|
|
* @param p_config the DAM port to configure
|
|
* @param from_RxClk the signal comes from RxClk or TxClk of
|
|
* the source port
|
|
* @param p_source the source port
|
|
*/
|
|
void dam_select_RxClk_source(dam_port p_config, bool from_RxClk,
|
|
dam_port p_source);
|
|
|
|
/*!
|
|
* This function selects the source port for the RxD data.
|
|
*
|
|
* @param p_config the DAM port to configure
|
|
* @param p_source the source port
|
|
*/
|
|
void dam_select_RxD_source(dam_port p_config, dam_port p_source);
|
|
|
|
/*!
|
|
* This function controls Receive Frame Sync signal direction for the port.
|
|
*
|
|
* @param port the DAM port to configure
|
|
* @param direction the Rx Frame Sync signal direction
|
|
*/
|
|
void dam_select_RxFS_direction(dam_port port, signal_direction direction);
|
|
|
|
/*!
|
|
* This function controls Receive Frame Sync signal source for the port.
|
|
*
|
|
* @param p_config the DAM port to configure
|
|
* @param from_RxFS the signal comes from RxFS or TxFS of
|
|
* the source port
|
|
* @param p_source the source port
|
|
*/
|
|
void dam_select_RxFS_source(dam_port p_config, bool from_RxFS,
|
|
dam_port p_source);
|
|
|
|
/*!
|
|
* This function controls Transmit clock signal direction for the port.
|
|
*
|
|
* @param port the DAM port to configure
|
|
* @param direction the Tx clock signal direction
|
|
*/
|
|
void dam_select_TxClk_direction(dam_port port, signal_direction direction);
|
|
|
|
/*!
|
|
* This function controls Transmit clock signal source for the port.
|
|
*
|
|
* @param p_config the DAM port to configure
|
|
* @param from_RxClk the signal comes from RxClk or TxClk of
|
|
* the source port
|
|
* @param p_source the source port
|
|
*/
|
|
void dam_select_TxClk_source(dam_port p_config, bool from_RxClk,
|
|
dam_port p_source);
|
|
|
|
/*!
|
|
* This function controls Transmit Frame Sync signal direction for the port.
|
|
*
|
|
* @param port the DAM port to configure
|
|
* @param direction the Tx Frame Sync signal direction
|
|
*/
|
|
void dam_select_TxFS_direction(dam_port port, signal_direction direction);
|
|
|
|
/*!
|
|
* This function controls Transmit Frame Sync signal source for the port.
|
|
*
|
|
* @param p_config the DAM port to configure
|
|
* @param from_RxFS the signal comes from RxFS or TxFS of
|
|
* the source port
|
|
* @param p_source the source port
|
|
*/
|
|
void dam_select_TxFS_source(dam_port p_config, bool from_RxFS,
|
|
dam_port p_source);
|
|
|
|
/*!
|
|
* This function sets a bit mask that selects the port from which of
|
|
* the RxD signals are to be ANDed together for internal network mode.
|
|
* Bit 6 represents RxD from Port7 and bit0 represents RxD from Port1.
|
|
* 1 excludes RxDn from ANDing. 0 includes RxDn for ANDing.
|
|
*
|
|
* @param port the DAM port to configure
|
|
* @param bit_mask the bit mask
|
|
* @return This function returns the result of the operation
|
|
* (0 if successful, -1 otherwise).
|
|
*/
|
|
int dam_set_internal_network_mode_mask(dam_port port, unsigned char bit_mask);
|
|
|
|
/*!
|
|
* This function controls whether or not the port is in synchronous mode.
|
|
* When the synchronous mode is selected, the receive and the transmit sections
|
|
* use common clock and frame sync signals.
|
|
* When the synchronous mode is not selected, separate clock and frame sync
|
|
* signals are used for the transmit and the receive sections.
|
|
* The defaut value is the synchronous mode selected.
|
|
*
|
|
* @param port the DAM port to configure
|
|
* @param synchronous the state to assign
|
|
*/
|
|
void dam_set_synchronous(dam_port port, bool synchronous);
|
|
|
|
/*!
|
|
* This function swaps the transmit and receive signals from (Da-TxD, Db-RxD) to
|
|
* (Da-RxD, Db-TxD).
|
|
* This default signal configuration is Da-TxD, Db-RxD.
|
|
*
|
|
* @param port the DAM port to configure
|
|
* @param value the switch state
|
|
*/
|
|
void dam_switch_Tx_Rx(dam_port port, bool value);
|
|
|
|
/*!
|
|
* This function resets the two registers of the selected port.
|
|
*
|
|
* @param port the DAM port to reset
|
|
*/
|
|
void dam_reset_register(dam_port port);
|
|
|
|
#endif
|