Re: Device tree conversion of spi device vs. controller_data

From: Roland Stigge
Date: Sat Apr 28 2012 - 06:40:16 EST


On 27/04/12 20:03, Grant Likely wrote:
>>> Can you point me at specific code?
>>>
>>> .controller_data is owned by the spi_master driver. The eeprom driver
>>> shouldn't be accessing it directly at all; but I'll need to look at
>>> specific code to really understand what is going on.
>>
>> Please have a look at arch/arm/mach-lpc32xx/phy3250.c :
>>
>> static struct pl022_config_chip spi0_chip_info = {
>> .com_mode = INTERRUPT_TRANSFER,
>> .iface = SSP_INTERFACE_MOTOROLA_SPI,
>> .hierarchy = SSP_MASTER,
>> .slave_tx_disable = 0,
>> .rx_lev_trig = SSP_RX_4_OR_MORE_ELEM,
>> .tx_lev_trig = SSP_TX_4_OR_MORE_EMPTY_LOC,
>> .ctrl_len = SSP_BITS_8,
>> .wait_state = SSP_MWIRE_WAIT_ZERO,
>> .duplex = SSP_MICROWIRE_CHANNEL_FULL_DUPLEX,
>> .cs_control = phy3250_spi_cs_set,
>
> phy3250_spi_cs_set is only a wrapper around gpio_set_value(). GPIO CS
> manipulation should be handled by the core pl022 spi driver, so that
> gets rid of the hardest part of this conversion (callbacks in platform
> data).
>
> The pl022_config_chip structure is 100% owned by the spi controller
> (pl022). If the bus driver depends on this structure, then it is the
> responsibility of the bus driver to allocate one and set the
> controller data pointer for each of the child devices. You may need
> to add pl022-specific properties to each of the child nodes to
> populate this data correctly if it cannot be determined with other
> means.

Yes, that's what I'll need to do.

Thanks!

Roland
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/