From: raffaele.recalcati on

-----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/