#include <stdint.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <getopt.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/types.h>
#include <linux/spi/spidev.h>
static void pabort(const char *s)
{
perror(s);
abort();
}
static uint32_t mode;
static uint8_t bits = 8;
static uint32_t speed = 100000;
static uint16_t delay;
uint8_t reg_addr_value[16] = {0};
typedef struct _spi_t8a34002_reg {
unsigned int reg_size;
unsigned long reg_addr;
unsigned long reg_value;
unsigned int reg_flag;
}spi_t8a34002_reg_t;
spi_t8a34002_reg_t spi_t8a34002_reg_value[] =
{
{0x4, 0x7C, 0x00C01020, 1},
{0x4, 0x7C, 0x00C11020, 1},
{0x2, 0x60, 0x0000, 1},
{0x6, 0x64, 0x000000000000, 1},
{0x2, 0x6C, 0x0000, 1},
{0x1, 0x71, 0x00, 1},
{0x4, 0x7C, 0x80C11020, 1},
{0x1, 0x12, 0x00, 1},
{0x6, 0x14, 0x002D31010000, 1},
{0x1, 0x1B, 0x00, 1},
//{0xA, 0x24, 0x000012FDED02FFFF8940},
{0x5, 0x24, 0x000012FDED, 0},
{0x4, 0x02, 0xFFFF8940, 1},
{0x6, 0x30, 0x010000000000, 1},
{0x2, 0x38, 0x0100, 1},
{0x1, 0x3D, 0x01, 1},
//{0xA, 0x40, 0x0040420F00007D000100},
{0x5, 0x40, 0x0040420F00, 0},
{0x4, 0x00, 0x7D000100, 1},
{0x2, 0x4C, 0x0101, 1},
{0x6, 0x50, 0x40787D010000, 1},
{0x2, 0x58, 0x0100, 1},
{0x2, 0x5C, 0x0201, 1},
{0x4, 0x7C, 0x00C21020, 1},
{0x6, 0x00, 0x40787D010000, 1},
{0x2, 0x08, 0x0100, 1},
{0x2, 0x0C, 0x0301, 1},
//{0xA, 0x10, 0x0000093D00007D000100},
{0x5, 0x10, 0x0000093D00, 0},
{0x4, 0x00, 0x7D000100, 1},
{0x2, 0x1C, 0x0401, 1},
//{0xA, 0x20, 0x0000093D00007D000100},
{0x5, 0x20, 0x0000093D00, 0},
{0x4, 0x00, 0x7D000100, 1},
{0x2, 0x2C, 0x0501, 1},
{0x2, 0x38, 0x0100, 1},
{0x2, 0x3C, 0x0600, 1},
{0x2, 0x4C, 0x0720, 1},
{0x6, 0x50, 0x010000000000, 1},
{0x2, 0x58, 0x0100, 1},
{0x2, 0x5C, 0x0801, 1},
//{0xA, 0x60, 0x0040420F00007D000100},
{0x5, 0x60, 0x0040420F00, 0},
{0x4, 0x00, 0x7D000100, 1},
{0x2, 0x6C, 0x0901, 1},
{0x4, 0x7C, 0x80C21020, 1},
{0x6, 0x00, 0x40787D010000, 1},
{0x2, 0x08, 0x0100, 1},
{0x2, 0x0C, 0x0A01, 1},
{0x6, 0x10, 0x40787D010000, 1},
{0x2, 0x18, 0x0100, 1},
{0x2, 0x1C, 0x0B01, 1},
//{0xA, 0x20, 0x0000093D00007D000100},
{0x5, 0x20, 0x0000093D00, 0},
{0x4, 0x00, 0x7D000100, 1},
{0x2, 0x2C, 0x0C01, 1},
{0x2, 0x38, 0x0100, 1},
{0x2, 0x3C, 0x0D00, 1},
{0x2, 0x4C, 0x0E00, 1},
{0x2, 0x5C, 0x0F40, 1},
{0x1, 0x6B, 0x03, 1},
{0x1, 0x77, 0x03, 1},
{0x4, 0x7C, 0x00C31020, 1},
{0x1, 0x0B, 0x03, 1},
{0x1, 0x17, 0x03, 1},
{0x1, 0x23, 0x03, 1},
{0x1, 0x2F, 0x03, 1},
{0x1, 0x38, 0x00, 1},
{0x1, 0x3B, 0x00, 1},
{0x1, 0x42, 0x00, 1},
{0x1, 0x47, 0x00, 1},
{0x1, 0x53, 0x03, 1},
{0x1, 0x5F, 0x03, 1},
{0x1, 0x6B, 0x03, 1},
{0x1, 0x74, 0x00, 1},
{0x1, 0x77, 0x03, 1},
{0x4, 0x7C, 0x80C31020, 1},
{0x1, 0x0B, 0x03, 1},
{0x1, 0x17, 0x00, 1},
{0x1, 0x23, 0x00, 1},
{0x1, 0x2F, 0x00, 1},
{0x1, 0x33, 0x02, 1},
{0x1, 0x36, 0x00, 1},
{0x2, 0x3B, 0x0A01, 1},
{0x1, 0x5B, 0x00, 1},
{0x2, 0x62, 0x2828, 1},
{0x1, 0x67, 0x00, 1},
{0x4, 0x7C, 0x00C41020, 1},
{0x2, 0x0B, 0x0A01, 1},
{0x2, 0x32, 0x2828, 1},
{0x1, 0x37, 0x00, 1},
{0x2, 0x43, 0x0A01, 1},
{0x2, 0x6A, 0x2828, 1},
{0x1, 0x6F, 0x00, 1},
{0x4, 0x7C, 0x80C41020, 1},
{0x2, 0x0B, 0x0A01, 1},
{0x2, 0x32, 0x2828, 1},
{0x1, 0x37, 0x00, 1},
{0x2, 0x43, 0x0A01, 1},
{0x1, 0x6F, 0x00, 1},
{0x4, 0x7C, 0x00C51020, 1},
{0x2, 0x0B, 0x0A01, 1},
{0x1, 0x37, 0x00, 1},
{0x2, 0x43, 0x0A01, 1},
{0x1, 0x6F, 0x00, 1},
{0x4, 0x7C, 0x80C51020, 1},
{0x2, 0x0B, 0x0A01, 1},
{0x1, 0x37, 0x00, 1},
{0x2, 0x3B, 0x0A01, 1},
{0x1, 0x3F, 0x25, 1},
{0x1, 0x54, 0x00, 1},
{0x4, 0x7C, 0x00C61020, 1},
{0x6, 0x00, 0x000000041980, 1},
{0x3, 0x07, 0x000000, 1},
{0x1, 0x0B, 0x00, 1},
{0x3, 0x0D, 0x000000, 1},
{0x1, 0x11, 0x00, 1},
{0x1, 0x13, 0x00, 1},
{0x2, 0x18, 0x0000, 1},
//{0xD, 0x1B, 0x000000BAE1451EFFFF0000461E},
{0x6, 0x1B, 0x000000BAE145, 0},
{0x6, 0x1E, 0xFFFF0000461E, 1},
{0x1, 0x2D, 0x00, 1},
{0x1, 0x35, 0x00, 1},
{0x1, 0x37, 0x2A, 1},
//{0x9, 0x39, 0x000000000000041980},
{0x4, 0x39, 0x00000000, 0},
{0x4, 0x00, 0x00041980, 1},
{0x3, 0x43, 0x000000, 1},
{0x1, 0x47, 0x00, 1},
{0x3, 0x49, 0x000000, 1},
{0x1, 0x4D, 0x00, 1},
{0x1, 0x4F, 0x00, 1},
{0x2, 0x54, 0x0000, 1},
//{0xD, 0x57, 0x00009B3247CD1DFFFF24F40000},
{0x6, 0x57, 0x00009B3247CD, 0},
{0x6, 0x1D, 0xFFFF24F40000, 1},
{0x1, 0x69, 0x00, 1},
{0x1, 0x71, 0x00, 1},
{0x1, 0x73, 0x2A, 1},
{0x3, 0x75, 0x000000, 1},
{0x4, 0x7C, 0x80C61020, 1},
{0x6, 0x00, 0x000000041980, 1},
{0x3, 0x07, 0x000000, 1},
{0x1, 0x0B, 0x00, 1},
{0x3, 0x0D, 0x000000, 1},
{0x1, 0x11, 0x00, 1},
{0x1, 0x13, 0x00, 1},
{0x2, 0x18, 0x0000, 1},
//{0xD, 0x1B, 0x00C041FF984025FFFF14000000},
{0x6, 0x1B, 0x00C041FF9840, 0},
{0x6, 0x25, 0xFFFF14000000, 1},
{0x1, 0x2D, 0x00, 1},
{0x1, 0x35, 0x00, 1},
{0x1, 0x37, 0x2A, 1},
//{0x9, 0x39, 0x000000000000041980},
{0x4, 0x39, 0x00000000, 0},
{0x4, 0x00, 0x00041980, 1},
{0x3, 0x43, 0x000000, 1},
{0x1, 0x47, 0x00, 1},
{0x3, 0x49, 0x000000, 1},
{0x1, 0x4D, 0x00, 1},
{0x1, 0x4F, 0x00, 1},
{0x2, 0x54, 0x0000, 1},
//{0x9, 0x57, 0x000000000000000000},
{0x4, 0x57, 0x00000000, 0},
{0x4, 0x00, 0x00000000, 1},
{0x1, 0x63, 0x00, 1},
{0x1, 0x69, 0x00, 1},
{0x1, 0x71, 0x00, 1},
{0x1, 0x73, 0x2A, 1},
{0x3, 0x75, 0x000000, 1},
{0x4, 0x7C, 0x00C71020, 1},
{0x6, 0x00, 0x000000041980, 1},
{0x3, 0x07, 0x000000, 1},
{0x1, 0x0B, 0x00, 1},
{0x3, 0x0D, 0x000000, 1},
{0x1, 0x11, 0x00, 1},
{0x1, 0x13, 0x00, 1},
{0x2, 0x18, 0x0000, 1},
//{0x9, 0x1B, 0x000000000000000000},
{0x4, 0x1B, 0x00000000, 0},
{0x4, 0x00, 0x00000000, 1},
{0x1, 0x27, 0x00, 1},
{0x1, 0x2D, 0x00, 1},
{0x1, 0x35, 0x00, 1},
{0x1, 0x37, 0x2A, 1},
//{0x9, 0x39, 0x000000000000041980},
{0x4, 0x39, 0x00000000, 0},
{0x4, 0x00, 0x00041980, 1},
{0x3, 0x43, 0x000000, 1},
{0x1, 0x47, 0x00, 1},
{0x3, 0x49, 0x000000, 1},
{0x1, 0x4D, 0x00, 1},
{0x1, 0x4F, 0x00, 1},
{0x2, 0x54, 0x0000, 1},
//{0xD, 0x57, 0x0000C01722E81DFFFFF5000000},
{0x6, 0x57, 0x0000C01722E8, 0},
{0x6, 0x1D, 0xFFFFF5000000, 1},
{0x1, 0x69, 0x00, 1},
{0x1, 0x71, 0x00, 1},
{0x1, 0x73, 0x2A, 1},
{0x3, 0x75, 0x000000, 1},
{0x4, 0x7C, 0x80C71020, 1},
{0x6, 0x00, 0x000000041980, 1},
{0x3, 0x07, 0x000000, 1},
{0x1, 0x0B, 0x00, 1},
{0x3, 0x0D, 0x000000, 1},
{0x1, 0x11, 0x00, 1},
{0x1, 0x13, 0x00, 1},
{0x2, 0x18, 0x0000, 1},
//{0x9, 0x1B, 0x000000000000000000},
{0x4, 0x1B, 0x00000000, 0},
{0x4, 0x00, 0x00000000, 1},
{0x1, 0x27, 0x00, 1},
{0x1, 0x2D, 0x00, 1},
{0x1, 0x35, 0x00, 1},
{0x1, 0x37, 0x2A, 1},
//{0x9, 0x39, 0x000000000000041980},
{0x4, 0x39, 0x00000000, 0},
{0x4, 0x00, 0x00041980, 1},
{0x3, 0x43, 0x000000, 1},
{0x1, 0x47, 0x00, 1},
{0x3, 0x49, 0x000000, 1},
{0x1, 0x4D, 0x00, 1},
{0x1, 0x4F, 0x00, 1},
{0x2, 0x54, 0x0000, 1},
//{0x9, 0x57, 0x000000000000000000},
{0x4, 0x57, 0x00000000, 0},
{0x4, 0x00, 0x00000000, 1},
{0x1, 0x63, 0x00, 1},
{0x1, 0x69, 0x00, 1},
{0x1, 0x71, 0x00, 1},
{0x1, 0x73, 0x2A, 1},
{0x3, 0x75, 0x000000, 1},
{0x4, 0x7C, 0x00C81020, 1},
{0x3, 0x00, 0x000004, 1},
{0x2, 0x04, 0x6480, 1},
{0x3, 0x07, 0x000000, 1},
{0x1, 0x0B, 0x00, 1},
{0x3, 0x0D, 0x000000, 1},
{0x1, 0x11, 0x00, 1},
{0x1, 0x13, 0x00, 1},
{0x2, 0x15, 0x0000, 1},
{0x1, 0x1B, 0x00, 1},
{0x1, 0x1F, 0x00, 1},
{0x1, 0x23, 0x00, 1},
{0x1, 0x27, 0x00, 1},
{0x1, 0x2B, 0x00, 1},
{0x1, 0x2F, 0x00, 1},
{0x1, 0x33, 0x00, 1},
{0x1, 0x37, 0x00, 1},
{0x1, 0x3F, 0x00, 1},
{0x1, 0x47, 0x00, 1},
{0x1, 0x4F, 0x00, 1},
{0x1, 0x57, 0x00, 1},
{0x1, 0x5F, 0x00, 1},
{0x1, 0x67, 0x00, 1},
{0x1, 0x6F, 0x00, 1},
{0x1, 0x77, 0x00, 1},
{0x4, 0x7C, 0x80C81020, 1},
{0x1, 0x07, 0x00, 1},
{0x1, 0x0F, 0x00, 1},
{0x1, 0x17, 0x00, 1},
{0x1, 0x1F, 0x00, 1},
{0x1, 0x27, 0x00, 1},
{0x1, 0x2F, 0x00, 1},
{0x1, 0x37, 0x00, 1},
{0x2, 0x3F, 0x0000, 1},
{0x1, 0x47, 0x00, 1},
{0x1, 0x52, 0x00, 1},
{0x1, 0x64, 0x00, 1},
{0x1, 0x76, 0x00, 1},
{0x4, 0x7C, 0x00C91020, 1},
{0x1, 0x10, 0x00, 1},
{0x1, 0x22, 0x00, 1},
{0x1, 0x34, 0x00, 1},
{0x1, 0x46, 0x00, 1},
{0x1, 0x58, 0x00, 1},
{0x1, 0x6A, 0x00, 1},
{0x4, 0x7C, 0x80C91020, 1},
{0x1, 0x10, 0x00, 1},
{0x1, 0x22, 0x00, 1},
{0x1, 0x34, 0x00, 1},
{0x1, 0x46, 0x00, 1},
{0x1, 0x58, 0x00, 1},
{0x1, 0x6A, 0x00, 1},
{0x4, 0x7C, 0x00CA1020, 1},
{0x1, 0x10, 0x00, 1},
{0x6, 0x12, 0x00000000461E, 1},
{0x3, 0x1B, 0x004120, 1},
{0x6, 0x22, 0x00003E000000, 1},
{0x3, 0x2B, 0x004120, 1},
{0x5, 0x33, 0x0004000000, 1},
{0x3, 0x3B, 0x004120, 1},
{0x5, 0x43, 0x0024F40000, 1},
{0x3, 0x4B, 0x004120, 1},
{0x5, 0x53, 0x0004000000, 1},
{0x3, 0x5B, 0x004120, 1},
{0x5, 0x63, 0x0005000000, 1},
{0x3, 0x6B, 0x004120, 1},
{0x1, 0x73, 0x00, 1},
{0x4, 0x7C, 0x80CA1020, 1},
{0x4, 0x00, 0xF5000000, 1},
{0x3, 0x07, 0x004120, 1},
{0x2, 0x0F, 0x0000, 1},
{0x1, 0x13, 0x00, 1},
{0x3, 0x17, 0x000000, 1},
{0x1, 0x1F, 0x00, 1},
{0x2, 0x22, 0x0000, 1},
{0x3, 0x27, 0x000000, 1},
{0x1, 0x2F, 0x00, 1},
{0x2, 0x33, 0x0000, 1},
{0x3, 0x37, 0x000000, 1},
{0x1, 0x3F, 0x00, 1},
{0x1, 0x43, 0x00, 1},
{0x4, 0x46, 0x00000000, 1},
{0x1, 0x4F, 0x00, 1},
{0x1, 0x53, 0x00, 1},
{0x3, 0x57, 0x000000, 1},
{0x1, 0x5F, 0x00, 1},
{0x1, 0x68, 0x00, 1},
{0x4, 0x7C, 0x00CB1020, 1},
{0x1, 0x04, 0x00, 1},
{0x1, 0x0C, 0x00, 1},
{0x1, 0x14, 0x00, 1},
{0x1, 0x1C, 0x00, 1},
{0x1, 0x24, 0x00, 1},
{0x1, 0x2C, 0x00, 1},
{0x1, 0x34, 0x00, 1},
{0x1, 0x3C, 0x00, 1},
{0x1, 0x45, 0x00, 1},
{0x1, 0x49, 0x00, 1},
{0x1, 0x4D, 0x00, 1},
{0x1, 0x53, 0x00, 1},
{0x1, 0x55, 0x00, 1},
{0x1, 0x5D, 0x00, 1},
{0x1, 0x65, 0x00, 1},
{0x1, 0x6D, 0x00, 1},
{0x1, 0x71, 0x00, 1},
{0x1, 0x75, 0x00, 1},
{0x4, 0x7C, 0x80CB1020, 1},
{0x1, 0x05, 0x00, 1},
{0x1, 0x09, 0x00, 1},
{0x1, 0x0D, 0x00, 1},
{0x1, 0x13, 0x00, 1},
{0x1, 0x15, 0x00, 1},
{0x1, 0x1D, 0x00, 1},
{0x1, 0x25, 0x00, 1},
{0x1, 0x2D, 0x00, 1},
{0x1, 0x31, 0x00, 1},
{0x1, 0x35, 0x00, 1},
{0x1, 0x3B, 0x00, 1},
{0x1, 0x3D, 0x00, 1},
{0x1, 0x45, 0x00, 1},
{0x2, 0x4B, 0x0000, 1},
{0x1, 0x4E, 0x00, 1},
{0x1, 0x50, 0x00, 1},
{0x1, 0x52, 0x00, 1},
{0x4, 0x7C, 0x00CC1020, 1},
{0x1, 0x0F, 0x00, 1},
{0x1, 0x1F, 0x00, 1},
{0x1, 0x2F, 0x00, 1},
{0x1, 0x3F, 0x00, 1},
{0x1, 0x4E, 0x00, 1},
{0x1, 0x5E, 0x00, 1},
{0x1, 0x6E, 0x00, 1},
{0x4, 0x7C, 0x80CC1020},
{0x1, 0x0E, 0x00, 1},
{0x1, 0x1E, 0x00, 1},
{0x1, 0x2E, 0x00, 1},
{0x1, 0x3E, 0x00, 1},
{0x1, 0x4E, 0x00, 1},
{0x1, 0x54, 0x00, 1},
{0x4, 0x7C, 0x00CD1020, 1},
{0x1, 0x06, 0x00, 1},
{0x1, 0x0E, 0x00, 1},
{0x1, 0x16, 0x00, 1},
{0x1, 0x1E, 0x00, 1},
{0x1, 0x25, 0x00, 1},
{0x4, 0x7C, 0x80CD1020, 1},
{0x1, 0x02, 0x00, 1},
{0x1, 0x04, 0x00, 1},
{0x1, 0x06, 0x00, 1},
{0x1, 0x0A, 0x00, 1},
{0x1, 0x0C, 0x00, 1},
{0x1, 0x0E, 0x00, 1},
{0x1, 0x12, 0x00, 1},
{0x1, 0x14, 0x00, 1},
{0x1, 0x16, 0x00, 1},
{0x1, 0x1A, 0x00, 1},
{0x1, 0x1C, 0x00, 1},
{0x1, 0x1E, 0x00, 1},
{0x4, 0x7C, 0x00CE1020, 1},
{0x1, 0x04, 0x00, 1},
{0x1, 0x0A, 0x00, 1},
{0x1, 0x0C, 0x00, 1},
{0x1, 0x10, 0x00, 1},
{0x1, 0x14, 0x00, 1},
{0x1, 0x16, 0x00, 1},
{0x1, 0x1C, 0x00, 1},
{0x1, 0x22, 0x00, 1},
{0x1, 0x24, 0x00, 1},
{0x1, 0x28, 0x00, 1},
{0x1, 0x2C, 0x00, 1},
{0x1, 0x2E, 0x00, 1},
{0x1, 0x34, 0x00, 1},
{0x1, 0x3A, 0x00, 1},
{0x1, 0x40, 0x00, 1},
{0x1, 0x44, 0x00, 1},
{0x1, 0x46, 0x00, 1},
{0x1, 0x4C, 0x00, 1},
{0x1, 0x52, 0x00, 1},
{0x1, 0x58, 0x00, 1},
{0x1, 0x5E, 0x00, 1},
{0x4, 0x7C, 0x00CF1020, 1},
{0x1, 0x4A, 0x05, 1},
{0x1, 0x4E, 0x77, 1},
{0x1, 0x5B, 0x00, 1},
{0x1, 0x5F, 0x00, 1},
{0x1, 0x67, 0x00, 1},
{0x1, 0x6D, 0x00, 1},
};
static void transfer(int fd, uint8_t const *tx, uint8_t const *rx, size_t len)
{
int ret;
struct spi_ioc_transfer tr = {
.tx_buf = (unsigned long)tx,
.rx_buf = (unsigned long)rx,
.len = len,
.delay_usecs = delay,
.speed_hz = speed,
.bits_per_word = bits,
};
ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr);
if (ret < 1)
printf("can't send spi message\n");
}
/*************
* 初始化idt8a34002
**************/
static int idt8a34002_init(void)
{
int fd, ret = 0;
char *device = "/dev/spidev0.0";
fd = open(device, O_RDWR);
if (fd < 0)
pabort("can't open device");
ret = ioctl(fd, SPI_IOC_WR_MODE32, &mode);
if (ret == -1)
pabort("can't set spi mode");
ret = ioctl(fd, SPI_IOC_RD_MODE32, &mode);
if (ret == -1)
pabort("can't get spi mode");
ret = ioctl(fd, SPI_IOC_WR_BITS_PER_WORD, &bits);
if (ret == -1)
pabort("can't set bits per word");
ret = ioctl(fd, SPI_IOC_RD_BITS_PER_WORD, &bits);
if (ret == -1)
pabort("can't get bits per word");
ret = ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed);
if (ret == -1)
pabort("can't set max speed hz");
ret = ioctl(fd, SPI_IOC_RD_MAX_SPEED_HZ, &speed);
if (ret == -1)
pabort("can't get max speed hz");
#if 0
printf("open:%s\n", device);
printf("cpld:spi mode: 0x%x\n", mode);
printf("cpld:bits per word: %d\n", bits);
printf("cpld:max speed: %d Hz (%d KHz)\n", speed, speed/1000);
#endif
return fd;
}
static int init_spi_t8a34002(void) //时钟芯片t8a34002初始化
{
int array_size = 0;
int value_size = 0, last_size = 0;
int fd;
int pos = 0, size = 0;
fd = idt8a34002_init();
array_size = sizeof(spi_t8a34002_reg_value) / sizeof(spi_t8a34002_reg_t);
printf("IDT8a34002 reg size is %d\n", array_size);
spi_t8a34002_reg_t* p = spi_t8a34002_reg_value;
for (pos = 0; pos < array_size; pos++) {
if (p->reg_flag) {
printf("********************************\n");
reg_addr_value[last_size] = p->reg_addr;
for (size = 0; size < p->reg_size; size++) {
value_size = p->reg_size + last_size - size;
reg_addr_value[value_size] = (uint8_t)((p->reg_value >> (8*size)) & 0xff);
printf("reg_addr_value[%d]=0x%x\n", value_size, reg_addr_value[value_size]);
}
transfer(fd, reg_addr_value, NULL, p->reg_size + 1 +last_size);
last_size = 0;
printf("addr=0x%x value=0x%lx, size=0x%x\n", p->reg_addr, p->reg_value, p->reg_size);
} else {
printf("**************************************************\n");
reg_addr_value[0] = p->reg_addr;
for (size = 0; size < p->reg_size; size++) {
value_size = p->reg_size - size;
reg_addr_value[value_size] = (uint8_t)((p->reg_value >> (8*size)) & 0xff);
printf("reg_addr_value[%d]=0x%x\n", value_size, reg_addr_value[value_size]);
}
last_size = p->reg_size + 1;
printf("addr=0x%x value=0x%lx, size=0x%x\n", p->reg_addr, p->reg_value, p->reg_size);
}
p++;
}
close(fd);
return 0;
}
/*************
* main
**************/
int main(int argc, char *argv[])
{
printf("spi_idt8a34002 by fish.\n");
init_spi_t8a34002();
return 0;
}
linux用户层下通过spi配置idt8a34002
最新推荐文章于 2024-01-02 21:13:10 发布