83 lines
2.4 KiB
C
83 lines
2.4 KiB
C
|
/***************************************************************************
|
||
|
*
|
||
|
* Copyright 2015-2019 BES.
|
||
|
* All rights reserved. All unpublished rights reserved.
|
||
|
*
|
||
|
* No part of this work may be used or reproduced in any form or by any
|
||
|
* means, or stored in a database or retrieval system, without prior written
|
||
|
* permission of BES.
|
||
|
*
|
||
|
* Use of this work is governed by a license granted by BES.
|
||
|
* This work contains confidential and proprietary information of
|
||
|
* BES. which is protected by copyright, trade secret,
|
||
|
* trademark and other intellectual property rights.
|
||
|
*
|
||
|
****************************************************************************/
|
||
|
#include "plat_addr_map.h"
|
||
|
|
||
|
#ifdef BTDUMP_BASE
|
||
|
|
||
|
#include "hal_cmu.h"
|
||
|
#include "hal_btdump.h"
|
||
|
|
||
|
#define BTDUMP_DMA_CTL_REG_OFFSET 0x30
|
||
|
#define BTDUMP_DMA_CTL_MASK 0xFFFFFFFE
|
||
|
#define BTDUMP_DEVICE_EN_MASK 0xFFFFFFFE
|
||
|
#define BTDUMP_FM_PSD_MASK 0xFFFFFFDF
|
||
|
#define BTDUMP_DEVICE_EN (1 << 0)
|
||
|
#define BTDUMP_DMA_CTL_EN (1 << 0)
|
||
|
#define BTDUMP_FM_PSD_EN (1 << 5)
|
||
|
#define BTDUMP_DMA_CTL_DISABLE (0 << 0)
|
||
|
#define BTDUMP_DEVICE_DISABLE (0 << 0)
|
||
|
|
||
|
#define btdump_read32(b,a) \
|
||
|
(*(volatile uint32_t *)(b+a))
|
||
|
|
||
|
#define btdump_write32(v,b,a) \
|
||
|
((*(volatile uint32_t *)(b+a)) = v)
|
||
|
|
||
|
void hal_btdump_clk_enable(void)
|
||
|
{
|
||
|
hal_cmu_clock_enable(HAL_CMU_MOD_H_BT_DUMP);
|
||
|
hal_cmu_reset_clear(HAL_CMU_MOD_H_BT_DUMP);
|
||
|
}
|
||
|
|
||
|
void hal_btdump_clk_disable(void)
|
||
|
{
|
||
|
hal_cmu_reset_set(HAL_CMU_MOD_H_BT_DUMP);
|
||
|
hal_cmu_clock_disable(HAL_CMU_MOD_H_BT_DUMP);
|
||
|
}
|
||
|
|
||
|
void hal_btdump_enable(void)
|
||
|
{
|
||
|
uint32_t val;
|
||
|
|
||
|
val = btdump_read32(BTDUMP_BASE,BTDUMP_DMA_CTL_REG_OFFSET);
|
||
|
val &= BTDUMP_DMA_CTL_MASK;
|
||
|
val |= BTDUMP_DMA_CTL_EN;
|
||
|
btdump_write32(val,BTDUMP_BASE,BTDUMP_DMA_CTL_REG_OFFSET);
|
||
|
|
||
|
val = btdump_read32(BTDUMP_BASE,0);
|
||
|
val &= BTDUMP_DEVICE_EN_MASK;
|
||
|
val |= BTDUMP_DEVICE_EN;
|
||
|
val &= BTDUMP_FM_PSD_MASK;
|
||
|
val |= BTDUMP_FM_PSD_EN;
|
||
|
btdump_write32(val,BTDUMP_BASE,0);
|
||
|
}
|
||
|
|
||
|
void hal_btdump_disable(void)
|
||
|
{
|
||
|
uint32_t val;
|
||
|
|
||
|
val = btdump_read32(BTDUMP_BASE,BTDUMP_DMA_CTL_REG_OFFSET);
|
||
|
val &= BTDUMP_DMA_CTL_MASK;
|
||
|
val |= BTDUMP_DMA_CTL_DISABLE;
|
||
|
btdump_write32(val,BTDUMP_BASE,BTDUMP_DMA_CTL_REG_OFFSET);
|
||
|
|
||
|
val = btdump_read32(BTDUMP_BASE,0);
|
||
|
val &= BTDUMP_DEVICE_EN_MASK;
|
||
|
val |= BTDUMP_DEVICE_DISABLE;
|
||
|
btdump_write32(val,BTDUMP_BASE,0);
|
||
|
}
|
||
|
|
||
|
#endif
|