* [PATCH 2/2] ARM:OMAP2: irda support 3430
@ 2008-07-03 6:45 Girish. S. G.
2008-07-03 8:58 ` Trilok Soni
0 siblings, 1 reply; 4+ messages in thread
From: Girish. S. G. @ 2008-07-03 6:45 UTC (permalink / raw)
To: linux-omap
This adds board specific changes to support IrDA on 3430
Signed-off-by: Girish S G <girishsg@ti.com>
---
arch/arm/configs/omap_3430sdp_defconfig | 34 +++++++
arch/arm/mach-omap2/board-3430sdp.c | 145 ++++++++++++++++++++++++++++++++
arch/arm/mach-omap2/mux.c | 16 +++
include/asm-arm/arch-omap/gpio.h | 3
include/asm-arm/arch-omap/mux.h | 9 +
5 files changed, 204 insertions(+), 3 deletions(-)
Index: linux-omap-2.6/arch/arm/configs/omap_3430sdp_defconfig
===================================================================
--- linux-omap-2.6.orig/arch/arm/configs/omap_3430sdp_defconfig 2008-07-02
18:54:15.000000000 +0530
+++ linux-omap-2.6/arch/arm/configs/omap_3430sdp_defconfig 2008-07-02
18:56:41.000000000 +0530
@@ -392,7 +392,39 @@
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
-# CONFIG_IRDA is not set
+CONFIG_IRDA=y
+
+#
+# IrDA protocols
+#
+# CONFIG_IRLAN is not set
+CONFIG_IRCOMM=y
+# CONFIG_IRDA_ULTRA is not set
+
+#
+# IrDA options
+#
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_FAST_RR=y
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+# CONFIG_IRTTY_SIR is not set
+
+#
+# Dongle support
+#
+
+#
+# FIR device drivers
+#
+CONFIG_OMAP_IR=y
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
Index: linux-omap-2.6/arch/arm/mach-omap2/board-3430sdp.c
===================================================================
--- linux-omap-2.6.orig/arch/arm/mach-omap2/board-3430sdp.c 2008-07-02
18:54:15.000000000 +0530
+++ linux-omap-2.6/arch/arm/mach-omap2/board-3430sdp.c 2008-07-02
18:56:41.000000000 +0530
@@ -32,6 +32,7 @@
#include <asm/arch/mcspi.h>
#include <asm/arch/gpio.h>
#include <asm/arch/mux.h>
+#include <asm/arch/irda.h>
#include <asm/arch/board.h>
#include <asm/arch/usb-musb.h>
#include <asm/arch/usb-ehci.h>
@@ -46,6 +47,9 @@
#define SDP3430_SMC91X_CS 3
+#define ENABLE_VAUX1_DEDICATED 0x03
+#define ENABLE_VAUX1_DEV_GRP 0x20
+
#define ENABLE_VAUX3_DEDICATED 0x03
#define ENABLE_VAUX3_DEV_GRP 0x20
@@ -70,6 +74,146 @@
.resource = sdp3430_smc91x_resources,
};
+/* IrDA
+ */
+#if defined(CONFIG_OMAP_IR) || defined(CONFIG_OMAP_IR_MODULE)
+
+#define IRDA_SD 164 /* gpio 164 */
+#define IRDA_TX 166 /* gpio 166 */
+#define IRDA_SD_PIN T21_3430_GPIO164
+#define IRDA_TX_PIN V21_3430_GPIO166
+
+#define IRDA_VAUX_EN 1
+#define IRDA_VAUX_DIS 0
+
+/*
+ * This enable(1)/disable(0) the voltage for IrDA: uses twl4030 calls
+ */
+static int irda_vaux_control(int vaux_cntrl)
+{
+ int ret = 0;
+
+#ifdef CONFIG_TWL4030_CORE
+ /* check for return value of ldo_use: if success it returns 0 */
+ if (vaux_cntrl == IRDA_VAUX_EN) {
+ if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
+ ENABLE_VAUX1_DEDICATED, TWL4030_VAUX1_DEDICATED))
+ return -EIO;
+ if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
+ ENABLE_VAUX1_DEV_GRP, TWL4030_VAUX1_DEV_GRP))
+ return -EIO;
+ } else if (vaux_cntrl == IRDA_VAUX_DIS) {
+ if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
+ 0x00, TWL4030_VAUX1_DEDICATED))
+ return -EIO;
+ if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
+ 0x00, TWL4030_VAUX1_DEV_GRP))
+ return -EIO;
+ }
+#else
+ ret = -EIO;
+#endif
+ return ret;
+}
+
+static int select_irda(struct device *dev, int state)
+{
+ int err;
+ if (state == IR_SEL) {
+ err = irda_vaux_control(IRDA_VAUX_EN);
+ if (err != 0) {
+ printk(KERN_ERR "OMAP: IrDA vaux enable failed\n");
+ return err;
+ }
+
+ omap_cfg_reg(R21_3430_UART3_CTS_RCTX);
+ omap_cfg_reg(T21_3430_UART3_RTS_SD);
+ omap_cfg_reg(U21_3430_UART3_RX_IRRX);
+ omap_cfg_reg(V21_3430_UART3_TX_IRTX);
+
+ omap_request_gpio(IRDA_SD);
+ omap_request_gpio(IRDA_TX);
+ omap_cfg_reg(IRDA_SD_PIN);
+ omap_set_gpio_direction(IRDA_SD, GPIO_DIR_OUTPUT);
+ omap_set_gpio_direction(IRDA_TX, GPIO_DIR_OUTPUT);
+ omap_set_gpio_dataout(IRDA_SD, 0);
+ } else {
+ omap_free_gpio(IRDA_SD);
+ omap_free_gpio(IRDA_TX);
+ err = irda_vaux_control(IRDA_VAUX_EN);
+ if (err != 0) {
+ printk(KERN_ERR "OMAP: IrDA vaux Enable failed\n");
+ return err;
+ }
+ }
+
+ return 0;
+}
+
+static int transceiver_mode(struct device *dev, int mode)
+{
+ omap_cfg_reg(IRDA_SD_PIN);
+ omap_cfg_reg(IRDA_TX_PIN);
+
+ if (mode & IR_SIRMODE) {
+ /* SIR */
+ omap_set_gpio_dataout(IRDA_SD, 1);
+ udelay(1);
+ omap_set_gpio_dataout(IRDA_TX, 0);
+ udelay(1);
+ omap_set_gpio_dataout(IRDA_SD, 0);
+ udelay(1);
+ } else {
+ /* MIR/FIR */
+ omap_set_gpio_dataout(IRDA_SD, 1);
+ udelay(1);
+ omap_set_gpio_dataout(IRDA_TX, 1);
+ udelay(1);
+ omap_set_gpio_dataout(IRDA_SD, 0);
+ udelay(1);
+ omap_set_gpio_dataout(IRDA_TX, 0);
+ udelay(1);
+ }
+
+ omap_cfg_reg(T21_3430_UART3_RTS_SD);
+ omap_cfg_reg(V21_3430_UART3_TX_IRTX);
+ return 0;
+}
+#else
+static int select_irda(struct device *dev, int state) { return 0; }
+static int transceiver_mode(struct device *dev, int mode) { return 0; }
+#endif
+
+static struct omap_irda_config irda_data = {
+ .transceiver_cap = IR_SIRMODE | IR_MIRMODE | IR_FIRMODE,
+ .transceiver_mode = transceiver_mode,
+ .select_irda = select_irda,
+ .rx_channel = OMAP24XX_DMA_UART3_RX,
+ .tx_channel = OMAP24XX_DMA_UART3_TX,
+ .dest_start = OMAP_UART3_BASE,
+ .src_start = OMAP_UART3_BASE,
+ .tx_trigger = OMAP24XX_DMA_UART3_TX,
+ .rx_trigger = OMAP24XX_DMA_UART3_RX,
+};
+
+static struct resource irda_resources[] = {
+ [0] = {
+ .start = INT_24XX_UART3_IRQ,
+ .end = INT_24XX_UART3_IRQ,
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
+static struct platform_device irda_device = {
+ .name = "omapirda",
+ .id = -1,
+ .dev = {
+ .platform_data = &irda_data,
+ },
+ .num_resources = 1,
+ .resource = irda_resources,
+};
+
static int sdp3430_keymap[] = {
KEY(0, 0, KEY_LEFT),
KEY(0, 1, KEY_RIGHT),
@@ -210,6 +354,7 @@
static struct platform_device *sdp3430_devices[] __initdata = {
&sdp3430_smc91x_device,
+ &irda_device,
&sdp3430_kp_device,
&sdp3430_lcd_device,
};
Index: linux-omap-2.6/arch/arm/mach-omap2/mux.c
===================================================================
--- linux-omap-2.6.orig/arch/arm/mach-omap2/mux.c 2008-07-02 18:54:15.000000000
+0530
+++ linux-omap-2.6/arch/arm/mach-omap2/mux.c 2008-07-02 18:56:41.000000000 +0530
@@ -373,6 +373,22 @@
OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
MUX_CFG_34XX("AA12_3430_USB3HS_TLL_D7", 0x172,
OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
+
+ /* UART3 */
+MUX_CFG_34XX("R21_3430_UART3_CTS_RCTX", 0x19a,
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX("T21_3430_UART3_RTS_SD", 0x19c,
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX("U21_3430_UART3_RX_IRRX", 0x19e,
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX("V21_3430_UART3_TX_IRTX", 0x1a0,
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLDOWN)
+
+ /* GPIO */
+MUX_CFG_34XX("T21_3430_GPIO164", 0x19c,
+ OMAP34XX_MUX_MODE4 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX("V21_3430_GPIO166", 0x1a0,
+ OMAP34XX_MUX_MODE4 | OMAP34XX_PIN_INPUT_PULLDOWN)
};
#define OMAP34XX_PINS_SZ ARRAY_SIZE(omap34xx_pins)
Index: linux-omap-2.6/include/asm-arm/arch-omap/gpio.h
===================================================================
--- linux-omap-2.6.orig/include/asm-arm/arch-omap/gpio.h 2008-07-02
18:54:35.000000000 +0530
+++ linux-omap-2.6/include/asm-arm/arch-omap/gpio.h 2008-07-02
18:56:41.000000000 +0530
@@ -31,6 +31,9 @@
#define OMAP_MPUIO_BASE (void __iomem *)0xfffb5000
+#define GPIO_DIR_INPUT 1
+#define GPIO_DIR_OUTPUT 0
+
#ifdef CONFIG_ARCH_OMAP730
#define OMAP_MPUIO_INPUT_LATCH 0x00
#define OMAP_MPUIO_OUTPUT 0x02
Index: linux-omap-2.6/include/asm-arm/arch-omap/mux.h
===================================================================
--- linux-omap-2.6.orig/include/asm-arm/arch-omap/mux.h 2008-07-02
18:54:35.000000000 +0530
+++ linux-omap-2.6/include/asm-arm/arch-omap/mux.h 2008-07-02
18:56:41.000000000 +0530
@@ -640,7 +640,6 @@
AD16_2430_MCBSP2_CLX_OFF,
AE13_2430_MCBSP2_DX_OFF,
AD13_2430_MCBSP2_DR_OFF,
-
};
enum omap34xx_index {
@@ -723,8 +722,14 @@
AB12_3430_USB3HS_TLL_DATA4,
AB13_3430_USB3HS_TLL_DATA5,
AA13_3430_USB3HS_TLL_DATA6,
- AA12_3430_USB3HS_TLL_DATA7
+ AA12_3430_USB3HS_TLL_DATA7,
+ R21_3430_UART3_CTS_RCTX,
+ T21_3430_UART3_RTS_SD,
+ U21_3430_UART3_RX_IRRX,
+ V21_3430_UART3_TX_IRTX,
+ T21_3430_GPIO164,
+ V21_3430_GPIO166,
};
struct omap_mux_cfg {
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] ARM:OMAP2: irda support 3430
2008-07-03 6:45 [PATCH 2/2] ARM:OMAP2: irda support 3430 Girish. S. G.
@ 2008-07-03 8:58 ` Trilok Soni
2008-07-03 9:31 ` Girish S G
0 siblings, 1 reply; 4+ messages in thread
From: Trilok Soni @ 2008-07-03 8:58 UTC (permalink / raw)
To: girishsg; +Cc: linux-omap
Hi Girish,
On Thu, Jul 3, 2008 at 12:15 PM, Girish. S. G. <girishsg@ti.com> wrote:
> This adds board specific changes to support IrDA on 3430
>
> Signed-off-by: Girish S G <girishsg@ti.com>
> ---
> arch/arm/configs/omap_3430sdp_defconfig | 34 +++++++
> arch/arm/mach-omap2/board-3430sdp.c | 145 ++++++++++++++++++++++++++++++++
> arch/arm/mach-omap2/mux.c | 16 +++
> include/asm-arm/arch-omap/gpio.h | 3
> include/asm-arm/arch-omap/mux.h | 9 +
> 5 files changed, 204 insertions(+), 3 deletions(-)
>
> Index: linux-omap-2.6/arch/arm/configs/omap_3430sdp_defconfig
> ===================================================================
> --- linux-omap-2.6.orig/arch/arm/configs/omap_3430sdp_defconfig 2008-07-02
> 18:54:15.000000000 +0530
> +++ linux-omap-2.6/arch/arm/configs/omap_3430sdp_defconfig 2008-07-02
> 18:56:41.000000000 +0530
> @@ -392,7 +392,39 @@
> # CONFIG_NET_PKTGEN is not set
> # CONFIG_HAMRADIO is not set
> # CONFIG_CAN is not set
> -# CONFIG_IRDA is not set
> +CONFIG_IRDA=y
> +
> +#
> +# IrDA protocols
> +#
> +# CONFIG_IRLAN is not set
> +CONFIG_IRCOMM=y
> +# CONFIG_IRDA_ULTRA is not set
> +
> +#
> +# IrDA options
> +#
> +CONFIG_IRDA_CACHE_LAST_LSAP=y
> +CONFIG_IRDA_FAST_RR=y
> +# CONFIG_IRDA_DEBUG is not set
> +
> +#
> +# Infrared-port device drivers
> +#
> +
> +#
> +# SIR device drivers
> +#
> +# CONFIG_IRTTY_SIR is not set
> +
> +#
> +# Dongle support
> +#
> +
> +#
> +# FIR device drivers
> +#
> +CONFIG_OMAP_IR=y
> # CONFIG_BT is not set
> # CONFIG_AF_RXRPC is not set
>
> Index: linux-omap-2.6/arch/arm/mach-omap2/board-3430sdp.c
> ===================================================================
> --- linux-omap-2.6.orig/arch/arm/mach-omap2/board-3430sdp.c 2008-07-02
> 18:54:15.000000000 +0530
> +++ linux-omap-2.6/arch/arm/mach-omap2/board-3430sdp.c 2008-07-02
> 18:56:41.000000000 +0530
> @@ -32,6 +32,7 @@
> #include <asm/arch/mcspi.h>
> #include <asm/arch/gpio.h>
> #include <asm/arch/mux.h>
> +#include <asm/arch/irda.h>
> #include <asm/arch/board.h>
> #include <asm/arch/usb-musb.h>
> #include <asm/arch/usb-ehci.h>
> @@ -46,6 +47,9 @@
>
> #define SDP3430_SMC91X_CS 3
>
> +#define ENABLE_VAUX1_DEDICATED 0x03
> +#define ENABLE_VAUX1_DEV_GRP 0x20
> +
> #define ENABLE_VAUX3_DEDICATED 0x03
> #define ENABLE_VAUX3_DEV_GRP 0x20
>
> @@ -70,6 +74,146 @@
> .resource = sdp3430_smc91x_resources,
> };
>
> +/* IrDA
> + */
> +#if defined(CONFIG_OMAP_IR) || defined(CONFIG_OMAP_IR_MODULE)
> +
> +#define IRDA_SD 164 /* gpio 164 */
> +#define IRDA_TX 166 /* gpio 166 */
> +#define IRDA_SD_PIN T21_3430_GPIO164
> +#define IRDA_TX_PIN V21_3430_GPIO166
> +
> +#define IRDA_VAUX_EN 1
> +#define IRDA_VAUX_DIS 0
> +
> +/*
> + * This enable(1)/disable(0) the voltage for IrDA: uses twl4030 calls
> + */
> +static int irda_vaux_control(int vaux_cntrl)
> +{
> + int ret = 0;
> +
> +#ifdef CONFIG_TWL4030_CORE
> + /* check for return value of ldo_use: if success it returns 0 */
> + if (vaux_cntrl == IRDA_VAUX_EN) {
> + if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
> + ENABLE_VAUX1_DEDICATED, TWL4030_VAUX1_DEDICATED))
> + return -EIO;
> + if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
> + ENABLE_VAUX1_DEV_GRP, TWL4030_VAUX1_DEV_GRP))
> + return -EIO;
> + } else if (vaux_cntrl == IRDA_VAUX_DIS) {
> + if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
> + 0x00, TWL4030_VAUX1_DEDICATED))
> + return -EIO;
> + if (ret != twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
> + 0x00, TWL4030_VAUX1_DEV_GRP))
> + return -EIO;
> + }
> +#else
> + ret = -EIO;
> +#endif
> + return ret;
> +}
> +
> +static int select_irda(struct device *dev, int state)
> +{
> + int err;
> + if (state == IR_SEL) {
> + err = irda_vaux_control(IRDA_VAUX_EN);
> + if (err != 0) {
> + printk(KERN_ERR "OMAP: IrDA vaux enable failed\n");
> + return err;
> + }
> +
> + omap_cfg_reg(R21_3430_UART3_CTS_RCTX);
> + omap_cfg_reg(T21_3430_UART3_RTS_SD);
> + omap_cfg_reg(U21_3430_UART3_RX_IRRX);
> + omap_cfg_reg(V21_3430_UART3_TX_IRTX);
> +
> + omap_request_gpio(IRDA_SD);
> + omap_request_gpio(IRDA_TX);
> + omap_cfg_reg(IRDA_SD_PIN);
> + omap_set_gpio_direction(IRDA_SD, GPIO_DIR_OUTPUT);
> + omap_set_gpio_direction(IRDA_TX, GPIO_DIR_OUTPUT);
> + omap_set_gpio_dataout(IRDA_SD, 0);
> + } else {
> + omap_free_gpio(IRDA_SD);
> + omap_free_gpio(IRDA_TX);
> + err = irda_vaux_control(IRDA_VAUX_EN);
> + if (err != 0) {
> + printk(KERN_ERR "OMAP: IrDA vaux Enable failed\n");
> + return err;
> + }
> + }
> +
> + return 0;
> +}
> +
> +static int transceiver_mode(struct device *dev, int mode)
> +{
> + omap_cfg_reg(IRDA_SD_PIN);
> + omap_cfg_reg(IRDA_TX_PIN);
> +
> + if (mode & IR_SIRMODE) {
> + /* SIR */
> + omap_set_gpio_dataout(IRDA_SD, 1);
> + udelay(1);
> + omap_set_gpio_dataout(IRDA_TX, 0);
> + udelay(1);
> + omap_set_gpio_dataout(IRDA_SD, 0);
> + udelay(1);
> + } else {
> + /* MIR/FIR */
> + omap_set_gpio_dataout(IRDA_SD, 1);
> + udelay(1);
> + omap_set_gpio_dataout(IRDA_TX, 1);
> + udelay(1);
> + omap_set_gpio_dataout(IRDA_SD, 0);
> + udelay(1);
> + omap_set_gpio_dataout(IRDA_TX, 0);
> + udelay(1);
> + }
> +
> + omap_cfg_reg(T21_3430_UART3_RTS_SD);
> + omap_cfg_reg(V21_3430_UART3_TX_IRTX);
> + return 0;
> +}
> +#else
> +static int select_irda(struct device *dev, int state) { return 0; }
> +static int transceiver_mode(struct device *dev, int mode) { return 0; }
> +#endif
> +
> +static struct omap_irda_config irda_data = {
> + .transceiver_cap = IR_SIRMODE | IR_MIRMODE | IR_FIRMODE,
> + .transceiver_mode = transceiver_mode,
> + .select_irda = select_irda,
Please rename this hooks to 3430sdp_transceiver_mode and
3430sdp_select_irda. Check board_h4.c for example.
> + .rx_channel = OMAP24XX_DMA_UART3_RX,
> + .tx_channel = OMAP24XX_DMA_UART3_TX,
> + .dest_start = OMAP_UART3_BASE,
> + .src_start = OMAP_UART3_BASE,
> + .tx_trigger = OMAP24XX_DMA_UART3_TX,
> + .rx_trigger = OMAP24XX_DMA_UART3_RX,
> +};
Actually rx_channel to rx_trigger are not platform data and it is long
pending cleanup. It would great if we can convert this to
platform_resource, as it is chip specific not board specific.
--
---Trilok Soni
http://triloksoni.wordpress.com
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] ARM:OMAP2: irda support 3430
2008-07-03 8:58 ` Trilok Soni
@ 2008-07-03 9:31 ` Girish S G
2008-07-03 9:35 ` Trilok Soni
0 siblings, 1 reply; 4+ messages in thread
From: Girish S G @ 2008-07-03 9:31 UTC (permalink / raw)
To: Trilok Soni; +Cc: linux-omap
----- Original Message -----
From: "Trilok Soni" <soni.trilok@gmail.com>
>> +static struct omap_irda_config irda_data = {
>> + .transceiver_cap = IR_SIRMODE | IR_MIRMODE | IR_FIRMODE,
>> + .transceiver_mode = transceiver_mode,
>> + .select_irda = select_irda,
>
>
> Please rename this hooks to 3430sdp_transceiver_mode and
> 3430sdp_select_irda. Check board_h4.c for example.
>
I think it can be made irda_transceiver_mode/irda_select. And, as this is in 3430 board file, prefixing it with 3430sdp serves no
purpose i guess.
>> + .rx_channel = OMAP24XX_DMA_UART3_RX,
>> + .tx_channel = OMAP24XX_DMA_UART3_TX,
>> + .dest_start = OMAP_UART3_BASE,
>> + .src_start = OMAP_UART3_BASE,
>> + .tx_trigger = OMAP24XX_DMA_UART3_TX,
>> + .rx_trigger = OMAP24XX_DMA_UART3_RX,
>> +};
>
> Actually rx_channel to rx_trigger are not platform data and it is long
> pending cleanup. It would great if we can convert this to
> platform_resource, as it is chip specific not board specific.
>
Yes, I agree.
-girish
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] ARM:OMAP2: irda support 3430
2008-07-03 9:31 ` Girish S G
@ 2008-07-03 9:35 ` Trilok Soni
0 siblings, 0 replies; 4+ messages in thread
From: Trilok Soni @ 2008-07-03 9:35 UTC (permalink / raw)
To: Girish S G; +Cc: linux-omap
Hi Girish,
On Thu, Jul 3, 2008 at 3:01 PM, Girish S G <girishsg@ti.com> wrote:
> ----- Original Message ----- From: "Trilok Soni" <soni.trilok@gmail.com>
>
>>> +static struct omap_irda_config irda_data = {
>>> + .transceiver_cap = IR_SIRMODE | IR_MIRMODE | IR_FIRMODE,
>>> + .transceiver_mode = transceiver_mode,
>>> + .select_irda = select_irda,
>>
>>
>> Please rename this hooks to 3430sdp_transceiver_mode and
>> 3430sdp_select_irda. Check board_h4.c for example.
>>
> I think it can be made irda_transceiver_mode/irda_select. And, as this is
> in 3430 board file, prefixing it with 3430sdp serves no purpose i guess.
>
I am leaving this decision to you. I am more interested in moving the
platform data members below as platform resource and also changing the
same for all the boards :)
>
>>> + .rx_channel = OMAP24XX_DMA_UART3_RX,
>>> + .tx_channel = OMAP24XX_DMA_UART3_TX,
>>> + .dest_start = OMAP_UART3_BASE,
>>> + .src_start = OMAP_UART3_BASE,
>>> + .tx_trigger = OMAP24XX_DMA_UART3_TX,
>>> + .rx_trigger = OMAP24XX_DMA_UART3_RX,
>>> +};
>>
>> Actually rx_channel to rx_trigger are not platform data and it is long
>> pending cleanup. It would great if we can convert this to
>> platform_resource, as it is chip specific not board specific.
>>
> Yes, I agree.
>
>
> -girish
>
--
---Trilok Soni
http://triloksoni.wordpress.com
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2008-07-03 12:22 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-03 6:45 [PATCH 2/2] ARM:OMAP2: irda support 3430 Girish. S. G.
2008-07-03 8:58 ` Trilok Soni
2008-07-03 9:31 ` Girish S G
2008-07-03 9:35 ` Trilok Soni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox