i.MX: vf610: Add low-level pin configuration helper
Add low-level pin configuration helper for early boot code, and convert pinctrl driver to use that code as well. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
094820a63b
commit
5d296b98ea
|
@ -223,4 +223,19 @@ enum {
|
|||
VF610_PAD_DDR_ODT0__DDR_ODT_1 = IOMUX_PAD(0x02d8, 0x02d8, 0, __NA_, 0, VF610_DDR_PAD_CTRL),
|
||||
};
|
||||
|
||||
#define PINCTRL_VF610_MUX_SHIFT 20
|
||||
|
||||
|
||||
static inline void vf610_setup_pad(void __iomem *iomux, iomux_v3_cfg_t pad)
|
||||
{
|
||||
iomux_v3_setup_pad(iomux, SHARE_MUX_CONF_REG | ZERO_OFFSET_VALID,
|
||||
IOMUX_CTRL_OFS(pad),
|
||||
IOMUX_PAD_CTRL_OFS(pad),
|
||||
IOMUX_SEL_INPUT_OFS(pad),
|
||||
IOMUX_MODE(pad) << PINCTRL_VF610_MUX_SHIFT,
|
||||
IOMUX_PAD_CTRL(pad),
|
||||
IOMUX_SEL_INPUT(pad));
|
||||
}
|
||||
|
||||
|
||||
#endif /* __IOMUX_VF610_H__ */
|
||||
|
|
|
@ -24,9 +24,10 @@
|
|||
#include <malloc.h>
|
||||
#include <gpio.h>
|
||||
|
||||
#include <mach/iomux-vf610.h>
|
||||
|
||||
enum {
|
||||
PINCTRL_VF610_MUX_LINE_SIZE = 20,
|
||||
PINCTRL_VF610_MUX_SHIFT = 20,
|
||||
|
||||
PINCTRL_VF610_IBE = 1 << 0,
|
||||
PINCTRL_VF610_OBE = 1 << 1,
|
||||
|
@ -60,17 +61,17 @@ static int pinctrl_vf610_set_state(struct pinctrl_device *pdev,
|
|||
npins = size / PINCTRL_VF610_MUX_LINE_SIZE;
|
||||
|
||||
for (i = 0; i < npins; i++) {
|
||||
iomux_v3_cfg_t pad;
|
||||
u32 mux_reg = be32_to_cpu(*list++);
|
||||
u32 input_reg = be32_to_cpu(*list++);
|
||||
u32 mux_val = be32_to_cpu(*list++);
|
||||
u32 input_val = be32_to_cpu(*list++);
|
||||
u32 conf_val = be32_to_cpu(*list++);
|
||||
|
||||
writel(mux_val << PINCTRL_VF610_MUX_SHIFT | conf_val,
|
||||
iomux->base + mux_reg);
|
||||
pad = IOMUX_PAD(mux_reg, mux_reg, mux_val,
|
||||
input_reg, input_val, conf_val);
|
||||
|
||||
if (input_reg)
|
||||
writel(input_val, iomux->base + input_reg);
|
||||
vf610_setup_pad(iomux->base, pad);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue