Using the 2 patches submitted you should see the following when the DM355 boots up.
at25 spi0.0: 8 KByte at25640a eeprom, pagesize 32 Davinci SPI Controller driver at 0xfec66000 (irq = 43) i2c /dev entries driver TCP cubic registered NET: Registered protocol family 17 RPC: Registered udp transport module. RPC: Registered tcp transport module. Clocks: disable unused vpss_master Clocks: disable unused vpss_slave Clocks: disable unused mjcp Clocks: disable unused uart1 Clocks: disable unused uart2 Clocks: disable unused asp0 Clocks: disable unused asp1 Clocks: disable unused mmcsd0 Clocks: disable unused mmcsd1 Clocks: disable unused spi1 [spi0 is being used so spi0 clock is enabled] Clocks: disable unused spi2 Clocks: disable unused pwm0 Clocks: disable unused pwm1 Clocks: disable unused pwm2 In the kernel do Cd /sys/devices/platform you should see davinci_mmc.0 dm9000 musb_hdrc spi_davinci.0 davinci_mmc.1 edma serial8250 uevent davinci_nand.0 i2c_davinci.1 serial8250.0 watchdog The do cd spi_davinci.0 At this location you should see various info pertaining to SPI Then cd to spi0.o You should see an entry for the EEPROM # cd / # ls bin init lost+found root tmp dev lib mnt sbin usr etc linuxrc proc sys var # cd /sys/devices/platform/spi_davinci.0/spi0.0/ # strings eeprom Texas Instruments SPi Driver for DaVinci/ DA8xx. Tested using the SPI EEPROM driver # cd /sys/devices/platform/ # ls davinci_mmc.0 dm9000 musb_hdrc spi_davinci.0 davinci_mmc.1 edma serial8250 uevent davinci_nand.0 i2c_davinci.1 serial8250.0 watchdog # cd spi_davinci.0/ # ls bus modalias spi_master:spi0 uevent driver spi0.0 subsystem # cd spi0.0 # ls bus driver eeprom modalias subsystem uevent # cat modalias at25 # strings eeprom Texas Instruments SPi Driver for DaVinci/ DA8xx. Tested using the SPI EEPROM driver # Sandeep > -----Original Message----- > From: Paulraj, Sandeep > Sent: Sunday, May 17, 2009 1:42 PM > To: [email protected] > Cc: Paulraj, Sandeep > Subject: [PATCH] DM355 SPI Support > > Changes to DM355 related files to enable SPI to function using the > DaVinci SPI driver. > > Signed-off-by: Sandeep Paulraj <[email protected]> > --- > arch/arm/mach-davinci/board-dm355-evm.c | 21 +++++++++++++++++++++ > arch/arm/mach-davinci/dm355.c | 14 +++++++++++--- > 2 files changed, 32 insertions(+), 3 deletions(-) > > diff --git a/arch/arm/mach-davinci/board-dm355-evm.c > b/arch/arm/mach-davinci/board-dm355-evm.c > index f32e3d8..ec2b548 100644 > --- a/arch/arm/mach-davinci/board-dm355-evm.c > +++ b/arch/arm/mach-davinci/board-dm355-evm.c > @@ -22,6 +22,7 @@ > #include <linux/clk.h> > #include <linux/spi/spi.h> > #include <linux/spi/eeprom.h> > +#include <linux/spi/davinci_spi.h> > > #include <asm/setup.h> > #include <asm/mach-types.h> > @@ -228,6 +229,25 @@ static struct davinci_mmc_config > dm355evm_mmc_config = { > #define USB_ID_VALUE 1 /* ID pulled low */ > #endif > > +struct davinci_spi_config davinci_spi_eeprom_spi_cfg = { > + .wdelay = 0, > + .odd_parity = 0, > + .parity_enable = 0, > + .wait_enable = 0, > + .lsb_first = 0, > + .timer_disable = 0, > + .clk_high = 0, > + .phase_in = 1, > + .clk_internal = 1, > + .loop_back = 0, > + .cs_hold = 1, > + .intr_level = 0, > + .pin_op_modes = OPMODE_SPISCS_4PIN, > +#ifndef CONFIG_SPI_INTERRUPT > + .poll_mode = 1, > +#endif > +}; > + > static struct spi_eeprom at25640a = { > .byte_len = SZ_64K / 8, > .name = "at25640a", > @@ -239,6 +259,7 @@ static struct spi_board_info > dm355_evm_spi_info[] __initconst = { > { > .modalias = "at25", > .platform_data = &at25640a, > + .controller_data = &davinci_spi_eeprom_spi_cfg, > .max_speed_hz = 10 * 1000 * 1000, /* at 3v3 */ > .bus_num = 0, > .chip_select = 0, > diff --git a/arch/arm/mach-davinci/dm355.c > b/arch/arm/mach-davinci/dm355.c > index bccc5a8..f91021e 100644 > --- a/arch/arm/mach-davinci/dm355.c > +++ b/arch/arm/mach-davinci/dm355.c > @@ -16,6 +16,7 @@ > #include <linux/dma-mapping.h> > > #include <linux/spi/spi.h> > +#include <linux/spi/davinci_spi.h> > > #include <asm/mach/map.h> > > @@ -364,9 +365,9 @@ static struct davinci_clk dm355_clks[] = { > CLK("soc-audio.1", NULL, &asp1_clk), > CLK("davinci_mmc.0", NULL, &mmcsd0_clk), > CLK("davinci_mmc.1", NULL, &mmcsd1_clk), > - CLK(NULL, "spi0", &spi0_clk), > - CLK(NULL, "spi1", &spi1_clk), > - CLK(NULL, "spi2", &spi2_clk), > + CLK("spi_davinci.0", NULL, &spi0_clk), > + CLK("spi_davinci.1", NULL, &spi1_clk), > + CLK("spi_davinci.2", NULL, &spi2_clk), > CLK(NULL, "gpio", &gpio_clk), > CLK(NULL, "aemif", &aemif_clk), > CLK(NULL, "pwm0", &pwm0_clk), > @@ -386,6 +387,12 @@ static struct davinci_clk dm355_clks[] = { > > static u64 dm355_spi0_dma_mask = DMA_BIT_MASK(32); > > +static struct davinci_spi_platform_data dm355_spi0_pdata = { > + .version = DAVINCI_SPI_VERSION_1, > + .num_chipselect = 2, > + .instance = 0, > +}; > + > static struct resource dm355_spi0_resources[] = { > { > .start = 0x01c66000, > @@ -411,6 +418,7 @@ static struct platform_device > dm355_spi0_device = { > .dev = { > .dma_mask = &dm355_spi0_dma_mask, > .coherent_dma_mask = DMA_BIT_MASK(32), > + .platform_data = &dm355_spi0_pdata, > }, > .num_resources = ARRAY_SIZE(dm355_spi0_resources), > .resource = dm355_spi0_resources, > -- > 1.6.0.4 > >
_______________________________________________ Davinci-linux-open-source mailing list [email protected] http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
