#===============================================================================
#
# GENERAL DESCRIPTION
#    Build script for SPI BUS driver
#
# Copyright (c) 2014-2015 Qualcomm Technologies, Inc.
#         All Rights Reserved.
# Qualcomm Technologies, Inc. Confidential and Proprietary.
#
#-------------------------------------------------------------------------------
#
#  $Header: //components/rel/core.slpi/1.0/buses/spi/build/SConscript#10 $
#  $DateTime: 2015/12/14 18:41:17 $
#  $Author: pwbldsvc $
#  $Change: 9584209 $
#                      EDIT HISTORY FOR FILE
#                      
#  This section contains comments describing changes made to the module.
#  Notice that changes are listed in reverse chronological order.
#  
# when         who     what, where, why
# ----------   ---     ---------------------------------------------------------
# 04/17/2014   vmk     QDSS SW events
# 05/06/2014   vmk     Initial release
#
#===============================================================================
Import('env')
#-------------------------------------------------------------------------------
# Load sub scripts
#-------------------------------------------------------------------------------
env.LoadSoftwareUnits()

#-------------------------------------------------------------------------------
# Source PATH
#-------------------------------------------------------------------------------
env = env.Clone()
# Additional defines
env.Append(CPPDEFINES = ["FEATURE_LIBRARY_ONLY"])   

SRCPATH = "../src"
IMAGES = []

env.VariantDir('${BUILDPATH}', SRCPATH, duplicate=0) 

CBSP_APIS = []

#-------------------------------------------------------------------------------
# Publish Private APIs
#-------------------------------------------------------------------------------
env.PublishPrivateApi('BUSES_SPI_DEVICE', [
   '${INC_ROOT}/core/buses/spi/src/hal/inc',
   '${INC_ROOT}/core/buses/spi/src/logs/inc/',
   '${INC_ROOT}/core/buses/spi/src/device/inc',
   '${INC_ROOT}/core/buses/spi/src/driver/inc',
])

#-------------------------------------------------------------------------------
# Internal depends within CoreBSP
#-------------------------------------------------------------------------------
CBSP_APIS += [
   'BUSES',
   'DAL',
   'HAL',
   'SYSTEMDRIVERS',
   'KERNEL',   
   'SERVICES',   
   'POWER',
   'DEBUGTRACE'
]

env.RequirePublicApi(CBSP_APIS)
env.RequireRestrictedApi(CBSP_APIS)

#if env.has_key('SLPI_PROC'):
#      IMAGES = ['QDSP6_SW_IMAGE', 'CBSP_QDSP6_SW_IMAGE', 'CORE_QDSP6_SW','CORE_QDSP6_SENSOR_SW']
#else:
#   Return();      

#-------------------------------------------------------------------------------
# Sources, libraries
#-------------------------------------------------------------------------------
SPI_SOURCES = [
   '${BUILDPATH}/device/SpiDevice.c',
   '${BUILDPATH}/device/SpiDeviceOsSvc.c',
   '${BUILDPATH}/device/SpiDevicePlatSvc.c',
   '${BUILDPATH}/device/SpiDeviceTransfer.c',
   '${BUILDPATH}/driver/SpiDriver.c',
   '${BUILDPATH}/hal/HALqupe.c',
   '${BUILDPATH}/hal/HALqupeSpi.c',
   '${BUILDPATH}/logs/SpiNolog.c',
#   '${BUILDPATH}/test/spi_test.c',
]

if env['MSM_ID'] in ['8996']:
   SPI_SOURCES.append('${BUILDPATH}/config/spi_slpi_8996.c')

SPI_ISLAND_SOURCES = SPI_SOURCES

if 'USES_ISLAND' in env:
   U_IMG_LIB = env.AddBinaryLibrary(
      ['CORE_SSC_SLPI_USER','CORE_SLPI_ROOT'],
      '${BUILDPATH}/SpiDriver_UImg', SPI_ISLAND_SOURCES)
   env.AddIslandLibrary(['CORE_SSC_SLPI_USER'], U_IMG_LIB)

#---------------------------------------------------------------------------
# RCINIT - enable below for standalone SPI dev test
#---------------------------------------------------------------------------
if 'USES_RCINIT' in env:
   RCINIT_IMG = ['CORE_SSC_SLPI_USER', 'CORE_SLPI_ROOT']
   env.AddRCInitFunc(
    RCINIT_IMG,                 
    {
     'sequence_group'             : 'RCINIT_GROUP_2',
     'init_name'                  : 'SpiInit',
     'init_function'              : 'SpiInit',
    })


if 'USES_QDSS_SWE' in env:
  env.Append(CPPDEFINES = ["SPI_TRACER_SWEVT"])
  QDSS_IMG = ['QDSS_EN_IMG']
  events = [
    ['SPI_OPEN',    'SPI_DRV_OPEN'],
    ['SPI_OPEN_DONE',    'SPI_DRV_OPEN_DONE'],
    ['SPI_FULL_DUPLEX',  'SPI_DRV_FULL_DUPLEX: tx_len = %d, rx_len = %d'],
    ['SPI_FULL_DUPLEX_DONE',  'SPI_DRV_FULL_DUPLEX_DONE'],
    ['SPI_CLOSE',    'SPI_DRV_CLOSE'],
    ['SPI_CLOSE_DONE',    'SPI_DRV_CLOSE_DONE']]
  env.AddSWEInfo(QDSS_IMG, events)

if 'QDSS_TRACER_SWE' in env:
  env.SWEBuilder(['${BUILD_ROOT}/core/buses/spi/build/${BUILDPATH}/src/SPISWEventId.h'], None)
  env.Append(CPPPATH = ['${BUILD_ROOT}/core/buses/spi/build/${BUILDPATH}/src'])

