TT Zephyr Platforms 18.11.99
Tenstorrent Firmware
Loading...
Searching...
No Matches
regulator.c File Reference
#include "avs.h"
#include "dw_apb_i2c.h"
#include "regulator.h"
#include "regulator_config.h"
#include "status_reg.h"
#include "timer.h"
#include <math.h>
#include <float.h>
#include <stdint.h>
#include <tenstorrent/smc_msg.h>
#include <tenstorrent/msgqueue.h>
#include <tenstorrent/post_code.h>
#include <tenstorrent/sys_init_defines.h>
#include <zephyr/init.h>
#include <zephyr/kernel.h>
#include <zephyr/logging/log.h>
#include <zephyr/drivers/misc/bh_fwtable.h>

Data Structures

struct  OperationBits

Macros

#define LINEAR_FORMAT_CONSTANT   (1 << 9)
#define SCALE_LOOP   0.335f
#define PMBUS_MST_ID   1
#define MFR_CTRL_OPS   0xD2
#define MFR_CTRL_OPS_DATA_BYTE_SIZE   1
#define VOUT_COMMAND   0x21
#define VOUT_COMMAND_DATA_BYTE_SIZE   2
#define VOUT_SCALE_LOOP   0x29
#define VOUT_SCALE_LOOP_DATA_BYTE_SIZE   2
#define READ_VOUT   0x8B
#define READ_VOUT_DATA_BYTE_SIZE   2
#define READ_IOUT   0x8C
#define READ_IOUT_DATA_BYTE_SIZE   2
#define READ_POUT   0x96
#define READ_POUT_DATA_BYTE_SIZE   2
#define OPERATION   0x1
#define OPERATION_DATA_BYTE_SIZE   1
#define PMBUS_CMD_BYTE_SIZE   1
#define PMBUS_FLIP_BYTES   0
#define GDDR_VDDR_FB1   0.422
#define GDDR_VDDR_FB2   1.0
#define CB_GDDR_VDDR_FB1   1.37
#define CB_GDDR_VDDR_FB2   4.32
#define SCRAPPY_GDDR_VDDR_FB1   1.07
#define SCRAPPY_GDDR_VDDR_FB2   3.48

Functions

 LOG_MODULE_REGISTER (regulator)
static float ConvertLinear11ToFloat (uint16_t value)
float GetVcoreCurrent (void)
float GetVcorePower (void)
static void set_max20730 (uint32_t slave_addr, uint32_t voltage_in_mv, float rfb1, float rfb2)
static void set_mpm3695 (uint32_t slave_addr, uint32_t voltage_in_mv, float rfb1, float rfb2)
static void i2c_set_max20816 (uint32_t slave_addr, uint32_t voltage_in_mv)
static float i2c_get_max20816 (uint32_t slave_addr)
void set_vcore (uint32_t voltage_in_mv)
uint32_t get_vcore (void)
void set_vcorem (uint32_t voltage_in_mv)
uint32_t get_vcorem (void)
void set_gddr_vddr (PcbType board_type, uint32_t voltage_in_mv)
void SwitchVoutControl (VoltageCmdSource source)
uint32_t RegulatorInit (PcbType board_type)
static uint8_t set_voltage_handler (const union request *request, struct response *response)
static uint8_t get_voltage_handler (const union request *request, struct response *response)
static uint8_t switch_vout_control_handler (const union request *request, struct response *response)
 REGISTER_MESSAGE (TT_SMC_MSG_SET_VOLTAGE, set_voltage_handler)
 REGISTER_MESSAGE (TT_SMC_MSG_GET_VOLTAGE, get_voltage_handler)
 REGISTER_MESSAGE (TT_SMC_MSG_SWITCH_VOUT_CONTROL, switch_vout_control_handler)
static int regulator_init (void)
 SYS_INIT_APP (regulator_init)

Variables

static uint8_t vout_cmd_source = VoutCommand
static const struct device *const fwtable_dev = DEVICE_DT_GET(DT_NODELABEL(fwtable))

Macro Definition Documentation

◆ CB_GDDR_VDDR_FB1

#define CB_GDDR_VDDR_FB1   1.37

◆ CB_GDDR_VDDR_FB2

#define CB_GDDR_VDDR_FB2   4.32

◆ GDDR_VDDR_FB1

#define GDDR_VDDR_FB1   0.422

◆ GDDR_VDDR_FB2

#define GDDR_VDDR_FB2   1.0

◆ LINEAR_FORMAT_CONSTANT

#define LINEAR_FORMAT_CONSTANT   (1 << 9)

◆ MFR_CTRL_OPS

#define MFR_CTRL_OPS   0xD2

◆ MFR_CTRL_OPS_DATA_BYTE_SIZE

#define MFR_CTRL_OPS_DATA_BYTE_SIZE   1

◆ OPERATION

#define OPERATION   0x1

◆ OPERATION_DATA_BYTE_SIZE

#define OPERATION_DATA_BYTE_SIZE   1

◆ PMBUS_CMD_BYTE_SIZE

#define PMBUS_CMD_BYTE_SIZE   1

◆ PMBUS_FLIP_BYTES

#define PMBUS_FLIP_BYTES   0

◆ PMBUS_MST_ID

#define PMBUS_MST_ID   1

◆ READ_IOUT

#define READ_IOUT   0x8C

◆ READ_IOUT_DATA_BYTE_SIZE

#define READ_IOUT_DATA_BYTE_SIZE   2

◆ READ_POUT

#define READ_POUT   0x96

◆ READ_POUT_DATA_BYTE_SIZE

#define READ_POUT_DATA_BYTE_SIZE   2

◆ READ_VOUT

#define READ_VOUT   0x8B

◆ READ_VOUT_DATA_BYTE_SIZE

#define READ_VOUT_DATA_BYTE_SIZE   2

◆ SCALE_LOOP

#define SCALE_LOOP   0.335f

◆ SCRAPPY_GDDR_VDDR_FB1

#define SCRAPPY_GDDR_VDDR_FB1   1.07

◆ SCRAPPY_GDDR_VDDR_FB2

#define SCRAPPY_GDDR_VDDR_FB2   3.48

◆ VOUT_COMMAND

#define VOUT_COMMAND   0x21

◆ VOUT_COMMAND_DATA_BYTE_SIZE

#define VOUT_COMMAND_DATA_BYTE_SIZE   2

◆ VOUT_SCALE_LOOP

#define VOUT_SCALE_LOOP   0x29

◆ VOUT_SCALE_LOOP_DATA_BYTE_SIZE

#define VOUT_SCALE_LOOP_DATA_BYTE_SIZE   2

Function Documentation

◆ ConvertLinear11ToFloat()

float ConvertLinear11ToFloat ( uint16_t value)
static

◆ get_vcore()

uint32_t get_vcore ( void )

◆ get_vcorem()

uint32_t get_vcorem ( void )

◆ get_voltage_handler()

uint8_t get_voltage_handler ( const union request * request,
struct response * response )
static

◆ GetVcoreCurrent()

float GetVcoreCurrent ( void )

◆ GetVcorePower()

float GetVcorePower ( void )

◆ i2c_get_max20816()

float i2c_get_max20816 ( uint32_t slave_addr)
static

◆ i2c_set_max20816()

void i2c_set_max20816 ( uint32_t slave_addr,
uint32_t voltage_in_mv )
static

◆ LOG_MODULE_REGISTER()

LOG_MODULE_REGISTER ( regulator )

◆ REGISTER_MESSAGE() [1/3]

REGISTER_MESSAGE ( TT_SMC_MSG_GET_VOLTAGE ,
get_voltage_handler  )

◆ REGISTER_MESSAGE() [2/3]

REGISTER_MESSAGE ( TT_SMC_MSG_SET_VOLTAGE ,
set_voltage_handler  )

◆ REGISTER_MESSAGE() [3/3]

◆ regulator_init()

int regulator_init ( void )
static

◆ RegulatorInit()

uint32_t RegulatorInit ( PcbType board_type)

◆ set_gddr_vddr()

void set_gddr_vddr ( PcbType board_type,
uint32_t voltage_in_mv )

◆ set_max20730()

void set_max20730 ( uint32_t slave_addr,
uint32_t voltage_in_mv,
float rfb1,
float rfb2 )
static

◆ set_mpm3695()

void set_mpm3695 ( uint32_t slave_addr,
uint32_t voltage_in_mv,
float rfb1,
float rfb2 )
static

◆ set_vcore()

void set_vcore ( uint32_t voltage_in_mv)

◆ set_vcorem()

void set_vcorem ( uint32_t voltage_in_mv)

◆ set_voltage_handler()

uint8_t set_voltage_handler ( const union request * request,
struct response * response )
static

◆ switch_vout_control_handler()

uint8_t switch_vout_control_handler ( const union request * request,
struct response * response )
static

◆ SwitchVoutControl()

void SwitchVoutControl ( VoltageCmdSource source)

◆ SYS_INIT_APP()

SYS_INIT_APP ( regulator_init )

Variable Documentation

◆ fwtable_dev

const struct device* const fwtable_dev = DEVICE_DT_GET(DT_NODELABEL(fwtable))
static

◆ vout_cmd_source

uint8_t vout_cmd_source = VoutCommand
static