SPI CLK не изменяется при инициализации настройки SPI.Linux

Ответить
Anonymous
 SPI CLK не изменяется при инициализации настройки SPI.

Сообщение Anonymous »

Теперь я получаю доступ к периферийному устройству с помощью интерфейса SPI в среде Linux.
Доступ к этому устройству разрешен.
Я хочу измените SPI CLK, но он не изменяется значением настройки clk.
Следующий код предназначен для инициализации SPI.

Код: Выделить всё

int spidev_init(char *rfdev, int mode, int bits, int speed)
{
int file;
int ret;

file = open(rfdev, O_RDWR);
if (file < 0) {
printf("%s can't open device!!!\0", rfdev);
return -1;
}

/*
* spi mode
*/
ret = ioctl(file, SPI_IOC_WR_MODE, &mode);
if (ret == -1) {
printf("%s can't set spi mode!!!", rfdev);
return -2;
}
else
bit2equ(spi_mode, mode);

ret = ioctl(file, SPI_IOC_RD_MODE, &mode);
if (ret == -1) {
printf("%s can't get spi mode!!!", rfdev);
return -3;
}

/*
* bits per word
*/
ret = ioctl(file, SPI_IOC_WR_BITS_PER_WORD, &bits);
if (ret == -1) {
printf("%s can't set bits per word!!!", rfdev);
return -4;
} else
bit2equ(spi_bits, bits);

ret = ioctl(file, SPI_IOC_RD_BITS_PER_WORD, &bits);
if (ret == -1) {
printf("%s can't get bits per word!!!", rfdev);
return -5;
}

/*
* max speed hz
*/
ret = ioctl(file, SPI_IOC_WR_MAX_SPEED_HZ, &speed);
if (ret == -1) {
printf("%s can't set max speed hz!!!", rfdev);
return -6;
} else
bit2equ(spi_speed, speed);

ret = ioctl(file, SPI_IOC_RD_MAX_SPEED_HZ, &speed);
if (ret == -1) {
printf("%s can't get max speed hz!!!", rfdev);
return -7;
}

return file;
}
Я думаю, что в этом коде нет отладки.
Ниже приведен dts-скрипт для SPI.

Код: Выделить всё

&spi2 {
pinctrl-names = "default";
pinctrl-0 = ;
pinctrl-1 = ;
#address-cells = ;
#size-cells = ;
status = "okay";

spidev@0 {
compatible = "rohm,dh2228fv";
reg = ;
spi-max-frequency = ;
//      spi-max-frequency = ;
//      spi-max-frequency = ;
};
};

spi2: ssp@e401e000 {
compatible = "zinus,zinus-spi";
reg = ;
interrupts = ;
clocks = , ;
clock-names = "spiclk", "apb_pclk";
resets = ;
reset-names = "spi";
dmas = , ;
dma-names = "tx", "rx";
status = "disabled";
};

spi2 {
spi2_pincfg:spi2_pincfg {
zinus,pins = ,
,
,
;
};

spi2_pincfg_sleep:spi2-pincfg-sleep {
zinus,pins = ,
,
,
;
};
};
Есть ли смысл проверять изменение SPI CLK.
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/793 ... -spi-setup
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»