CAN module on AM3517 requires programming of IO expander
as part of init sequence. Added transceiver_switch
callback to handle this.

Signed-off-by: Sriramakrishnan <[email protected]>
Reviewed-by:  Vaibhav Hiremath <[email protected]>
Signed-off-by: Abhilash K V <[email protected]>
---
 arch/arm/mach-omap2/board-am3517evm.c |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/board-am3517evm.c 
b/arch/arm/mach-omap2/board-am3517evm.c
index 2e4aad2..782d72d 100644
--- a/arch/arm/mach-omap2/board-am3517evm.c
+++ b/arch/arm/mach-omap2/board-am3517evm.c
@@ -734,6 +734,23 @@ static struct omap_board_mux board_mux[] __initdata = {
 };
 #endif
 
+/*
+ * HECC information
+ */
+
+#define CAN_STB         214
+static void hecc_phy_control(int on)
+{
+        int r;
+
+        r = gpio_request(CAN_STB, "can_stb");
+        if (r) {
+                printk(KERN_ERR "failed to get can_stb \n");
+                return;
+        }
+
+        gpio_direction_output(CAN_STB, (on==1)?0:1);
+}
 
 static struct resource am3517_hecc_resources[] = {
        {
@@ -762,6 +779,7 @@ static struct ti_hecc_platform_data am3517_evm_hecc_pdata = 
{
        .mbx_offset             = AM35XX_HECC_MBOX_OFFSET,
        .int_line               = AM35XX_HECC_INT_LINE,
        .version                = AM35XX_HECC_VERSION,
+       .transceiver_switch     = hecc_phy_control,
 };
 
 static void am3517_evm_hecc_init(struct ti_hecc_platform_data *pdata)
-- 
1.6.2.4

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to