mirror of
https://github.com/mist-devel/mist-firmware.git
synced 2026-05-05 15:54:34 +00:00
83 lines
1.4 KiB
C
83 lines
1.4 KiB
C
#include "spi.h"
|
|
#include "hardware.h"
|
|
|
|
/* generic helper */
|
|
void spi8(unsigned char parm) {
|
|
SPI(parm);
|
|
}
|
|
|
|
void spi16(unsigned short parm) {
|
|
SPI(parm >> 8);
|
|
SPI(parm >> 0);
|
|
}
|
|
|
|
void spi24(unsigned long parm) {
|
|
SPI(parm >> 16);
|
|
SPI(parm >> 8);
|
|
SPI(parm >> 0);
|
|
}
|
|
|
|
void spi32(unsigned long parm) {
|
|
SPI(parm >> 24);
|
|
SPI(parm >> 16);
|
|
SPI(parm >> 8);
|
|
SPI(parm >> 0);
|
|
}
|
|
|
|
// little endian: lsb first
|
|
void spi32le(unsigned long parm) {
|
|
SPI(parm >> 0);
|
|
SPI(parm >> 8);
|
|
SPI(parm >> 16);
|
|
SPI(parm >> 24);
|
|
}
|
|
|
|
void spi_n(unsigned char value, unsigned short cnt) {
|
|
while(cnt--)
|
|
SPI(value);
|
|
}
|
|
|
|
/* OSD related SPI functions */
|
|
void spi_osd_cmd_cont(unsigned char cmd) {
|
|
EnableOsd();
|
|
SPI(cmd);
|
|
}
|
|
|
|
void spi_osd_cmd(unsigned char cmd) {
|
|
spi_osd_cmd_cont(cmd);
|
|
DisableOsd();
|
|
}
|
|
|
|
void spi_osd_cmd8_cont(unsigned char cmd, unsigned char parm) {
|
|
EnableOsd();
|
|
SPI(cmd);
|
|
SPI(parm);
|
|
}
|
|
|
|
void spi_osd_cmd8(unsigned char cmd, unsigned char parm) {
|
|
spi_osd_cmd8_cont(cmd, parm);
|
|
DisableOsd();
|
|
}
|
|
|
|
void spi_osd_cmd32_cont(unsigned char cmd, unsigned long parm) {
|
|
EnableOsd();
|
|
SPI(cmd);
|
|
spi32(parm);
|
|
}
|
|
|
|
void spi_osd_cmd32(unsigned char cmd, unsigned long parm) {
|
|
spi_osd_cmd32_cont(cmd, parm);
|
|
DisableOsd();
|
|
}
|
|
|
|
void spi_osd_cmd32le_cont(unsigned char cmd, unsigned long parm) {
|
|
EnableOsd();
|
|
SPI(cmd);
|
|
spi32le(parm);
|
|
}
|
|
|
|
void spi_osd_cmd32le(unsigned char cmd, unsigned long parm) {
|
|
spi_osd_cmd32le_cont(cmd, parm);
|
|
DisableOsd();
|
|
}
|