Fujitsu DTV/STB solution driver (FAPex driver) Documentation [V01L00R00]


AUDIO OUTPUT Driver

Table of Contents

Introduction
Configuration

Public Interface

Driver Usage
Driver Relationship
References

Back to top

Introduction

This driver controls the Audio Ouput block. It is used to issue uncompressed PCM audio streams via I2S or SPDIF and/or compressed audio streams via SPDIF interface. Physically the streams can be linked to GPIO signals and/or HDMI. Up to 2 independent audio streams can be handled in parallel. The I2S interface allows channel grouping to support audio streams with up to 8 channels. The driver provides Volume and Dual Mono control for all audio streams issued by I2S.

Back to top

Configuration

I2S/SPDIF buffer configuration


The I2S/SPDIF buffers are statically mapped by using the FAPI_BM_SetGlobalOffset() and the FAPI_BM_SetBufferPurpose() at initialization of TSD driver.
These setup sequence are defined with the board configuration header file.

In case of Fujitsu MB86H61 Development Kit board, this board configuration header file is "${KERNEL_TOP}/drivers/media/fapex/wfe/include/fapex/sys_config_mb86h61_devkit.h", these are defined as follows.
    #define FAPEX_SYS_MMAP_BM_I2S0_START          (PROGRAM_MEMORY_START+0x01500000UL)
    #define FAPEX_SYS_MMAP_BM_I2S0_BYTES          0x00010000UL // 64 KB
    #define FAPEX_SYS_MMAP_BM_I2S1_START          (PROGRAM_MEMORY_START+0x01510000UL)
    #define FAPEX_SYS_MMAP_BM_I2S1_BYTES          0x00010000UL // 64 KB
    #define FAPEX_SYS_MMAP_BM_I2S2_START          (PROGRAM_MEMORY_START+0x01520000UL)
    #define FAPEX_SYS_MMAP_BM_I2S2_BYTES          0x00010000UL // 64 KB
    #define FAPEX_SYS_MMAP_BM_I2S3_START          (PROGRAM_MEMORY_START+0x01530000UL)
    #define FAPEX_SYS_MMAP_BM_I2S3_BYTES          0x00010000UL // 64 KB
    #define FAPEX_SYS_MMAP_BM_SPDIF_START         (PROGRAM_MEMORY_START+0x01540000UL)
    #define FAPEX_SYS_MMAP_BM_SPDIF_BYTES         0x00010000UL // 64 KB

        #define FAPI_SYS_BM_SET_BOARD_PARAMS \
            bm_funcStr.SetBufferPurpose(FAPI_BM_I2S0_BUFFER, FAPI_BM0,                                                 \
                                        FAPEX_SYS_MMAP_BM_I2S0_START, FAPEX_SYS_MMAP_BM_I2S0_BYTES);                   \
            bm_funcStr.SetBufferPurpose(FAPI_BM_I2S1_BUFFER, FAPI_BM0,                                                 \
                                        FAPEX_SYS_MMAP_BM_I2S1_START, FAPEX_SYS_MMAP_BM_I2S1_BYTES);                   \
            bm_funcStr.SetBufferPurpose(FAPI_BM_I2S2_BUFFER, FAPI_BM0,                                                 \
                                        FAPEX_SYS_MMAP_BM_I2S2_START, FAPEX_SYS_MMAP_BM_I2S2_BYTES);                   \
            bm_funcStr.SetBufferPurpose(FAPI_BM_I2S3_BUFFER, FAPI_BM0,                                                 \
                                        FAPEX_SYS_MMAP_BM_I2S3_START, FAPEX_SYS_MMAP_BM_I2S3_BYTES);                   \
            bm_funcStr.SetBufferPurpose(FAPI_BM_SPDIF_BUFFER, FAPI_BM0,                                                \
                                        FAPEX_SYS_MMAP_BM_SPDIF_START, FAPEX_SYS_MMAP_BM_SPDIF_BYTES);                 \

Note:
Please refer to "MB86H61 SDK documentation" about the initial setup functions for I2S/SPDIF buffers.

Speakers configuration


The speakers initial setup for board are defined with the board configuration header file.

In case of Fujitsu MB86H61 Development Kit board, this board configuration header file is "${KERNEL_TOP}/drivers/media/fapex/wfe/include/fapex/sys_config_mb86h61_devkit.h", it is defined as follows.
        #define FAPI_SYS_AUOUT_SET_BOARD_PARAMS                  \
            auout_funcStr.SetSpeakers(FAPI_AUOUT_I2S_0,          \
                                      FAPI_AUOUT_SPEAKER_LEFT,   \
                                      FAPI_AUOUT_SPEAKER_RIGHT); \
            auout_funcStr.SetInternalDac(FAPI_AUOUT_I2S_0);

Note:
Please refer to "MB86H61 SDK documentation" about the initial setup functions for speakers.
Back to top

Public Interface

System Driver Interface

Driver initialization function

  • Linux:
    The AUDIO OUTPUT driver module is initialized by following command on target board.
     # modprobe fapex_fdlauout
  • RTOS:
    The AUDIO OUTPUT driver module is initialized by calling FAPEX_common_init().

Driver exit function

  • Linux:
    The AUDIO OUTPUT driver module is unregistered by following command on target board.
     # modprobe -rq fapex_fdlauout
  • RTOS:
    The AUDIO OUTPUT driver module is unregistered by calling FAPEX_common_exit().

Application Programming Interface

Functions and Macros

The driver provides the functions and macros listed below. For more information please follow the links to their detailed documentation.

Open Driver
FAPEX_AUOUT_Open()
Close Driver
FAPEX_AUOUT_Close()
I/O control of Driver
FAPEX_AUOUT_Ioctl()
Back to top

Driver Usage

Please refer to following sequence diagram for the usage of this driver.

inline_dotgraph_2.dot
Back to top

Driver Relationship

The AUDIO OUTPUT driver is related with the following drivers:

Back to top

References

  • MB86H61 SDK documentation
    Fujitsu API / Core Driver Layer / AUDIO OUTPUT Driver
    Fujitsu API / Core Driver Layer / BM Driver

  • MB86H61 Device Manual
    Chapter 18.Audio Output


Copyright © 2006-2010 by Fujitsu Semiconductor Europe GmbH
Copyright © 2008-2010 by Fujitsu Semiconductor Limited

Disclaimer:
Please note that the use of this has been based on the terms and conditions of "DK Consent Letter (For Linux)" agreement between you and Fujitsu Semiconductor Limited.
The contents of this document may be revised without prior notice. Contact our sales department for confirmation. The information in this document are presented as is, no license is granted by implication or otherwise.
More...

FUJITSU sales representatives