On Tue, 19 Jul 2016, Alexander Shiyan wrote: > >Вторник, 19 июля 2016, 20:18 +03:00 от Alexander Kurz : > > > >Hi, > >I just ran into a problem resulting from patch 6e18b3a48ee4 > >("mc13xxx: Define maximum SPI clock frequency global to driver"). > > > >On a kindle2 board the SPI communication between an iMX31 and a MC13783 > >won't work at 20MHz. Unfortunately both ICs are BGA mounted blocking any > >access with scope probes. Attempts to tweak the pad properties to > >PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST | PAD_CTL_100K_PU > >did not solve the problem - anyway this is a battery powered device where > >the original implementers took great care on long battery life, > >e.g. PAD_CTL_DRV_HIGH should not be nessesary for PMIC control. > > > >I do not see any way to override the 20MHz bitrate from board code, and > >since the PMIC access is not time critical on an ebook-reader my choice > >would be rather 200kHz. > > > >Is there any way to override the driver supplied default max_speed_hz? > >If not, my proposal is to either > >* revert this patch and let the board code choose frequency > >or > >* reduce the speed to some common acceptable rate, e.g. 6MHz are fine > > > >How was this solved with other SPI devices? > > For me, the MC13783 with i.MX27 works fine with 20MHz. > Anyway, you can change line in mc13xxx driver to: > mc_dev->spi->max_speed_hz = mc_dev->spi->max_speed_hz ? : 20000000; > So you can use struct spi_board_info field for specify exact frequency. Perfect, this provides the default but provides the option to override it. I'll send a patch for this, thanks, Alexander