1. 08 11月, 2017 8 次提交
  2. 04 11月, 2017 1 次提交
  3. 31 10月, 2017 10 次提交
  4. 30 10月, 2017 1 次提交
    • L
      gpio-mmio: Use the new .get_multiple() callback · 80057cb4
      Linus Walleij 提交于
      It is possible to read all lines of a generic MMIO GPIO chip
      with a single register read so support this if we are in
      native endianness.
      
      Add an especially quirky callback to read multiple lines for
      the variants that require you to read values from the
      output registers if and only if the line is set as output.
      We managed to do that with a maximum of two register reads,
      and just one read if the requested lines are all input or all
      output.
      
      Cc: Anton Vorontsov <anton@enomsg.org>
      Cc: Lukas Wunner <lukas@wunner.de>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      80057cb4
  5. 25 10月, 2017 6 次提交
    • L
      gpio: mmio: Make pin2mask() a private business · 24efd94b
      Linus Walleij 提交于
      The vtable call pin2mask() was introducing a vtable function call
      in every gpiochip callback for a generic MMIO GPIO chip. This was
      not exactly efficient. (Maybe link-time optimization could get rid of
      it, I don't know.)
      
      After removing all external calls into this API we can make it a
      boolean flag in the struct gpio_chip call and sink the function into
      the gpio-mmio driver yielding encapsulation and potential speedups.
      
      Cc: Anton Vorontsov <anton@enomsg.org>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      24efd94b
    • L
      gpio: mpc8xxx: Do not reverse bits using bgpio · b3222f71
      Linus Walleij 提交于
      The MPC8xxx driver is always instantiating its generic GPIO functions
      with the flag BGPIOF_BIG_ENDIAN. This means "big-endian bit order"
      and means the bits representing the GPIO lines in the registers are
      reversed around 31 bits so line 0 is at bit 31 and so forth down to
      line 31 in bit 0.
      
      Instead of looping into the generic MMIO gpio to do the simple
      calculation of a bitmask, through a vtable call with two parameters
      likely using stack frames etc (unless the compiler optimize it)
      and obscuring the view for the programmer, let's just open-code
      what the call does. This likely executes faster, saves space and
      makes the code easier to read.
      
      Cc: Liu Gang <Gang.Liu@nxp.com>
      Cc: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      b3222f71
    • L
      gpio: brcmstb: Do not use gc->pin2mask() · d7442368
      Linus Walleij 提交于
      The pin2mask() accessor only shuffles BIT ORDER in big endian systems,
      i.e. the bitstuffing is swizzled big endian so "bit 0" is bit 7 or
      bit 15 or bit 31 or so.
      
      The brcmstb only uses big endian BYTE ORDER which will be taken car of
      by the ->write_reg() callback.
      
      Just use BIT(offset) to assign the bit.
      Acked-by: NGregory Fong <gregory.0xf0@gmail.com>
      Reviewed-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      d7442368
    • L
      gpio: grgpio: Do not use gc->pin2mask() · 5c7b0c4e
      Linus Walleij 提交于
      The pin2mask() accessor only shuffles BIT ORDER in big endian systems,
      i.e. the bitstuffing is swizzled big endian so "bit 0" is bit 7 or
      bit 15 or bit 31 or so.
      
      The grgpio only uses big endian BYTE ORDER which will be taken car of
      by the ->write_reg() callback.
      
      Just use BIT(offset) to assign the bit.
      Acked-by: NAndreas Larsson <andreas@gaisler.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      5c7b0c4e
    • L
      gpio: loongson1: fix bgpio usage · fe29416b
      Linus Walleij 提交于
      When no flags are given, the native endianness is used to access
      the MMIO registers, and the pin2mask() call can simply be
      converted to a BIT() call, as per the default pin2mask()
      implementation in gpio-mmio.c.
      
      Cc: Kelvin Cheung <keguang.zhang@gmail.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      fe29416b
    • L
      gpio: dwapb: fix bgpio usage · d97a1b56
      Linus Walleij 提交于
      The DW APB GPIO driver uses the generic GPIO library gpio-mmio,
      and initialize the flags as "false", which should be 0.
      
      When no flags are given, the native endianness is used to access
      the MMIO registers, and the pin2mask() call can simply be
      converted to a BIT() call, as per the default pin2mask()
      implementation in gpio-mmio.c.
      Acked-by: NAlan Tull <atull@kernel.org>
      Acked-by: NHoan Tran <hotran@apm.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      d97a1b56
  6. 23 10月, 2017 2 次提交
  7. 20 10月, 2017 12 次提交