Revision aef2b89662b8a7506846d0dc0df672d196ddf8d0 authored by Russ Dill on 09 May 2012, 22:15:03 UTC, committed by Tony Lindgren on 20 June 2012, 14:18:21 UTC
Commit e813a55eb9c9bc6c8039fb16332cf43402125b30 ("OMAP: board-files:
remove custom PD GPIO handling for DVI output") moved TFP410 chip's
powerdown-gpio handling from the board files to the tfp410 driver. One
gpio_request_one(powerdown-gpio, ...) was mistakenly left unremoved in
the Beagle board file. This causes the tfp410 driver to fail to request
the gpio on Beagle, causing the driver to fail and thus the DVI output
doesn't work.

This patch removes several boot errors from board-omap3beagle.c:

 - gpio_request: gpio--22 (DVI reset) status -22
 - Unable to get DVI reset GPIO

There is a combination of leftover code and revision confusion.
Additionally, xM support is currently a hack.

For original Beagleboard this removes the double initialization of GPIO
170, properly configures it as an output, and wraps the initialization
in an if block so that xM does not attempt to request it.

For Beagleboard xM it removes reference to GPIO 129 which was part
of rev A1 and A2 designs, but never functioned. It then properly assigns
beagle_dvi_device.reset_gpio in beagle_twl_gpio_setup and removes the
hack of initializing it high. Additionally, it uses
gpio_set_value_cansleep since this GPIO is connected through i2c.

Unfortunately, there is no way to tell the difference between xM A2 and
A3. However, GPIO 129 does not function on rev A1 and A2, and the TWL
GPIO used on A3 and beyond is not used on rev A1 and A2, there are no
problems created by this fix.

Tested on Beagleboard-xM Rev C1 and Beagleboard Rev B4.

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
Acked-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
1 parent 95dca12
Raw File
applicom.h
/* $Id: applicom.h,v 1.2 1999/08/28 15:09:49 dwmw2 Exp $ */


#ifndef __LINUX_APPLICOM_H__
#define __LINUX_APPLICOM_H__


#define DATA_TO_PC_READY      0x00
#define TIC_OWNER_TO_PC       0x01
#define NUMCARD_OWNER_TO_PC   0x02
#define TIC_DES_TO_PC         0x03
#define NUMCARD_DES_TO_PC     0x04
#define DATA_FROM_PC_READY    0x05
#define TIC_OWNER_FROM_PC     0x06
#define NUMCARD_OWNER_FROM_PC 0x07
#define TIC_DES_FROM_PC       0x08
#define NUMCARD_DES_FROM_PC   0x09
#define ACK_FROM_PC_READY     0x0E
#define TIC_ACK_FROM_PC       0x0F
#define NUMCARD_ACK_FROM_PC   0x010
#define TYP_ACK_FROM_PC       0x011
#define CONF_END_TEST         0x012
#define ERROR_CODE            0x016 
#define PARAMETER_ERROR       0x018 
#define VERS                  0x01E 
#define RAM_TO_PC             0x040
#define RAM_FROM_PC           0x0170
#define TYPE_CARD             0x03C0
#define SERIAL_NUMBER         0x03DA
#define RAM_IT_FROM_PC        0x03FE
#define RAM_IT_TO_PC          0x03FF

struct mailbox{
	u16  stjb_codef;		/* offset 00 */
	s16  stjb_status;     		/* offset 02 */
	u16  stjb_ticuser_root;		/* offset 04 */
	u8   stjb_piduser[4];		/* offset 06 */
	u16  stjb_mode;			/* offset 0A */
	u16  stjb_time;			/* offset 0C */
	u16  stjb_stop;			/* offset 0E */
	u16  stjb_nfonc;		/* offset 10 */
	u16  stjb_ncard;		/* offset 12 */
	u16  stjb_nchan;		/* offset 14 */
	u16  stjb_nes;			/* offset 16 */
	u16  stjb_nb;			/* offset 18 */
	u16  stjb_typvar;		/* offset 1A */
	u32  stjb_adr;			/* offset 1C */
	u16  stjb_ticuser_dispcyc;	/* offset 20 */
	u16  stjb_ticuser_protocol;	/* offset 22 */
	u8   stjb_filler[12];		/* offset 24 */
	u8   stjb_data[256];		/* offset 30 */
	};

struct st_ram_io 
{
	unsigned char data_to_pc_ready;
	unsigned char tic_owner_to_pc;
	unsigned char numcard_owner_to_pc;
	unsigned char tic_des_to_pc;
	unsigned char numcard_des_to_pc;
	unsigned char data_from_pc_ready;
	unsigned char tic_owner_from_pc;
	unsigned char numcard_owner_from_pc;
	unsigned char tic_des_from_pc;
	unsigned char numcard_des_from_pc;
	unsigned char ack_to_pc_ready;
	unsigned char tic_ack_to_pc;
	unsigned char numcard_ack_to_pc;
	unsigned char typ_ack_to_pc;
	unsigned char ack_from_pc_ready;
	unsigned char tic_ack_from_pc;
	unsigned char numcard_ack_from_pc;
	unsigned char typ_ack_from_pc;
	unsigned char conf_end_test[4];
	unsigned char error_code[2];
	unsigned char parameter_error[4];
	unsigned char time_base;
	unsigned char nul_inc;
	unsigned char vers;
	unsigned char num_card;
	unsigned char reserv1[32];
};


#endif /* __LINUX_APPLICOM_H__ */
back to top