1. 23 9月, 2014 1 次提交
  2. 04 9月, 2014 1 次提交
  3. 05 7月, 2014 1 次提交
  4. 23 5月, 2014 1 次提交
    • A
      pinctrl: berlin: add the core pinctrl driver for Marvell Berlin SoCs · 3de68d33
      Antoine Tenart 提交于
      The Marvell Berlin boards have a group based pinmuxing mechanism. This
      adds the core driver support. We actually do not need any information
      about the pins here and only have the definition of the groups.
      
      Let's take the example of the uart0 pinmuxing on the BG2Q. Balls BK4 and
      BH6 are muxed to respectively UART0 RX and TX if the group GSM12 is set
      to mode 0:
      
      Group	Modes	Offset Base	Offset	LSB	Bit Width
      GSM12	3	sm_base		0x40	0x10	0x2
      
      Ball	Group	Mode 0		Mode 1		Mode 2
      BK4	GSM12	UART0_RX	IrDA0_RX	GPIO9
      BH6	GSM12	UART0_TX	IrDA0_TX	GPIO10
      
      So in order to configure BK4 -> UART0_TX and BH6 -> UART0_RX, we need
      to set (sm_base + 0x40 + 0x10) &= ff3fffff.
      
      As pin control registers are part of either chip control or system
      control registers, that deal with a bunch of other functions we rely
      on a regmap instead of exclusively remapping any resources.
      Signed-off-by: NAntoine Tenart <antoine.tenart@free-electrons.com>
      Acked-by: NSebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      3de68d33