Marc Singer | 1 Jan 04:50 2005

Writing touchscreen driver: e.g. Acorn RiscPC mouse driver

In surveying the input subsystem, I'm looking for an example to model
a touchscreen driver.  What isn't clear is the relationship between
the example touchscreen drivers and the underlying hardware.  The
existing touchscreens use an RS232 bus.  I've got a memory-mapped
device.  Is there anything out there that is similar?

-------------------------------------------------------------------
Subscription options: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
FAQ:       http://www.arm.linux.org.uk/armlinux/mlfaq.php
Etiquette: http://www.arm.linux.org.uk/armlinux/mletiquette.php

Andrew Zabolotny | 1 Jan 22:18 2005
X-Face
Picon

Re: Writing touchscreen driver: e.g. Acorn RiscPC mouse driver

On Fri, 31 Dec 2004 19:50:52 -0800
Marc Singer <elf <at> buici.com> wrote:

> In surveying the input subsystem, I'm looking for an example to model
> a touchscreen driver.  What isn't clear is the relationship between
> the example touchscreen drivers and the underlying hardware.  The
> existing touchscreens use an RS232 bus.  I've got a memory-mapped
> device.  Is there anything out there that is similar?
Most PDAs I know about don't use rs232; Dell Axim's use a dedicated
channel of the audio codec to sample touchscreen; other PDAs use the i2c
bus to talk to the touchscreen controller; some use specialized ASICs
which have a integrated touchscreen controller.

But in reality hardware interface doesn't matter much as soon as your
driver translates hardware events to generic input events. That is, your
driver aquires the hardware resources in any way it likes, receives
events from the hardware and generates ABS_X, ABS_Y and ABS_PRESSURE
input events. As soon as your driver registers a new event interface, it
will appear as /dev/input/event# so that tslib can read them, filter and
present to user programs.

--

-- 
Greetings,
   Andrew

-------------------------------------------------------------------
Subscription options: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
FAQ:       http://www.arm.linux.org.uk/armlinux/mlfaq.php
Etiquette: http://www.arm.linux.org.uk/armlinux/mletiquette.php

(Continue reading)

Praveen V.S. | 2 Jan 11:54 2005

IDE Driver

Hello,

Our PXA255 based board is desgined like this...
 IDE is on VLIO  with CS1 As IDE CS0

 nCS1 is connected to IDE CS1
 nCS2 is connected to IDE CS2
 nPWE is connected to IDEnIOW
 nOE is connected to IDEnIOR
CPU Address lines 
A2,A3, A4 is connected to A0,A1,A2 of IDE
We are able to boot from the harddisk using the following base addresses
& offset in U-boot ...

#define CFG_ATA_BASE_ADDR       0x04000000 ( CS1)
#define CFG_ATA_IDE0_OFFSET     0x000
#define CFG_ATA_DATA_OFFSET     0x000  
#define CFG_ATA_REG_OFFSET      0x000  
#define CFG_ATA_ALT_OFFSET      0x08000000 ( CS2)
#define CFG_ATA_STRIDE	4

But we are not sure where we need to do the changes in the driver...We
are using the 2.6.9 kernel..
Can anybody help us.....

Thanks
Regards
Praveen

-------------------------------------------------------------------
(Continue reading)

Peter Teichmann | 2 Jan 21:29 2005
Picon

Re: Floating point arithmetic in IXP425

Am Donnerstag, 30. Dezember 2004 10:48 schrieb Vanitha Ramaswami:
> Hi Lennert,
>
> I  am using the kernel version 2.4.22.
>
> When the kernel starts up, i could see the message Netwinder floating point
> emulator & FastFPE turned on..Is this the cause of the problem. But in the
> make file of my application i dont specify any explicit switches to use
> NWFpe or FastFpe...?
>
> Thanks
> Vanitha

Which is the version of your NWFPE and FastFPE? In which order do they start?

Peter Teichmann

-------------------------------------------------------------------
Subscription options: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
FAQ:       http://www.arm.linux.org.uk/armlinux/mlfaq.php
Etiquette: http://www.arm.linux.org.uk/armlinux/mletiquette.php

heechul Yun | 3 Jan 02:22 2005
Picon

Re: IDE Driver

linux ide initialization sequence is as follows. 

ide_init()  --- ide.c 
   ide_hwif_t ide_hwifs[] 
   init_ide_data()  --- ide.c 
   +-> ide_init_default_hwifs() --- ide.h 
           hw_regs_t hw 
       +-> ide_init_hw_ports(&hw) 
       +-> ide_register_hw(&hw) 

The most important thing is filling ide_hwif_t structure. You may
modify or add following files.

- include/asm/arch-<board>/ide.h  
- driver/ide/ide.c 

In these files you may need to make following functions. 

static __inline__ void ide_init_default_hwifs(void)
static __inline__ void ide_init_hwif_ports(hw_regs_t *hw, int
data_port, int ctrl_port, int *irq)

If you want to add DMA support and you are not using PCI-IDE
controller, it's a little complicated. You may need to refer following
codes.

drivers/ide/stb03xxx.c 

Regards, 
Heechul
(Continue reading)

Erik Mouw | 3 Jan 11:43 2005
Picon

Re: IDE Driver

On Mon, Jan 03, 2005 at 10:22:21AM +0900, heechul Yun wrote:
> linux ide initialization sequence is as follows. 
> 
> ide_init()  --- ide.c 
>    ide_hwif_t ide_hwifs[] 
>    init_ide_data()  --- ide.c 
>    +-> ide_init_default_hwifs() --- ide.h 
>            hw_regs_t hw 
>        +-> ide_init_hw_ports(&hw) 
>        +-> ide_register_hw(&hw) 
> 
> 
> The most important thing is filling ide_hwif_t structure. You may
> modify or add following files.
> 
> - include/asm/arch-<board>/ide.h  

Depricated code, don't use it.

> - driver/ide/ide.c 
> 
> 
> In these files you may need to make following functions. 
> 
> static __inline__ void ide_init_default_hwifs(void)
> static __inline__ void ide_init_hwif_ports(hw_regs_t *hw, int
> data_port, int ctrl_port, int *irq)

All depricated code, don't use it. It's just a matter to call
ide_register_hw() with correct paramaters. For a good example, see
(Continue reading)

Russell King - ARM Linux | 3 Jan 11:51 2005
Picon

Re: IDE Driver

On Sun, Jan 02, 2005 at 04:24:05PM +0530, Praveen V.S. wrote:
> Our PXA255 based board is desgined like this...
>  IDE is on VLIO  with CS1 As IDE CS0
> 
>  nCS1 is connected to IDE CS1
>  nCS2 is connected to IDE CS2
>  nPWE is connected to IDEnIOW
>  nOE is connected to IDEnIOR
> CPU Address lines 
> A2,A3, A4 is connected to A0,A1,A2 of IDE
> We are able to boot from the harddisk using the following base addresses
> & offset in U-boot ...
> 
> #define CFG_ATA_BASE_ADDR       0x04000000 ( CS1)
> #define CFG_ATA_IDE0_OFFSET     0x000
> #define CFG_ATA_DATA_OFFSET     0x000  
> #define CFG_ATA_REG_OFFSET      0x000  
> #define CFG_ATA_ALT_OFFSET      0x08000000 ( CS2)
> #define CFG_ATA_STRIDE	4
> 
> But we are not sure where we need to do the changes in the driver...We
> are using the 2.6.9 kernel..

Look at drivers/ide/arm/rapide.c for a MMIO interface.  Essentially:

1. ioremap the regions you require.
2. find a free hwif in the ide_hwif[] array
3. initialise hwif->hw.io_ports[] and hwif->io_ports[] arrays
4. initialise hwif->hw.irq and hwif->irq values
5. set hwif->mmio = 2, and call default_hwif_mmiops(hwif);
(Continue reading)

Marcin Glogowski | 3 Jan 12:54 2005
Picon

Retrace register on EP9315

Hi,
    I need to determine somehow the video card's retrace on EP9315 based 
motherboard.
Is there some kind of register that do that?
Best regards,
Marcin Glogowski

----------------------------------------------------------------------
Startuj z INTERIA.PL!!! >>> http://link.interia.pl/f1837

-------------------------------------------------------------------
Subscription options: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
FAQ:       http://www.arm.linux.org.uk/armlinux/mlfaq.php
Etiquette: http://www.arm.linux.org.uk/armlinux/mletiquette.php

Ray Lehtiniemi | 3 Jan 16:36 2005
Picon

Re: Retrace register on EP9315

On Mon, Jan 03, 2005 at 12:54:25PM +0100, Marcin Glogowski wrote:
> Hi,
>    I need to determine somehow the video card's retrace on EP9315 based 
> motherboard.
> Is there some kind of register that do that?

ep9315 users guide, section 7.4.10.  looks like you want to catch the
V_SYNC interrupt and make your changes during whatever interval you
programmed into the VBlankStrtStop register.

--

-- 
----------------------------------------------------------------------
     Ray L   <rayl <at> mail.com>

-------------------------------------------------------------------
Subscription options: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
FAQ:       http://www.arm.linux.org.uk/armlinux/mlfaq.php
Etiquette: http://www.arm.linux.org.uk/armlinux/mletiquette.php

Slade Maurer | 3 Jan 18:44 2005

Re: what is the purpose of __ASSEMBLY__?

Let's keep in mind that we are discussing header files specifically.
__ASSEMBLY__ allows them to be shared between C and assembly code so all
the useful data is in the same place -- as Ho Lee said.

The CPP does process typedef and #defines as Rainer Weikusat states.
However, __ASSEMBLY__ is still required to solve problems with symbols
that gas can't understand but cc1 can.

For example, this section of code from a header file uses it to solve a
problem:

#ifdef __ASSEMBLY__
#define __PAGE_OFFSET		(0xB0000000)
#else
#define __PAGE_OFFSET		(0xB0000000UL)
#endif /* __ASSEMBLY__ */

Now, what is it doing? Well, cleary the developer thought gas would
choke on casting the constant as an unsigned long for cc1 and so uses
the __ASSEMBLY__ directive to allow __PAGE_OFFSET to be handled by gas
and by cc1. More precisely, CPP would use __ASSEMBLY__ to pick the
correct __PAGE_OFFSET token. Then, it would substitute occurances in the
file(s) it is pre-processing before they are passed to the assembler or
compiler. The assembler sees 0xB0000000 and the C compiler sees
0xB0000000UL so they are both happy!

Hope this helps.

-Slade

(Continue reading)


Gmane