[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4F87D157.2020700@antcom.de>
Date: Fri, 13 Apr 2012 09:10:15 +0200
From: Roland Stigge <stigge@...com.de>
To: Grant Likely <grant.likely@...retlab.ca>
CC: spi-devel-general@...ts.sourceforge.net,
linux-kernel@...r.kernel.org
Subject: Re: Device tree conversion of spi device vs. controller_data
On 04/13/2012 05:29 AM, Grant Likely wrote:
>> upon DT conversion of LPC32xx, I came across the at25 spi eeprom which
>> needs .controller_data in struct spi_board_info for slave registration
>> via spi_register_board_info() (non-DT-case).
>>
>> In the DT case, we need to eliminate this explicit registering call.
>> Therefore, I need to somehow replace the .controller_data passing in the
>> DT case to pass this data to the spi core. But I can't find such a
>> mechanism (v3.4-rc2). Is there already a concept or API that I
>> overlooked (please just point me to it) or what can I do to solve this?
>> (Looks like a general issue for spi slave registration via DT).
>
> 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,
};
...
static struct spi_eeprom eeprom = {
.name = "at25256a",
.byte_len = 0x8000,
.page_size = 64,
.flags = EE_ADDR2,
};
static struct spi_board_info info[] = {
{
.modalias = "at25",
.max_speed_hz = 5000000,
.bus_num = 0,
.chip_select = 0,
.mode = SPI_MODE_0,
.platform_data = &eeprom,
.controller_data = &spi0_chip_info,
},
};
spi_register_board_info(info, ARRAY_SIZE(info));
Trying to replace .controller_data at this point with device tree
settings passing, I struggled with missing resp. node properties.
Any hint how this can be done?
Thanks in advance,
Roland
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists