2025-10-10 16:07:00 +08:00

318 lines
9.3 KiB
C
Executable File

// Copyright 2022-2023 Beken
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// This is a generated file, if you need to modify it, use the script to
// generate and modify all the struct.h, ll.h, reg.h, debug_dump.c files!
#pragma once
#include <soc/soc.h>
#include "hal_port.h"
#include "sdmadc_hw.h"
#ifdef __cplusplus
extern "C" {
#endif
#define SDMADC_LL_REG_BASE SOC_SDMADC_REG_BASE
//reg REG0x0:
static inline void sdmadc_ll_set_REG0x0_value(uint32_t v) {
sdmadc_REG0x0_t *r = (sdmadc_REG0x0_t*)(SOC_SDMADC_REG_BASE + (0x0 << 2));
r->v = v;
}
static inline uint32_t sdmadc_ll_get_REG0x0_value(void) {
sdmadc_REG0x0_t *r = (sdmadc_REG0x0_t*)(SOC_SDMADC_REG_BASE + (0x0 << 2));
return r->v;
}
static inline uint32_t sdmadc_ll_get_REG0x0_deviceid(void) {
sdmadc_REG0x0_t *r = (sdmadc_REG0x0_t*)(SOC_SDMADC_REG_BASE + (0x0 << 2));
return r->deviceid;
}
//reg REG0x1:
static inline void sdmadc_ll_set_REG0x1_value(uint32_t v) {
sdmadc_REG0x1_t *r = (sdmadc_REG0x1_t*)(SOC_SDMADC_REG_BASE + (0x1 << 2));
r->v = v;
}
static inline uint32_t sdmadc_ll_get_REG0x1_value(void) {
sdmadc_REG0x1_t *r = (sdmadc_REG0x1_t*)(SOC_SDMADC_REG_BASE + (0x1 << 2));
return r->v;
}
static inline uint32_t sdmadc_ll_get_REG0x1_versionid(void) {
sdmadc_REG0x1_t *r = (sdmadc_REG0x1_t*)(SOC_SDMADC_REG_BASE + (0x1 << 2));
return r->versionid;
}
//reg REG0x2:
static inline void sdmadc_ll_set_REG0x2_value(uint32_t v) {
sdmadc_REG0x2_t *r = (sdmadc_REG0x2_t*)(SOC_SDMADC_REG_BASE + (0x2 << 2));
r->v = v;
}
static inline uint32_t sdmadc_ll_get_REG0x2_value(void) {
sdmadc_REG0x2_t *r = (sdmadc_REG0x2_t*)(SOC_SDMADC_REG_BASE + (0x2 << 2));
return r->v;
}
static inline void sdmadc_ll_set_REG0x2_soft_rst(uint32_t v) {
sdmadc_REG0x2_t *r = (sdmadc_REG0x2_t*)(SOC_SDMADC_REG_BASE + (0x2 << 2));
r->soft_rst = v;
}
static inline uint32_t sdmadc_ll_get_REG0x2_soft_rst(void) {
sdmadc_REG0x2_t *r = (sdmadc_REG0x2_t*)(SOC_SDMADC_REG_BASE + (0x2 << 2));
return r->soft_rst;
}
static inline void sdmadc_ll_set_REG0x2_bypass_ckg(uint32_t v) {
sdmadc_REG0x2_t *r = (sdmadc_REG0x2_t*)(SOC_SDMADC_REG_BASE + (0x2 << 2));
r->bypass_ckg = v;
}
static inline uint32_t sdmadc_ll_get_REG0x2_bypass_ckg(void) {
sdmadc_REG0x2_t *r = (sdmadc_REG0x2_t*)(SOC_SDMADC_REG_BASE + (0x2 << 2));
return r->bypass_ckg;
}
//reg REG0x3:
static inline void sdmadc_ll_set_REG0x3_value(uint32_t v) {
sdmadc_REG0x3_t *r = (sdmadc_REG0x3_t*)(SOC_SDMADC_REG_BASE + (0x3 << 2));
r->v = v;
}
static inline uint32_t sdmadc_ll_get_REG0x3_value(void) {
sdmadc_REG0x3_t *r = (sdmadc_REG0x3_t*)(SOC_SDMADC_REG_BASE + (0x3 << 2));
return r->v;
}
static inline uint32_t sdmadc_ll_get_REG0x3_global_status(void) {
sdmadc_REG0x3_t *r = (sdmadc_REG0x3_t*)(SOC_SDMADC_REG_BASE + (0x3 << 2));
return r->global_status;
}
//reg REG0x4:
static inline void sdmadc_ll_set_REG0x4_value(uint32_t v) {
sdmadc_REG0x4_t *r = (sdmadc_REG0x4_t*)(SOC_SDMADC_REG_BASE + (0x4 << 2));
r->v = v;
}
static inline uint32_t sdmadc_ll_get_REG0x4_value(void) {
sdmadc_REG0x4_t *r = (sdmadc_REG0x4_t*)(SOC_SDMADC_REG_BASE + (0x4 << 2));
return r->v;
}
static inline void sdmadc_ll_set_REG0x4_sample_enable(uint32_t v) {
sdmadc_REG0x4_t *r = (sdmadc_REG0x4_t*)(SOC_SDMADC_REG_BASE + (0x4 << 2));
r->sample_enable = v;
}
static inline uint32_t sdmadc_ll_get_REG0x4_sample_enable(void) {
sdmadc_REG0x4_t *r = (sdmadc_REG0x4_t*)(SOC_SDMADC_REG_BASE + (0x4 << 2));
return r->sample_enable;
}
//reg REG0x5:
static inline void sdmadc_ll_set_REG0x5_value(uint32_t v) {
sdmadc_REG0x5_t *r = (sdmadc_REG0x5_t*)(SOC_SDMADC_REG_BASE + (0x5 << 2));
r->v = v;
}
static inline uint32_t sdmadc_ll_get_REG0x5_value(void) {
sdmadc_REG0x5_t *r = (sdmadc_REG0x5_t*)(SOC_SDMADC_REG_BASE + (0x5 << 2));
return r->v;
}
static inline void sdmadc_ll_set_REG0x5_sample_mode(uint32_t v) {
sdmadc_REG0x5_t *r = (sdmadc_REG0x5_t*)(SOC_SDMADC_REG_BASE + (0x5 << 2));
r->sample_mode = v;
}
static inline uint32_t sdmadc_ll_get_REG0x5_sample_mode(void) {
sdmadc_REG0x5_t *r = (sdmadc_REG0x5_t*)(SOC_SDMADC_REG_BASE + (0x5 << 2));
return r->sample_mode;
}
static inline void sdmadc_ll_set_REG0x5_sample_numb(uint32_t v) {
sdmadc_REG0x5_t *r = (sdmadc_REG0x5_t*)(SOC_SDMADC_REG_BASE + (0x5 << 2));
r->sample_numb = v;
}
static inline uint32_t sdmadc_ll_get_REG0x5_sample_numb(void) {
sdmadc_REG0x5_t *r = (sdmadc_REG0x5_t*)(SOC_SDMADC_REG_BASE + (0x5 << 2));
return r->sample_numb;
}
static inline void sdmadc_ll_set_REG0x5_sample_chsel(uint32_t v) {
sdmadc_REG0x5_t *r = (sdmadc_REG0x5_t*)(SOC_SDMADC_REG_BASE + (0x5 << 2));
r->sample_chsel = v;
}
static inline uint32_t sdmadc_ll_get_REG0x5_sample_chsel(void) {
sdmadc_REG0x5_t *r = (sdmadc_REG0x5_t*)(SOC_SDMADC_REG_BASE + (0x5 << 2));
return r->sample_chsel;
}
static inline void sdmadc_ll_set_REG0x5_cic2_bypass(uint32_t v) {
sdmadc_REG0x5_t *r = (sdmadc_REG0x5_t*)(SOC_SDMADC_REG_BASE + (0x5 << 2));
r->cic2_bypass = v;
}
static inline uint32_t sdmadc_ll_get_REG0x5_cic2_bypass(void) {
sdmadc_REG0x5_t *r = (sdmadc_REG0x5_t*)(SOC_SDMADC_REG_BASE + (0x5 << 2));
return r->cic2_bypass;
}
static inline void sdmadc_ll_set_REG0x5_comp_bypass(uint32_t v) {
sdmadc_REG0x5_t *r = (sdmadc_REG0x5_t*)(SOC_SDMADC_REG_BASE + (0x5 << 2));
r->comp_bypass = v;
}
static inline uint32_t sdmadc_ll_get_REG0x5_comp_bypass(void) {
sdmadc_REG0x5_t *r = (sdmadc_REG0x5_t*)(SOC_SDMADC_REG_BASE + (0x5 << 2));
return r->comp_bypass;
}
static inline void sdmadc_ll_set_REG0x5_cic2_gains(uint32_t v) {
sdmadc_REG0x5_t *r = (sdmadc_REG0x5_t*)(SOC_SDMADC_REG_BASE + (0x5 << 2));
r->cic2_gains = v;
}
static inline uint32_t sdmadc_ll_get_REG0x5_cic2_gains(void) {
sdmadc_REG0x5_t *r = (sdmadc_REG0x5_t*)(SOC_SDMADC_REG_BASE + (0x5 << 2));
return r->cic2_gains;
}
static inline void sdmadc_ll_set_REG0x5_intr_enable(uint32_t v) {
sdmadc_REG0x5_t *r = (sdmadc_REG0x5_t*)(SOC_SDMADC_REG_BASE + (0x5 << 2));
r->intr_enable = v;
}
static inline uint32_t sdmadc_ll_get_REG0x5_intr_enable(void) {
sdmadc_REG0x5_t *r = (sdmadc_REG0x5_t*)(SOC_SDMADC_REG_BASE + (0x5 << 2));
return r->intr_enable;
}
//reg REG0x6:
static inline void sdmadc_ll_set_REG0x6_value(uint32_t v) {
sdmadc_REG0x6_t *r = (sdmadc_REG0x6_t*)(SOC_SDMADC_REG_BASE + (0x6 << 2));
r->v = v;
}
static inline uint32_t sdmadc_ll_get_REG0x6_value(void) {
sdmadc_REG0x6_t *r = (sdmadc_REG0x6_t*)(SOC_SDMADC_REG_BASE + (0x6 << 2));
return r->v;
}
static inline void sdmadc_ll_set_REG0x6_cali_offset(uint32_t v) {
sdmadc_REG0x6_t *r = (sdmadc_REG0x6_t*)(SOC_SDMADC_REG_BASE + (0x6 << 2));
r->cali_offset = v;
}
static inline uint32_t sdmadc_ll_get_REG0x6_cali_offset(void) {
sdmadc_REG0x6_t *r = (sdmadc_REG0x6_t*)(SOC_SDMADC_REG_BASE + (0x6 << 2));
return r->cali_offset;
}
static inline void sdmadc_ll_set_REG0x6_cali_gain(uint32_t v) {
sdmadc_REG0x6_t *r = (sdmadc_REG0x6_t*)(SOC_SDMADC_REG_BASE + (0x6 << 2));
r->cali_gain = v;
}
static inline uint32_t sdmadc_ll_get_REG0x6_cali_gain(void) {
sdmadc_REG0x6_t *r = (sdmadc_REG0x6_t*)(SOC_SDMADC_REG_BASE + (0x6 << 2));
return r->cali_gain;
}
//reg REG0x7:
static inline void sdmadc_ll_set_REG0x7_value(uint32_t v) {
sdmadc_REG0x7_t *r = (sdmadc_REG0x7_t*)(SOC_SDMADC_REG_BASE + (0x7 << 2));
r->v = v;
}
static inline uint32_t sdmadc_ll_get_REG0x7_value(void) {
sdmadc_REG0x7_t *r = (sdmadc_REG0x7_t*)(SOC_SDMADC_REG_BASE + (0x7 << 2));
return r->v;
}
static inline uint32_t sdmadc_ll_get_REG0x7_sadc_status(void) {
//sdmadc_REG0x7_t *r = (sdmadc_REG0x7_t*)(SOC_SDMADC_REG_BASE + (0x7 << 2));
//return r->sadc_status;
return (REG_READ(SOC_SDMADC_REG_BASE + (0x7 << 2))) & 0x1f;
}
//reg REG0x8:
static inline void sdmadc_ll_set_REG0x8_value(uint32_t v) {
sdmadc_REG0x8_t *r = (sdmadc_REG0x8_t*)(SOC_SDMADC_REG_BASE + (0x8 << 2));
r->v = v;
}
static inline uint32_t sdmadc_ll_get_REG0x8_value(void) {
sdmadc_REG0x8_t *r = (sdmadc_REG0x8_t*)(SOC_SDMADC_REG_BASE + (0x8 << 2));
return r->v;
}
static inline uint32_t sdmadc_ll_get_REG0x8_fifo_data(void) {
sdmadc_REG0x8_t *r = (sdmadc_REG0x8_t*)(SOC_SDMADC_REG_BASE + (0x8 << 2));
return r->fifo_data;
}
#define ANALOG_CHANNEL 0x0B81
static inline bool sdmadc_ll_is_analog_channel(int id)
{
//channel function
//ADC0 Vbat
//ADC1 GPIO25
//ADC2 GPIO24
//ADC3 GPIO23
//ADC4 GPIO28
//ADC5 GPIO22
//ADC6 GPIO21
//ADC7 vtemp
//ADC8 tssio
//ADC9 touch
//ADC10 GPIO8
//ADC11 vpeak_lo
//ADC12 GPIO0
//ADC13 GPIO1
//ADC14 GPIO12
//ADC15 GPIO13
//analog channel map: B00001011 10000001 = 0x0B81
return (ANALOG_CHANNEL & (1 << id));
}
static inline bool sdmadc_ll_is_digital_channel(int id)
{
//digital channel map: B11110100 01111110 = 0x0B81
return ((~ANALOG_CHANNEL) & (1 << id));
}
#ifdef __cplusplus
}
#endif