How to lower Clock speed of spidev1.0?


#1

Hi,
my application runs on a custom board with WP76xx and a Legato system based upon 18.08.

All provided sample applications use a speed value of 960000 for the API call le_spi_Configure().
For my character LCD I need a clock speed lower than 100000.

If I try to configure a clock speed below 960000, I get the following error messages in my terminal:

spi_qsd : msm_spi_clock_set: no match found for requested clock frequency
spi_qsd : msm_spi_process_transfer: Error setting QUP to reset_state

When I check the file spisvc.c, I see that the routine spisvc_init contains the following:

_struct spi_board_info board = {_

_ .modalias = “spidev”,_
_ .max_speed_hz = 15058800,_
_ .mode = SPI_MODE_3,_
_ .platform_data = NULL,_
_ .bus_num = 0,_
_ .chip_select = 0,_
_ .irq = 0,_
_ };_

It mentions a maximum speed, but, no minimum speed.

Is there still a minimum speed limitation for spidev1.0, as was mentioned in Legato 17.08.1 release notes ?

Greetings,

annaertd


#2

To reduce the clock frequency we have to change “max_speed_hz = 15058800” to required the frequency.
You can check in product technical specs(Rev6.2) of WP76xx where it was mentioned 960 kbps to 25 Mbps(section 4.17) is operating frequency range of SPI.
Hence we cannot reduce the frequency below operating frequency 960000.