From: raffaele.recalcati on 1 Jul 2010 02:20 -----glikely(a)secretlab.ca ha scritto: ----- >Per:�Raffaele�Recalcati�<lamiaposta71(a)gmail.com>,�Brian�Niebuhr ><bniebuhr3(a)gmail.com> >Da:�Grant�Likely�<grant.likely(a)secretlab.ca> >Inviato�da:�glikely(a)secretlab.ca >Data:�01/07/2010�01.03 >Cc:�davinci-linux-open-source(a)linux.davincidsp.com,�Raffaele >Recalcati�<raffaele.recalcati(a)bticino.it>,�Davide�Bonfanti ><davide.bonfanti(a)bticino.it>,�Russell�King�<linux(a)arm.linux.org.uk>, >Sandeep�Paulraj�<s-paulraj(a)ti.com>,�Cyril�Chemparathy�<cyril(a)ti.com>, >Miguel�Aguilar�<miguel.aguilar(a)ridgerun.com>,�Thomas�Koeller ><thomas.koeller(a)baslerweb.com>,�David�Brownell ><dbrownell(a)users.sourceforge.net>,�Philby�John�<pjohn(a)in.mvista.com>, >Sudhakar�Rajashekhara�<sudhakar.raj(a)ti.com>, >linux-arm-kernel(a)lists.infradead.org,�linux-kernel(a)vger.kernel.org, >spi-devel-general(a)lists.sourceforge.net >Oggetto:�Re:�[PATCH]�spi:�davinci:�Added�support�for�chip�select >using�gpio > >On�Mon,�Jun�28,�2010�at�12:47�AM,�Raffaele�Recalcati ><lamiaposta71(a)gmail.com>�wrote: >>�From:�Raffaele�Recalcati�<raffaele.recalcati(a)bticino.it> >> >>����It�is�not�everytime�possible,�due�to�hardware�constraints, >>����to�use�the�hw�chip�select�available�on�spi�port. >>����So�I�add�this�possibility�using�a�gpio�as�chip�select. >>����If�controller_data�variable�is�not�null�it�is >>����the�gpio�to�be�used�as�chip�select. >>����The�default�case�is�compatible�with�evmdm365. >>����This�patch�has�been�developed�against�the >> >http://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-davinci. >git >>����git�tree�and�has�been�tested�on�bmx�board�(similar�to�dm365�evm >but�with >>����gpio�as�spi�chip�select). >> >>�Signed-off-by:�Raffaele�Recalcati�<raffaele.recalcati(a)bticino.it> >>�Signed-off-by:�Davide�Bonfanti�<davide.bonfanti(a)bticino.it> > >The�davinci�SPI�driver�is�getting�completely�replaced�(as�soon�as�I >receive�the�respun�patches),�and�I�assume�this�patch�will�no�longer >apply�after�the�fact,�so�I'm�not�going�to�pick�this�patch�up.��You >should�coordinate�with�Brian�Niebuhr�to�get�this�feature�into�his�new >driver. I'm not very lucky with davinci-linux-open-source patching. Thank you for the information. The patch is really simple and so it will be not a real problem to up port it. I'd like anyway a timing roadmap, because, if now the best kernel choose for dm365 is surely http://arago-project.org/git/projects/linux-davinci.git because of dvsdk (video codec) compatibility, it is possible that next year 2.6.36 will be stable and compatible to dvsdk (video codec). The kernel of dm365 (that is a video processor) has to be compatible to its video codec. How to manage the transition? >Cheers, >g. > >>�--- >>��arch/arm/mach-davinci/dm365.c�|���10�++++++---- >>��drivers/spi/davinci_spi.c�����|���27�++++++++++++++++++--------- >>��2�files�changed,�24�insertions(+),�13�deletions(-) >> >>�diff�--git�a/arch/arm/mach-davinci/dm365.c >b/arch/arm/mach-davinci/dm365.c >>�index�a146849..42fd4a4�100644 >>�---�a/arch/arm/mach-davinci/dm365.c >>�+++�b/arch/arm/mach-davinci/dm365.c >>�@@�-677,10�+677,12�@@�void�__init�dm365_init_spi0(unsigned >chipselect_mask, >>��������davinci_cfg_reg(DM365_SPI0_SDO); >> >>��������/*�not�all�slaves�will�be�wired�up�*/ >>�-�������if�(chipselect_mask�&�BIT(0)) >>�-���������������davinci_cfg_reg(DM365_SPI0_SDENA0); >>�-�������if�(chipselect_mask�&�BIT(1)) >>�-���������������davinci_cfg_reg(DM365_SPI0_SDENA1); >>�+�������if��(!((unsigned�long)�info->controller_data))�{ >>�+���������������if�(chipselect_mask�&�BIT(0)) >>�+�����������������������davinci_cfg_reg(DM365_SPI0_SDENA0); >>�+���������������if�(chipselect_mask�&�BIT(1)) >>�+�����������������������davinci_cfg_reg(DM365_SPI0_SDENA1); >>�+�������} >> >>��������spi_register_board_info(info,�len); >> >>�diff�--git�a/drivers/spi/davinci_spi.c�b/drivers/spi/davinci_spi.c >>�index�95afb6b..621ae46�100644 >>�---�a/drivers/spi/davinci_spi.c >>�+++�b/drivers/spi/davinci_spi.c >>�@@�-29,6�+29,7�@@ >>��#include�<linux/spi/spi_bitbang.h> >>��#include�<linux/slab.h> >> >>�+#include�<mach/gpio.h> >>��#include�<mach/spi.h> >>��#include�<mach/edma.h> >> >>�@@�-270,18�+271,26�@@�static�void�davinci_spi_chipselect(struct >spi_device�*spi,�int�value) >>��������pdata�=�davinci_spi->pdata; >> >>��������/* >>�-��������*�Board�specific�chip�select�logic�decides�the�polarity >and�cs >>�-��������*�line�for�the�controller >>�-��������*/ >>�+�������*�Board�specific�chip�select�logic�decides�the�polarity�and >cs >>�+�������*�line�for�the�controller >>�+�������*/ >>��������if�(value�==�BITBANG_CS_INACTIVE)�{ >>�-���������������set_io_bits(davinci_spi->base�+�SPIDEF, >CS_DEFAULT); >>�- >>�-���������������data1_reg_val�|=�CS_DEFAULT�<<�SPIDAT1_CSNR_SHIFT; >>�-���������������iowrite32(data1_reg_val,�davinci_spi->base�+ >SPIDAT1); >>�- >>�+���������������if��((unsigned�long)�spi->controller_data)�{ >>�+�����������������������gpio_set_value(spi->controller_data,�\ >>�+�������������������������������!(spi->mode�&�SPI_CS_HIGH)); >>�+���������������}�else�{ >>�+�����������������������set_io_bits(davinci_spi->base�+�SPIDEF, >CS_DEFAULT); >>�+ >>�+�����������������������data1_reg_val�|=�CS_DEFAULT�<< >SPIDAT1_CSNR_SHIFT; >>�+�����������������������iowrite32(data1_reg_val,�davinci_spi->base >+�SPIDAT1); >>�+���������������} >>����������������while�((ioread32(davinci_spi->base�+�SPIBUF) >>�-���������������������������������������&�SPIBUF_RXEMPTY_MASK)�== >0) >>�+�������������������������������&�SPIBUF_RXEMPTY_MASK)�==�0) >>������������������������cpu_relax(); >>�+�������}�else�{ >>�+���������������if��((unsigned�long)�spi->controller_data) >>�+�����������������������gpio_set_value(spi->controller_data,�\ >>�+�������������������������������(spi->mode�&�SPI_CS_HIGH)); >>��������} >>��} >> >>�-- >>�1.7.0.4 >> >> > > > >-- >Grant�Likely,�B.Sc.,�P.Eng. >Secret�Lab�Technologies�Ltd. Ce message, ainsi que tous les fichiers joints � ce message, peuvent contenir des informations sensibles et/ ou confidentielles ne devant pas �tre divulgu�es. Si vous n'�tes pas le destinataire de ce message (ou que vous recevez ce message par erreur), nous vous remercions de le notifier imm�diatement � son exp�diteur, et de d�truire ce message. Toute copie, divulgation, modification, utilisation ou diffusion, non autoris�e, directe ou indirecte, de tout ou partie de ce message, est strictement interdite. This e-mail, and any document attached hereby, may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized, direct or indirect, copying, disclosure, distribution or other use of the material or parts thereof is strictly forbidden. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|
Pages: 1 Prev: perf: perf interface for uprobes Next: fs-writeback: fix kernel-doc warnings |