bdk: small refactoring
This commit is contained in:
@@ -29,127 +29,128 @@ int bq24193_get_property(enum BQ24193_reg_prop prop, int *value)
|
|||||||
{
|
{
|
||||||
u8 data;
|
u8 data;
|
||||||
|
|
||||||
switch (prop) {
|
switch (prop)
|
||||||
case BQ24193_InputVoltageLimit: // Input voltage limit (mV).
|
{
|
||||||
data = bq24193_get_reg(BQ24193_InputSource);
|
case BQ24193_InputVoltageLimit: // Input voltage limit (mV).
|
||||||
data = (data & BQ24193_INCONFIG_VINDPM_MASK) >> 3;
|
data = bq24193_get_reg(BQ24193_InputSource);
|
||||||
*value = 0;
|
data = (data & BQ24193_INCONFIG_VINDPM_MASK) >> 3;
|
||||||
*value += ((data >> 0) & 1) ? 80 : 0;
|
*value = 0;
|
||||||
*value += ((data >> 1) & 1) ? 160 : 0;
|
*value += ((data >> 0) & 1) ? 80 : 0;
|
||||||
*value += ((data >> 2) & 1) ? 320 : 0;
|
*value += ((data >> 1) & 1) ? 160 : 0;
|
||||||
*value += ((data >> 3) & 1) ? 640 : 0;
|
*value += ((data >> 2) & 1) ? 320 : 0;
|
||||||
*value += 3880;
|
*value += ((data >> 3) & 1) ? 640 : 0;
|
||||||
|
*value += 3880;
|
||||||
|
break;
|
||||||
|
case BQ24193_InputCurrentLimit: // Input current limit (mA).
|
||||||
|
data = bq24193_get_reg(BQ24193_InputSource);
|
||||||
|
data &= BQ24193_INCONFIG_INLIMIT_MASK;
|
||||||
|
switch (data)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
*value = 100;
|
||||||
break;
|
break;
|
||||||
case BQ24193_InputCurrentLimit: // Input current limit (mA).
|
case 1:
|
||||||
data = bq24193_get_reg(BQ24193_InputSource);
|
*value = 150;
|
||||||
data &= BQ24193_INCONFIG_INLIMIT_MASK;
|
|
||||||
switch (data)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
*value = 100;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
*value = 150;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
*value = 500;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
*value = 900;
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
*value = 1200;
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
*value = 1500;
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
*value = 2000;
|
|
||||||
break;
|
|
||||||
case 7:
|
|
||||||
*value = 3000;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case BQ24193_SystemMinimumVoltage: // Minimum system voltage limit (mV).
|
case 2:
|
||||||
data = bq24193_get_reg(BQ24193_PORConfig);
|
*value = 500;
|
||||||
*value = (data & BQ24193_PORCONFIG_SYSMIN_MASK) >> 1;
|
|
||||||
*value *= 100;
|
|
||||||
*value += 3000;
|
|
||||||
break;
|
break;
|
||||||
case BQ24193_FastChargeCurrentLimit: // Fast charge current limit (mA).
|
case 3:
|
||||||
data = bq24193_get_reg(BQ24193_ChrgCurr);
|
*value = 900;
|
||||||
data = (data & BQ24193_CHRGCURR_ICHG_MASK) >> 2;
|
|
||||||
*value = 0;
|
|
||||||
*value += ((data >> 0) & 1) ? 64 : 0;
|
|
||||||
*value += ((data >> 1) & 1) ? 128 : 0;
|
|
||||||
*value += ((data >> 2) & 1) ? 256 : 0;
|
|
||||||
*value += ((data >> 3) & 1) ? 512 : 0;
|
|
||||||
*value += ((data >> 4) & 1) ? 1024 : 0;
|
|
||||||
*value += ((data >> 5) & 1) ? 2048 : 0;
|
|
||||||
*value += 512;
|
|
||||||
data = bq24193_get_reg(BQ24193_ChrgCurr);
|
|
||||||
data &= BQ24193_CHRGCURR_20PCT_MASK;
|
|
||||||
if (data)
|
|
||||||
*value = *value * 20 / 100; // Fast charge current limit is 20%.
|
|
||||||
break;
|
break;
|
||||||
case BQ24193_ChargeVoltageLimit: // Charge voltage limit (mV).
|
case 4:
|
||||||
data = bq24193_get_reg(BQ24193_ChrgVolt);
|
*value = 1200;
|
||||||
data = (data & BQ24193_CHRGVOLT_VREG) >> 2;
|
|
||||||
*value = 0;
|
|
||||||
*value += ((data >> 0) & 1) ? 16 : 0;
|
|
||||||
*value += ((data >> 1) & 1) ? 32 : 0;
|
|
||||||
*value += ((data >> 2) & 1) ? 64 : 0;
|
|
||||||
*value += ((data >> 3) & 1) ? 128 : 0;
|
|
||||||
*value += ((data >> 4) & 1) ? 256 : 0;
|
|
||||||
*value += ((data >> 5) & 1) ? 512 : 0;
|
|
||||||
*value += 3504;
|
|
||||||
break;
|
break;
|
||||||
case BQ24193_RechargeThreshold: // Recharge voltage threshold less than voltage limit (mV).
|
case 5:
|
||||||
data = bq24193_get_reg(BQ24193_ChrgVolt);
|
*value = 1500;
|
||||||
data &= BQ24193_IRTHERMAL_THERM_MASK;
|
|
||||||
if (data)
|
|
||||||
*value = 300;
|
|
||||||
else
|
|
||||||
*value = 100;
|
|
||||||
break;
|
break;
|
||||||
case BQ24193_ThermalRegulation: // Thermal regulation threshold (oC).
|
case 6:
|
||||||
data = bq24193_get_reg(BQ24193_IRCompThermal);
|
*value = 2000;
|
||||||
data &= BQ24193_IRTHERMAL_THERM_MASK;
|
|
||||||
switch (data)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
*value = 60;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
*value = 80;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
*value = 100;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
*value = 120;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case BQ24193_ChargeStatus: // 0: Not charging, 1: Pre-charge, 2: Fast charging, 3: Charge termination done
|
case 7:
|
||||||
data = bq24193_get_reg(BQ24193_Status);
|
*value = 3000;
|
||||||
*value = (data & BQ24193_STATUS_CHRG_MASK) >> 4;
|
|
||||||
break;
|
break;
|
||||||
case BQ24193_TempStatus: // 0: Normal, 2: Warm, 3: Cool, 5: Cold, 6: Hot.
|
}
|
||||||
data = bq24193_get_reg(BQ24193_FaultReg);
|
break;
|
||||||
*value = data & BQ24193_FAULT_THERM_MASK;
|
case BQ24193_SystemMinimumVoltage: // Minimum system voltage limit (mV).
|
||||||
|
data = bq24193_get_reg(BQ24193_PORConfig);
|
||||||
|
*value = (data & BQ24193_PORCONFIG_SYSMIN_MASK) >> 1;
|
||||||
|
*value *= 100;
|
||||||
|
*value += 3000;
|
||||||
|
break;
|
||||||
|
case BQ24193_FastChargeCurrentLimit: // Fast charge current limit (mA).
|
||||||
|
data = bq24193_get_reg(BQ24193_ChrgCurr);
|
||||||
|
data = (data & BQ24193_CHRGCURR_ICHG_MASK) >> 2;
|
||||||
|
*value = 0;
|
||||||
|
*value += ((data >> 0) & 1) ? 64 : 0;
|
||||||
|
*value += ((data >> 1) & 1) ? 128 : 0;
|
||||||
|
*value += ((data >> 2) & 1) ? 256 : 0;
|
||||||
|
*value += ((data >> 3) & 1) ? 512 : 0;
|
||||||
|
*value += ((data >> 4) & 1) ? 1024 : 0;
|
||||||
|
*value += ((data >> 5) & 1) ? 2048 : 0;
|
||||||
|
*value += 512;
|
||||||
|
data = bq24193_get_reg(BQ24193_ChrgCurr);
|
||||||
|
data &= BQ24193_CHRGCURR_20PCT_MASK;
|
||||||
|
if (data)
|
||||||
|
*value = *value * 20 / 100; // Fast charge current limit is 20%.
|
||||||
|
break;
|
||||||
|
case BQ24193_ChargeVoltageLimit: // Charge voltage limit (mV).
|
||||||
|
data = bq24193_get_reg(BQ24193_ChrgVolt);
|
||||||
|
data = (data & BQ24193_CHRGVOLT_VREG) >> 2;
|
||||||
|
*value = 0;
|
||||||
|
*value += ((data >> 0) & 1) ? 16 : 0;
|
||||||
|
*value += ((data >> 1) & 1) ? 32 : 0;
|
||||||
|
*value += ((data >> 2) & 1) ? 64 : 0;
|
||||||
|
*value += ((data >> 3) & 1) ? 128 : 0;
|
||||||
|
*value += ((data >> 4) & 1) ? 256 : 0;
|
||||||
|
*value += ((data >> 5) & 1) ? 512 : 0;
|
||||||
|
*value += 3504;
|
||||||
|
break;
|
||||||
|
case BQ24193_RechargeThreshold: // Recharge voltage threshold less than voltage limit (mV).
|
||||||
|
data = bq24193_get_reg(BQ24193_ChrgVolt);
|
||||||
|
data &= BQ24193_IRTHERMAL_THERM_MASK;
|
||||||
|
if (data)
|
||||||
|
*value = 300;
|
||||||
|
else
|
||||||
|
*value = 100;
|
||||||
|
break;
|
||||||
|
case BQ24193_ThermalRegulation: // Thermal regulation threshold (oC).
|
||||||
|
data = bq24193_get_reg(BQ24193_IRCompThermal);
|
||||||
|
data &= BQ24193_IRTHERMAL_THERM_MASK;
|
||||||
|
switch (data)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
*value = 60;
|
||||||
break;
|
break;
|
||||||
case BQ24193_DevID: // Dev ID.
|
case 1:
|
||||||
data = bq24193_get_reg(BQ24193_VendorPart);
|
*value = 80;
|
||||||
*value = data & BQ24193_VENDORPART_DEV_MASK;
|
|
||||||
break;
|
break;
|
||||||
case BQ24193_ProductNumber: // Product number.
|
case 2:
|
||||||
data = bq24193_get_reg(BQ24193_VendorPart);
|
*value = 100;
|
||||||
*value = (data & BQ24193_VENDORPART_PN_MASK) >> 3;
|
|
||||||
break;
|
break;
|
||||||
default:
|
case 3:
|
||||||
return -1;
|
*value = 120;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BQ24193_ChargeStatus: // 0: Not charging, 1: Pre-charge, 2: Fast charging, 3: Charge termination done
|
||||||
|
data = bq24193_get_reg(BQ24193_Status);
|
||||||
|
*value = (data & BQ24193_STATUS_CHRG_MASK) >> 4;
|
||||||
|
break;
|
||||||
|
case BQ24193_TempStatus: // 0: Normal, 2: Warm, 3: Cool, 5: Cold, 6: Hot.
|
||||||
|
data = bq24193_get_reg(BQ24193_FaultReg);
|
||||||
|
*value = data & BQ24193_FAULT_THERM_MASK;
|
||||||
|
break;
|
||||||
|
case BQ24193_DevID: // Dev ID.
|
||||||
|
data = bq24193_get_reg(BQ24193_VendorPart);
|
||||||
|
*value = data & BQ24193_VENDORPART_DEV_MASK;
|
||||||
|
break;
|
||||||
|
case BQ24193_ProductNumber: // Product number.
|
||||||
|
data = bq24193_get_reg(BQ24193_VendorPart);
|
||||||
|
*value = (data & BQ24193_VENDORPART_PN_MASK) >> 3;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -327,7 +327,7 @@ void max77620_config_default()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// Set default voltages and enable regulators.
|
// Set default voltages and enable regulators.
|
||||||
for (u32 i = 1; i <= REGULATOR_LDO8; i++)
|
for (u32 i = REGULATOR_SD1; i <= REGULATOR_LDO8; i++)
|
||||||
{
|
{
|
||||||
max77620_regulator_config_fps(i);
|
max77620_regulator_config_fps(i);
|
||||||
max7762x_regulator_set_voltage(i, _pmic_regulators[i].uv_default);
|
max7762x_regulator_set_voltage(i, _pmic_regulators[i].uv_default);
|
||||||
|
|||||||
@@ -24,7 +24,9 @@
|
|||||||
#include <sec/se_t210.h>
|
#include <sec/se_t210.h>
|
||||||
#include <soc/fuse.h>
|
#include <soc/fuse.h>
|
||||||
#include <soc/hw_init.h>
|
#include <soc/hw_init.h>
|
||||||
|
#include <soc/pmc.h>
|
||||||
#include <soc/t210.h>
|
#include <soc/t210.h>
|
||||||
|
#include <soc/timer.h>
|
||||||
#include <utils/types.h>
|
#include <utils/types.h>
|
||||||
|
|
||||||
static const u32 evp_thunk_template[] = {
|
static const u32 evp_thunk_template[] = {
|
||||||
|
|||||||
@@ -85,6 +85,7 @@
|
|||||||
#define AXBAR_BASE 0x702D0800
|
#define AXBAR_BASE 0x702D0800
|
||||||
#define I2S_BASE 0x702D1000
|
#define I2S_BASE 0x702D1000
|
||||||
#define ADMA_BASE 0x702E2000
|
#define ADMA_BASE 0x702E2000
|
||||||
|
#define AMC_BASE 0x702EF000
|
||||||
#define SE2_BASE 0x70412000
|
#define SE2_BASE 0x70412000
|
||||||
#define SE_PKA1_BASE 0x70420000
|
#define SE_PKA1_BASE 0x70420000
|
||||||
#define TZRAM_BASE 0x7C010000
|
#define TZRAM_BASE 0x7C010000
|
||||||
@@ -151,6 +152,7 @@
|
|||||||
#define CL_DVFS(off) MMIO_REG32(CL_DVFS_BASE, off)
|
#define CL_DVFS(off) MMIO_REG32(CL_DVFS_BASE, off)
|
||||||
#define I2S(off) MMIO_REG32(I2S_BASE, off)
|
#define I2S(off) MMIO_REG32(I2S_BASE, off)
|
||||||
#define ADMA(off) MMIO_REG32(ADMA_BASE, off)
|
#define ADMA(off) MMIO_REG32(ADMA_BASE, off)
|
||||||
|
#define AMC(off) MMIO_REG32(AMC_BASE, off)
|
||||||
#define SE2(off) MMIO_REG32(SE2_BASE, off)
|
#define SE2(off) MMIO_REG32(SE2_BASE, off)
|
||||||
#define SE_PKA1(off) MMIO_REG32(SE_PKA1_BASE, off)
|
#define SE_PKA1(off) MMIO_REG32(SE_PKA1_BASE, off)
|
||||||
#define USB(off) MMIO_REG32(USB_BASE, off)
|
#define USB(off) MMIO_REG32(USB_BASE, off)
|
||||||
@@ -199,7 +201,7 @@
|
|||||||
/*! AHB Gizmo registers. */
|
/*! AHB Gizmo registers. */
|
||||||
#define AHB_ARBITRATION_PRIORITY_CTRL 0x8
|
#define AHB_ARBITRATION_PRIORITY_CTRL 0x8
|
||||||
#define PRIORITY_CTRL_WEIGHT(x) (((x) & 7) << 29)
|
#define PRIORITY_CTRL_WEIGHT(x) (((x) & 7) << 29)
|
||||||
#define PRIORITY_SELECT_USB BIT(6) // USB-OTG.
|
#define PRIORITY_SELECT_USB BIT(6) // USB-OTG.
|
||||||
#define PRIORITY_SELECT_USB2 BIT(18) // USB-HSIC.
|
#define PRIORITY_SELECT_USB2 BIT(18) // USB-HSIC.
|
||||||
#define PRIORITY_SELECT_USB3 BIT(17) // XUSB.
|
#define PRIORITY_SELECT_USB3 BIT(17) // XUSB.
|
||||||
#define AHB_GIZMO_AHB_MEM 0x10
|
#define AHB_GIZMO_AHB_MEM 0x10
|
||||||
@@ -210,7 +212,7 @@
|
|||||||
#define AHB_GIZMO_USB 0x20
|
#define AHB_GIZMO_USB 0x20
|
||||||
#define AHB_GIZMO_SDMMC4 0x48
|
#define AHB_GIZMO_SDMMC4 0x48
|
||||||
#define AHB_GIZMO_USB2 0x7C
|
#define AHB_GIZMO_USB2 0x7C
|
||||||
#define AHB_GIZMO_USB3 0x80
|
#define AHB_GIZMO_USB3 0x80 // Doesn't exist on T21x??
|
||||||
#define AHB_GIZMO_IMMEDIATE BIT(18)
|
#define AHB_GIZMO_IMMEDIATE BIT(18)
|
||||||
#define AHB_ARBITRATION_XBAR_CTRL 0xE0
|
#define AHB_ARBITRATION_XBAR_CTRL 0xE0
|
||||||
#define AHB_AHB_MEM_PREFETCH_CFG3 0xE4
|
#define AHB_AHB_MEM_PREFETCH_CFG3 0xE4
|
||||||
@@ -219,9 +221,9 @@
|
|||||||
#define AHB_AHB_MEM_PREFETCH_CFG2 0xF4
|
#define AHB_AHB_MEM_PREFETCH_CFG2 0xF4
|
||||||
#define MST_ID(x) (((x) & 0x1F) << 26)
|
#define MST_ID(x) (((x) & 0x1F) << 26)
|
||||||
#define MEM_PREFETCH_AHBDMA_MST_ID MST_ID(5)
|
#define MEM_PREFETCH_AHBDMA_MST_ID MST_ID(5)
|
||||||
#define MEM_PREFETCH_USB_MST_ID MST_ID(6) // USB-OTG.
|
#define MEM_PREFETCH_USB_MST_ID MST_ID(6) // USB-OTG. Doesn't exist on T210B01.
|
||||||
#define MEM_PREFETCH_USB2_MST_ID MST_ID(18) // USB-HSIC.
|
#define MEM_PREFETCH_USB2_MST_ID MST_ID(18) // USB-HSIC. Doesn't exist on T210B01.
|
||||||
#define MEM_PREFETCH_USB3_MST_ID MST_ID(17) // XUSB.
|
#define MEM_PREFETCH_USB3_MST_ID MST_ID(17) // XUSB. Doesn't exist on T210B01.
|
||||||
#define MEM_PREFETCH_ADDR_BNDRY(x) (((x) & 0xF) << 21)
|
#define MEM_PREFETCH_ADDR_BNDRY(x) (((x) & 0xF) << 21)
|
||||||
#define MEM_PREFETCH_ENABLE BIT(31)
|
#define MEM_PREFETCH_ENABLE BIT(31)
|
||||||
#define AHB_ARBITRATION_AHB_MEM_WRQUE_MST_ID 0xFC
|
#define AHB_ARBITRATION_AHB_MEM_WRQUE_MST_ID 0xFC
|
||||||
|
|||||||
@@ -70,6 +70,8 @@
|
|||||||
#define UART_MCR_CTS_EN BIT(5)
|
#define UART_MCR_CTS_EN BIT(5)
|
||||||
#define UART_MCR_RTS_EN BIT(6)
|
#define UART_MCR_RTS_EN BIT(6)
|
||||||
|
|
||||||
|
#define UART_FIFO_SIZE 36
|
||||||
|
|
||||||
typedef struct _uart_t
|
typedef struct _uart_t
|
||||||
{
|
{
|
||||||
/* 0x00 */ vu32 UART_THR_DLAB;
|
/* 0x00 */ vu32 UART_THR_DLAB;
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ typedef struct _usb_cfg_descr_t
|
|||||||
u8 bConfigurationValue; // Value of this configuration (1 based).
|
u8 bConfigurationValue; // Value of this configuration (1 based).
|
||||||
u8 iConfiguration; // Index of String Descriptor describing the configuration.
|
u8 iConfiguration; // Index of String Descriptor describing the configuration.
|
||||||
u8 bmAttributes; // Configuration characteristics.
|
u8 bmAttributes; // Configuration characteristics.
|
||||||
u8 bMaxPower; // Maximum power consumed by this configuration.
|
u8 bMaxPower; // Maximum power consumed by this configuration. In 2mA (usb2) or 8mA (usb3).
|
||||||
} __attribute__((packed)) usb_cfg_descr_t;
|
} __attribute__((packed)) usb_cfg_descr_t;
|
||||||
|
|
||||||
/* Interface descriptor structure */
|
/* Interface descriptor structure */
|
||||||
|
|||||||
@@ -172,14 +172,14 @@ parse_padding_dec:
|
|||||||
_s_putc(c);
|
_s_putc(c);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 's':
|
|
||||||
_s_puts(va_arg(ap, char *), fill, fcnt);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'd':
|
case 'd':
|
||||||
_s_putn(va_arg(ap, u32), 10, fill, fcnt);
|
_s_putn(va_arg(ap, u32), 10, fill, fcnt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 's':
|
||||||
|
_s_puts(va_arg(ap, char *), fill, fcnt);
|
||||||
|
break;
|
||||||
|
|
||||||
case 'p':
|
case 'p':
|
||||||
case 'P':
|
case 'P':
|
||||||
case 'x':
|
case 'x':
|
||||||
@@ -261,14 +261,14 @@ parse_padding_dec:
|
|||||||
_s_putc(c);
|
_s_putc(c);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 's':
|
|
||||||
_s_puts(va_arg(ap, char *), fill, fcnt);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'd':
|
case 'd':
|
||||||
_s_putn(va_arg(ap, u32), 10, fill, fcnt);
|
_s_putn(va_arg(ap, u32), 10, fill, fcnt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 's':
|
||||||
|
_s_puts(va_arg(ap, char *), fill, fcnt);
|
||||||
|
break;
|
||||||
|
|
||||||
case 'p':
|
case 'p':
|
||||||
case 'P':
|
case 'P':
|
||||||
case 'x':
|
case 'x':
|
||||||
|
|||||||
Reference in New Issue
Block a user