linux用户层下通过spi配置idt8a34002

本文详细介绍了如何通过C语言操作Linux SPI设备驱动,对IDT8a34002时钟芯片进行初始化设置,包括SPI模式、位宽、速度等,并执行了一系列寄存器读写操作。
#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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值