Project

General

Profile

API reference for the firmware

NOTE: this page is quite outdated. Read the source :)

hello_world.S

Some even earlier assembly-written test code. Mostly obsolete now, we only use it to
  • set the PWL (backlight) to a moderate level
  • jump to the C code 'main' function

main,c

This function simply serves to execute some of the driver test functions.

calypso_clock.c

calypso_clk_dump(void)

Dump the clock related registers to the serial port

calypso_pll_set(uint16_t inp)

Set the DPLL of the Calypso chip to a given value, such as CALYPSO_PLL_87_MHZ

calypso_reset_get(enum calypso_rst)

Obtain the status of DSP, External and Watchdog reset lines

calypso_reset_set(enum calypso_rst, int active)

Enable or disalbe one of the three reset signals.

calypso_dsp.c

Code related to booting the DSP inside the Calypso DBB chip.

dump_dsp_version(void)

Dump the DSP Download Status and DSP API Version to the serial port

dsp_power_on(void)

Release DSP from reset, download the bootcode and set API_NDB parameters

calypso_i2c.c

Driver for the I2C master controller in the Calypso DBB

i2c_init(int speed, int slaveadd)

Initialize the Calypso DBB I2C Master controller

WARNING: the parameters are currently unused. We use a static speed of 197kHz on the I2C bus

i2c_write(uint8_t chip, uint32_t addr, int alen, const uint8_t *buffer, int len)

Write to a I2C peripheral.
  • chip: I2C slave address
  • addr: The address inside the I2C slave
  • alen: length of the address field (we only support alen=1)
  • buffer: The data to be written to the slave
  • len: Length of the data to be written. We only support len <= 16!

calypso_spi.c

A driver for the Calypso DBB SPI controller

spi_init(void)

Initialize the SPI controller

spi_xfer(uint8_t dev_idx, uint8_t bitlen, const void *dout, void *din)

Perform a SPI transfer.
  • dev_idx: The SPI slave device index (0..4), determine which chip select to use
  • bitlen: Length of the transfer in number of bits
  • dout: Pointer of to-be-transmitted data
  • din: Pointer to memory where received data is to be stored (can be NULL for tx-only transfer)

calypso_tpu.c

Driver for the Time Processing Unit (TPU), still under development

calypso_tsp.c

Driver for the TSP (Time Serial Port) of the TPU, still under development

trf6151.c

Driver for the RF Frontend TRF6151, still under development

font_8x8.c

A very simple 8x8 pixel monochrome monospaced font

st7558.c

A driver for the Sitronix ST7558 dot-matrix LCD attached to a I2C bus

st7558_init(void)

Initialize the LCD

void st7558_set_attr(unsigned long attr)

Set display attributes (currently only DISP_ATTR_INVERT)

void st7558_unset_attr(unsigned long attr)

Unset display attributes (currently only DISP_ATTR_INVERT)

void st7558_clrscr(void)

Clear the screen

void st7558_putchar(unsigned char c)

Display a single character using the 8x8 font

void st7558_puts(const char *s)

Display a string of characters using the 8x8 font

twl3025.c

Driver for the Analog Baseband (ABB) TWL3025, attached to SPI (dev_idx=0).

void twl3025_init(void)

Initialize the driver.

void twl3025_reg_write(uint8_t reg, uint16_t data)

Write a TWL3025 register

uint16_t twl3025_reg_read(uint8_t reg)

Read a TWL3025 register

void twl3025_power_off(void)

Power-off the phone.