RE: [PATCH] ARM: OMAP2: Add pinmux support for OMAP3430

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 
<snip>

> >> Can anybody see cases where Klaus' grouping would not work?
> >>   
> > Dunno if I missed some mail in this thread, but the obvious occured: Have 
> > we considered having more readable macros? I mean modes are only 1-7 
> > (3bits- and give one more for safe), then add the others
> > #define MODE(x) ((x)&0xF)
> > #define PULL_EN (0x1<<5)
> > #define PULL_DIS (0x0<<5)
> > #define PULL_UP   (0x1<<6)
> > #define PULL_DOWN   (0x0<<6)
> > #define OUTPUT   (0x1<<7)
> > #define INPUT      (0x0<<7)
> > etc.. 1 bit per field. use 16 bit to store the vals (just like the regs)
> > and Thus,
> >
> > MUX_CFG_34XX("Y9_3430_USB1HS_PHY_STP",	0x5d8,	3, 1,  1,  0,
> > 	0,  0,  0, 1,  1,  0)
> > becomes:
> > MUX_CFG_34XX("Y9_3430_USB1HS_PHY_STP",	0x5d8,	3, 
> OUTPUT, OFF_INPUT_PULL_H)
> > becomes:
> > MUX_CFG_34XX("Y9_3430_USB1HS_PHY_STP",	0x5d8,	
> MODE(3)|OUTPUT|PULL_DIS|WAKEUP_EN)
> >
> > All platforms can live with that rt? the pin_config 
> structure gets simpler(and less of a nightmare) and portable :D
> 
> Well originally the format was intended to be easy to compare against
> the 1510 TRM tables. If we can group the sensible options, things will
> simpler.

Working on the grouping Klaus mentioned. Will try to simplify this structure.

> > And one more thing (maybe I am wrong): I think i still see 
> > that we are driving mux common for all platforms on the same 
> > silicon. as we get more boards using and "misusing" the mux 
> > concept, I think at some point we'd need to refactor mux 
> > driver to allow omap_mux_register be called platform 
> > specific. shrug.. just an old opinion..
> 
> Passing the configuration option to omap_cfg_reg() would help
> with board specific configurations or what do you think? Then the
> muxing just becomes selecting the pinout from the mux table, and
> configuring it as desired, something like:
> 
> omap_cfg_reg(AB11_3430_USB2HS_PHY_NXT, MUX_INPUT | OFF_NONE);
> 
> and to avoid messing with omap1 mux tables, we can let them be
> as they are for now, and just pass them
> 
> omap_cfg_reg(XY_15XX_SOMPIN, MUX_DEFAULT);

Yup. Good idea.


> BTW, I've refreshed the mux clean-up and omap_ctrl_reg patches,
> and pushed them. So that only leaves Anand's 3430 mux patch unapplied.
> I've refreshed that one too for reference, see below.
> 

Small problem in this patch.

@@ -278,6 +395,12 @@
 		arch_mux_cfg.cfg_reg	= omap24xx_cfg_reg;
 	}
 
+	if (cpu_is_omap34xx()) {
+		arch_mux_cfg.pins	= omap34xx_pins;
+		arch_mux_cfg.size	= OMAP24XX_PINS_SZ;
+		arch_mux_cfg.cfg_reg	= omap34xx_cfg_reg;
+	}
+
 	return omap_mux_register(&arch_mux_cfg);
 }

Should have been 

+	if (cpu_is_omap34xx()) {
+		arch_mux_cfg.pins	= omap34xx_pins;
+		arch_mux_cfg.size	= OMAP34XX_PINS_SZ;
+		arch_mux_cfg.cfg_reg	= omap34xx_cfg_reg;
+	}
+

I've refreshed the patch if someone wants it.

Regards,
Anand

Attachment: mux-3430-take4.patch
Description: mux-3430-take4.patch


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux