Other Parts Discussed in Thread: AM3703
Hi,
I have Sitara AM3703 processor (package 515 CBP) and I want to configure pin SIM_IO ("p27") to mode 4 (gpio126) - I can't do it.
/debug/omap_mux # cat sim_io
name: sim_io.sim_io (0x48002150/0x120 = 0x0100), b p27, t NA
mode: OMAP_PIN_INPUT | OMAP_MUX_MODE0
signals: sim_io | sim_io_low_impedance | NA | NA | gpio_126 | NA | NA | safe_mode
I want to change its mode because I want to control 3V input of another chip. At this moment pin is floating and I configure vsim to 1V8 - just for tests.
But The worst thing is that I can't reconfigure this pin. Both from initial board code and debugfs.
The procedure:
u16 control_pbias_offset = OMAP343X_CONTROL_PBIAS_LITE;
u32 reg, wakeup_reg;
wakeup_reg = omap_ctrl_readl(OMAP343X_CONTROL_WKUP_CONTROL);
wakeup_reg &= ~(1 << 6);
omap_ctrl_writel(wakeup_reg ,OMAP343X_CONTROL_WKUP_CONTROL);
reg = omap_ctrl_readl(control_pbias_offset);
reg &= ~OMAP343X_PBIASLITEPWRDNZ1;
omap_ctrl_writel(reg, control_pbias_offset);
reg = omap_ctrl_readl(control_pbias_offset);
reg &= ~OMAP343X_PBIASLITEVMODE1;
//reg |= OMAP343X_PBIASLITEVMODE1;
omap_ctrl_writel(reg , control_pbias_offset);
// turn_on_vio(); I've tested it with switching on the vsim here
/* 100ms delay required for PBIAS configuration */
msleep(100);
wakeup_reg |= (1 << 6);
omap_ctrl_writel(wakeup_reg ,OMAP343X_CONTROL_WKUP_CONTROL);
wakeup_reg = omap_ctrl_readl(OMAP343X_CONTROL_WKUP_CONTROL);
reg |= OMAP343X_PBIASLITEPWRDNZ1;
omap_ctrl_writel(reg , control_pbias_offset);