linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: rjui@broadcom.com (Ray Jui)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/4] pinctrl: cygnus: add initial pinctrl support
Date: Fri, 9 Jan 2015 10:38:22 -0800	[thread overview]
Message-ID: <54B0201E.3000307@broadcom.com> (raw)
In-Reply-To: <CACRpkdbZx1hcvd-q9AL3FPQRqU+wJjeSV8AdSno5PVr+fqhpRQ@mail.gmail.com>



On 1/9/2015 3:03 AM, Linus Walleij wrote:
> On Fri, Nov 28, 2014 at 12:46 AM, Ray Jui <rjui@broadcom.com> wrote:
> 
>> This adds the initial driver support for the Broadcom Cygnus pinctrl
>> controller. The Cygnus pinctrl controller supports group based
>> alternate function configuration
>>
>> Signed-off-by: Ray Jui <rjui@broadcom.com>
>> Reviewed-by: Scott Branden <sbranden@broadcom.com>
>> Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
>> ---
>>  drivers/pinctrl/Kconfig              |    7 +
>>  drivers/pinctrl/Makefile             |    1 +
>>  drivers/pinctrl/pinctrl-bcm-cygnus.c |  753 ++++++++++++++++++++++++++++++++++
> 
> With the proliferation of Broadcom drivers, please first send a
> patch moving pinctrl-bcm281xx.c and pinctrl-bcm2835.c to
> drivers/pinctrl/broadcom or something, so we can collect them
> there.
> 
Okay. This change will be included as the first patch in the next patch set.

> I don't know if the hardware has any similarity though, so invite
> the authors of the previous drivers to review this code.
> 
They are completely different. The only similarity between Cygnus and
bcm281xx pinctrl is that they use the same concept of alternation
functions (1, 2, 3, 4) for mux configuration.

>> +config PINCTRL_BCM_CYGNUS
>> +       bool "Broadcom Cygnus pinctrl driver"
>> +       depends on (ARCH_BCM_CYGNUS || COMPILE_TEST)
>> +       select PINMUX
>> +       select PINCONF
>> +       select GENERIC_PINCONF
> 
> Nice that you use GENERIC_PINCONF! :)
> 
>> +/*
>> + * Cygnus pinctrl core
>> + *
>> + * @pctl: pointer to pinctrl_dev
>> + * @dev: pointer to the device
>> + * @base: I/O register base for Cygnus pinctrl configuration
>> + *
>> + */
>> +struct cygnus_pinctrl {
>> +       struct pinctrl_dev *pctl;
>> +       struct device *dev;
>> +       void __iomem *base;
>> +
>> +       const struct pinctrl_pin_desc *pins;
>> +       unsigned num_pins;
> 
> Why is this not simply just a part of struct pinctrl_desc?
> Why does it have to be multiplied here?
> 
Okay. Let me look into this.

>> +/*
>> + * List of groups of pins
>> + */
>> +static const unsigned gpio0_pins[] = { 12 };
>> +static const unsigned gpio1_pins[] = { 13 };
>> +static const unsigned gpio2_pins[] = { 14 };
>> +static const unsigned gpio3_pins[] = { 15 };
>> +static const unsigned gpio4_pins[] = { 16 };
>> +static const unsigned gpio5_pins[] = { 17 };
>> +static const unsigned gpio6_pins[] = { 18 };
>> +static const unsigned gpio7_pins[] = { 19 };
>> +static const unsigned gpio8_pins[] = { 20 };
>> +static const unsigned gpio9_pins[] = { 21 };
>> +static const unsigned gpio10_pins[] = { 22 };
>> +static const unsigned gpio11_pins[] = { 23 };
>> +static const unsigned gpio12_pins[] = { 24 };
>> +static const unsigned gpio13_pins[] = { 25 };
>> +static const unsigned gpio14_pins[] = { 26 };
>> +static const unsigned gpio15_pins[] = { 27 };
>> +static const unsigned gpio16_pins[] = { 28 };
>> +static const unsigned gpio17_pins[] = { 29 };
>> +static const unsigned gpio18_pins[] = { 30 };
>> +static const unsigned gpio19_pins[] = { 31 };
>> +static const unsigned gpio20_pins[] = { 32 };
>> +static const unsigned gpio21_pins[] = { 33 };
>> +static const unsigned gpio22_pins[] = { 34 };
>> +static const unsigned gpio23_pins[] = { 35 };
> 
> Have you considered implementing .gpio_request_enable()
> and .gpio_disable_free() to get around having to have one
> group for each GPIO line?
> 
Okay the Cygnus pin controller is really a mess. GPIO 0 ~ GPIO23 are
really 23 distinct groups, each with one pin. Then the rest of GPIOs go
under other groups. In general, when we set a group to alternate
function 4, all pins become GPIO.

>> +static const unsigned pwm0_pins[] = { 38 };
>> +static const unsigned pwm1_pins[] = { 39 };
>> +static const unsigned pwm2_pins[] = { 40 };
>> +static const unsigned pwm3_pins[] = { 41 };
>> +static const unsigned sdio0_pins[] = { 94, 95, 96, 97, 98, 99 };
>> +static const unsigned smart_card0_pins[] = { 42, 43, 44, 46, 47 };
>> +static const unsigned smart_card1_pins[] = { 48, 49, 50, 52, 53 };
>> +static const unsigned spi0_pins[] = { 54, 55, 56, 57 };
>> +static const unsigned spi1_pins[] = { 58, 59, 60, 61 };
>> +static const unsigned spi2_pins[] = { 62, 63, 64, 65 };
>> +static const unsigned spi3_pins[] = { 66, 67, 68, 69 };
>> +static const unsigned d1w_pins[] = { 10, 11 };
>> +static const unsigned lcd_pins[] = { 126, 127, 128, 129, 130, 131, 132,        133,
>> +       134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
>> +       148, 149, 150, 151, 152, 153, 154, 155 };
>> +static const unsigned uart0_pins[] = { 70, 71, 72, 73 };
>> +static const unsigned uart1_dte_pins[] = { 75, 76, 77, 78 };
>> +static const unsigned uart1_pins[] = { 74, 79, 80, 81 };
>> +static const unsigned uart3_pins[] = { 82, 83 };
>> +static const unsigned qspi_pins[] = { 104, 105, 106, 107 };
>> +static const unsigned nand_pins[] = { 110, 111, 112, 113, 114, 115, 116, 117,
>> +       118, 119, 120, 121, 122, 123, 124, 125 };
>> +static const unsigned sdio0_cd_pins[] = { 103 };
>> +static const unsigned sdio0_mmc_pins[] = { 100, 101, 102 };
>> +static const unsigned can0_spi4_pins[] = { 86, 87 };
>> +static const unsigned can1_spi4_pins[] = { 88, 89 };
>> +static const unsigned sdio1_cd_pins[] = { 93 };
>> +static const unsigned sdio1_led_pins[] = { 84, 85 };
>> +static const unsigned sdio1_mmc_pins[] = { 90, 91, 92 };
>> +static const unsigned camera_led_pins[] = { 156, 157, 158, 159, 160 };
>> +static const unsigned camera_rgmii_pins[] = { 169, 170, 171, 169, 170, 171,
>> +       172, 173 };
>> +static const unsigned camera_sram_rgmii_pins[] = { 161, 162, 163, 164, 165,
>> +       166, 167, 168 };
>> +static const unsigned qspi_gpio_pins[] = { 108, 109 };
>> +static const unsigned smart_card0_fcb_pins[] = { 45 };
>> +static const unsigned smart_card1_fcb_pins[] = { 51 };
>> +static const unsigned gpio0_3p3_pins[] = { 176 };
>> +static const unsigned gpio1_3p3_pins[] = { 177 };
>> +static const unsigned gpio2_3p3_pins[] = { 178 };
> 
> Looks good...
> 
Note these pins are definitions in the driver that help to describe the
pad layout. We can't really configure any individual pins in Cygnus.

>> +/*
>> + * List of groups names. Need to match the order in cygnus_pin_groups
>> + */
>> +static const char * const cygnus_pin_group_names[] = {
>> +       "gpio0",
>> +       "gpio1",
>> +       "gpio2",
>> +       "gpio3",
>> +       "gpio4",
>> +       "gpio5",
>> +       "gpio6",
>> +       "gpio7",
>> +       "gpio8",
>> +       "gpio9",
>> +       "gpio10",
>> +       "gpio11",
>> +       "gpio12",
>> +       "gpio13",
>> +       "gpio14",
>> +       "gpio15",
>> +       "gpio16",
>> +       "gpio17",
>> +       "gpio18",
>> +       "gpio19",
>> +       "gpio20",
>> +       "gpio21",
>> +       "gpio22",
>> +       "gpio23",
>> +       "pwm0",
>> +       "pwm1",
>> +       "pwm2",
>> +       "pwm3",
>> +       "sdio0",
>> +       "smart_card0",
>> +       "smart_card1",
>> +       "spi0",
>> +       "spi1",
>> +       "spi2",
>> +       "spi3",
>> +       "d1w",
>> +       "lcd",
>> +       "uart0",
>> +       "uart1_dte",
>> +       "uart1",
>> +       "uart3",
>> +       "qspi",
>> +       "nand",
>> +       "sdio0_cd",
>> +       "sdio0_mmc",
>> +       "can0_spi4",
>> +       "can1_spi4",
>> +       "sdio1_cd",
>> +       "sdio1_led",
>> +       "sdio1_mmc",
>> +       "camera_led",
>> +       "camera_rgmii",
>> +       "camera_sram_rgmii",
>> +       "qspi_gpio",
>> +       "smart_card0_fcb",
>> +       "smart_card1_fcb",
>> +       "gpio0_3p3",
>> +       "gpio1_3p3",
>> +       "gpio2_3p3",
>> +};
> 
> This looks very much like function names as noted in the binding.
> I would say, suffix every group with _grp or something so it's not
> as confusing. Remember, spi0 is a function of the SoC,
> pins {1,2} is just a group of pins that it may appear on.
> 
Yes, suffix every group with _grp helps a lot to clarify the confusion.
Will fix this.

>> +#define CYGNUS_PIN_FUNCTION(fcn_name, mux_val)                 \
>> +{                                                              \
>> +       .name = #fcn_name,                                      \
>> +       .group_names = cygnus_pin_group_names,                  \
>> +       .num_groups = ARRAY_SIZE(cygnus_pin_group_names),       \
>> +       .mux = mux_val,                                         \
>> +}
>> +
>> +/*
>> + * Cygnus has 4 alternate functions. All groups can be configured to any of
>> + * the 4 alternate functions
>> + */
>> +static const struct cygnus_pin_function cygnus_pin_functions[] = {
>> +       CYGNUS_PIN_FUNCTION(alt1, 0),
>> +       CYGNUS_PIN_FUNCTION(alt2, 1),
>> +       CYGNUS_PIN_FUNCTION(alt3, 2),
>> +       CYGNUS_PIN_FUNCTION(alt4, 3),
>> +};
> 
> These are not functions. These are per-pin mux ways.
> 
> Re-read the documentation of what a function is: it is not something
> abstract like "alternative something" but something very direct like
> uart0 or spi0.
> 
Yes, agree. Will fix.

>> +static int cygnus_dt_node_to_map(struct pinctrl_dev *pctrl_dev,
>> +               struct device_node *np, struct pinctrl_map **map,
>> +               unsigned *num_maps)
>> +{
> 
> After S?ren Brinkmanns patches youy should be able to use core
> functions for this and avoid this code altogether.
> 

Will that help to take care our case, based on the way we will use
"function" and "group"?

>> +       num_groups = of_property_count_strings(np, "brcm,groups");
> 
> As mentioned, just "groups".
> 
I guess I will use "group"?

>> +       ret = of_property_read_string(np, "brcm,function", &function_name);
> 
> As mentioned, just "function".
> 
Yes.

>> +       ret = pinctrl_utils_reserve_map(pctrl_dev, map, &reserved_maps,
>> +                       num_maps, num_groups);
> 
> Good use of utilities!
> 
> Apart from this things look nice.
> 
> The main comment to address is the definition of functions.
> 
> Yours,
> Linus Walleij
> 
Thanks a lot for the review!!!

  reply	other threads:[~2015-01-09 18:38 UTC|newest]

Thread overview: 328+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <Ray Jui <rjui@broadcom.com>
2014-11-27 23:46 ` [PATCH 0/4] Add pinctrl support to Broadcom Cygnus SoC Ray Jui
2014-11-27 23:46   ` [PATCH 1/4] pinctrl: Broadcom Cygnus pinctrl device tree binding Ray Jui
2015-01-09 10:12     ` Linus Walleij
2015-01-09 18:26       ` Ray Jui
2015-01-13  8:20         ` Linus Walleij
2015-01-13 17:14           ` Ray Jui
2015-01-23  2:14           ` Ray Jui
2015-01-23  6:49             ` Ray Jui
2015-01-30 14:18               ` Linus Walleij
2015-01-30 17:01                 ` Ray Jui
2015-01-30 13:54             ` Linus Walleij
2014-11-27 23:46   ` [PATCH 2/4] pinctrl: cygnus: add initial pinctrl support Ray Jui
2015-01-09 11:03     ` Linus Walleij
2015-01-09 18:38       ` Ray Jui [this message]
2015-01-13  8:25         ` Linus Walleij
2015-01-13 17:17           ` Ray Jui
2014-11-27 23:46   ` [PATCH 3/4] ARM: mach-bcm: enable pinctrl support for Cygnus Ray Jui
2014-11-27 23:46   ` [PATCH 4/4] ARM: dts: enable pinctrl for Broadcom Cygnus Ray Jui
2014-11-28  1:27 ` [PATCH 0/4] Add common clock support for Broadcom iProc architecture Ray Jui
2014-11-28  1:27   ` [PATCH 1/4] clk: iproc: define Broadcom iProc clock binding Ray Jui
2014-11-28  1:27   ` [PATCH 2/4] clk: iproc: add initial common clock support Ray Jui
2014-11-28  1:27   ` [PATCH 3/4] clk: cygnus: add clock support for Broadcom Cygnus Ray Jui
2014-11-28  1:27   ` [PATCH 4/4] ARM: dts: enable " Ray Jui
2014-12-04 21:43 ` [PATCH 0/4] Add common clock support for Broadcom iProc architecture Ray Jui
2014-12-04 21:43   ` [PATCH 1/4] clk: iproc: define Broadcom iProc clock binding Ray Jui
2014-12-04 21:43   ` [PATCH 2/4] clk: iproc: add initial common clock support Ray Jui
2014-12-06 22:20     ` Tim Kryger
2014-12-08  1:38       ` Ray Jui
2014-12-04 21:43   ` [PATCH 3/4] clk: cygnus: add clock support for Broadcom Cygnus Ray Jui
2014-12-04 21:43   ` [PATCH 4/4] ARM: dts: enable " Ray Jui
2014-12-04 21:56 ` [PATCH 0/4] Add pinctrl support to Broadcom Cygnus SoC Ray Jui
2014-12-04 21:56   ` [PATCH 1/4] pinctrl: Broadcom Cygnus pinctrl device tree binding Ray Jui
2014-12-04 22:16     ` Belisko Marek
2014-12-04 22:35       ` Ray Jui
2014-12-04 21:56   ` [PATCH 2/4] pinctrl: cygnus: add initial pinctrl support Ray Jui
2014-12-04 21:56   ` [PATCH 3/4] ARM: mach-bcm: enable pinctrl support for Cygnus Ray Jui
2014-12-04 21:56   ` [PATCH 4/4] ARM: dts: enable pinctrl for Broadcom Cygnus Ray Jui
2014-12-05 19:51 ` [PATCH v2 0/4] Add pinctrl support to Broadcom Cygnus SoC Ray Jui
2014-12-05 19:51   ` [PATCH v2 1/4] pinctrl: Broadcom Cygnus pinctrl device tree binding Ray Jui
2014-12-05 19:51   ` [PATCH v2 2/4] pinctrl: cygnus: add initial pinctrl support Ray Jui
2014-12-05 19:51   ` [PATCH v2 3/4] ARM: mach-bcm: enable pinctrl support for Cygnus Ray Jui
2014-12-05 19:51   ` [PATCH v2 4/4] ARM: dts: enable pinctrl for Broadcom Cygnus Ray Jui
2014-12-06  0:40 ` [PATCH 0/5] Add gpio support to Broadcom Cygnus SoC Ray Jui
2014-12-06  0:40   ` [PATCH 1/5] gpio: Cygnus: define Broadcom Cygnus GPIO binding Ray Jui
2015-01-13  7:57     ` Linus Walleij
2015-01-13 17:07       ` Ray Jui
2014-12-06  0:40   ` [PATCH 2/5] gpio: Cygnus: add GPIO driver Ray Jui
2014-12-06  1:28     ` Joe Perches
2014-12-06  2:14       ` Ray Jui
2014-12-06  2:34         ` Joe Perches
2014-12-06  3:41           ` Ray Jui
2014-12-06  4:24             ` Joe Perches
2014-12-08  1:34               ` Ray Jui
2014-12-08  1:59         ` Ray Jui
2014-12-06  0:40   ` [PATCH 3/5] ARM: mach-bcm: Enable GPIO support for Cygnus Ray Jui
2014-12-06  0:40   ` [PATCH 4/5] ARM: dts: enable GPIO for Broadcom Cygnus Ray Jui
2014-12-06  0:40   ` [PATCH 5/5] MAINTAINERS: Entry for Cygnus GPIO driver Ray Jui
2014-12-08  2:38 ` [PATCH v2 0/5] Add gpio support to Broadcom Cygnus SoC Ray Jui
2014-12-08  2:38   ` [PATCH v2 1/5] gpio: Cygnus: define Broadcom Cygnus GPIO binding Ray Jui
2014-12-08 11:22     ` Arnd Bergmann
2014-12-08 16:55       ` Ray Jui
2014-12-08 17:11         ` Arnd Bergmann
2014-12-08  2:38   ` [PATCH v2 2/5] gpio: Cygnus: add GPIO driver Ray Jui
2014-12-08  2:38   ` [PATCH v2 3/5] ARM: mach-bcm: Enable GPIO support for Cygnus Ray Jui
2014-12-08  2:38   ` [PATCH v2 4/5] ARM: dts: enable GPIO for Broadcom Cygnus Ray Jui
2014-12-08  2:38   ` [PATCH v2 5/5] MAINTAINERS: Entry for Cygnus GPIO driver Ray Jui
2014-12-08 18:47 ` [PATCH v3 0/5] Add gpio support to Broadcom Cygnus SoC Ray Jui
2014-12-08 18:47   ` [PATCH v2 " Ray Jui
2014-12-08 18:48     ` Ray Jui
2014-12-08 18:47   ` [PATCH v3 1/5] gpio: Cygnus: define Broadcom Cygnus GPIO binding Ray Jui
2014-12-08 19:38     ` Arnd Bergmann
2014-12-08 19:45       ` Ray Jui
2014-12-08 18:47   ` [PATCH v3 2/5] gpio: Cygnus: add GPIO driver Ray Jui
2014-12-08 18:47   ` [PATCH v3 3/5] ARM: mach-bcm: Enable GPIO support for Cygnus Ray Jui
2014-12-08 18:47   ` [PATCH v3 4/5] ARM: dts: enable GPIO for Broadcom Cygnus Ray Jui
2014-12-08 18:47   ` [PATCH v3 5/5] MAINTAINERS: Entry for Cygnus GPIO driver Ray Jui
2014-12-08 20:41 ` [PATCH v4 0/5] Add gpio support to Broadcom Cygnus SoC Ray Jui
2014-12-08 20:41   ` [PATCH v4 1/5] gpio: Cygnus: define Broadcom Cygnus GPIO binding Ray Jui
2014-12-08 20:41   ` [PATCH v4 2/5] gpio: Cygnus: add GPIO driver Ray Jui
2014-12-10 10:34     ` Alexandre Courbot
2014-12-11  1:30       ` Ray Jui
2014-12-08 20:41   ` [PATCH v4 3/5] ARM: mach-bcm: Enable GPIO support for Cygnus Ray Jui
2014-12-08 20:41   ` [PATCH v4 4/5] ARM: dts: enable GPIO for Broadcom Cygnus Ray Jui
2014-12-08 20:41   ` [PATCH v4 5/5] MAINTAINERS: Entry for Cygnus GPIO driver Ray Jui
2014-12-10  0:04 ` [PATCH 0/4] Add PCIe support to Broadcom iProc Ray Jui
2014-12-10  0:04   ` [PATCH 1/4] pci: iProc: define Broadcom iProc PCIe binding Ray Jui
2014-12-10 10:30     ` Lucas Stach
2014-12-11  1:37       ` Ray Jui
2014-12-10  0:04   ` [PATCH 2/4] PCI: iproc: Add Broadcom iProc PCIe driver Ray Jui
2014-12-10 11:31     ` Arnd Bergmann
2014-12-10 16:46       ` Scott Branden
2014-12-10 18:46         ` Florian Fainelli
2014-12-10 20:26           ` Hauke Mehrtens
2014-12-10 20:40             ` Ray Jui
2014-12-11  9:44           ` Arend van Spriel
2014-12-10  0:04   ` [PATCH 3/4] ARM: mach-bcm: Enable PCIe support for iProc Ray Jui
2014-12-10  0:04   ` [PATCH 4/4] ARM: dts: enable PCIe for Broadcom Cygnus Ray Jui
2014-12-10  0:54 ` [PATCH 0/4] Add I2C support to Broadcom iProc Ray Jui
2014-12-10  0:54   ` [PATCH 1/4] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2014-12-10  1:27     ` Varka Bhadram
2014-12-10  1:35       ` Ray Jui
     [not found]         ` <CAEUmHyb_wu1kVj-G5LQj8Q_A1Tid1gSGbU=cGeBf4EXZgXChbg@mail.gmail.com>
2014-12-10  3:27           ` Ray Jui
2014-12-10  0:54   ` [PATCH 2/4] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
2014-12-10  1:33     ` Varka Bhadram
2014-12-10  1:41       ` Ray Jui
     [not found]         ` <CAEUmHyZ+VqjzL4LkQozGJtnictPNXHYWM2qMKvD=LmfQdcT8iQ@mail.gmail.com>
     [not found]           ` <CAEUmHyZ86r=7KzJzfE9_upv45vN7geW9woqMkaGaBPwfp3xbMQ@mail.gmail.com>
2014-12-10  3:31             ` Ray Jui
2014-12-10  0:54   ` [PATCH 3/4] ARM: mach-bcm: Enable I2C support for iProc Ray Jui
2014-12-10  0:54   ` [PATCH 4/4] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2014-12-10  2:18 ` [PATCH v2 0/4] Add I2C support to Broadcom iProc Ray Jui
2014-12-10  2:18   ` [PATCH v2 1/4] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2014-12-10  2:18   ` [PATCH v2 2/4] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
2014-12-10  2:18   ` [PATCH v2 3/4] ARM: mach-bcm: Enable I2C support for iProc Ray Jui
2014-12-10  2:20     ` Florian Fainelli
2014-12-10  2:24       ` Ray Jui
2014-12-10  3:20         ` Florian Fainelli
2014-12-10  3:58           ` Ray Jui
2014-12-10  2:18   ` [PATCH v2 4/4] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2014-12-10  3:57 ` [PATCH v3 0/3] Add I2C support to Broadcom iProc Ray Jui
2014-12-10  3:57   ` [PATCH v3 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2014-12-10  3:57   ` [PATCH v3 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
2015-01-13 22:50     ` Uwe Kleine-König
2015-01-14  2:14       ` Ray Jui
2015-01-14  7:51         ` Uwe Kleine-König
2015-01-14 20:05           ` Ray Jui
2015-01-15 11:59         ` Wolfram Sang
2015-01-16 22:51           ` Ray Jui
2014-12-10  3:57   ` [PATCH v3 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2014-12-12  0:05 ` [PATCH v5 0/3] Add gpio support to Broadcom Cygnus SoC Ray Jui
2014-12-12  0:05   ` [PATCH v5 1/3] gpio: Cygnus: define Broadcom Cygnus GPIO binding Ray Jui
2014-12-12 12:08     ` Arnd Bergmann
2014-12-12 13:05       ` Alexandre Courbot
2014-12-12 15:28         ` Arnd Bergmann
2014-12-15 21:35           ` Ray Jui
2014-12-15 21:57             ` Arnd Bergmann
2014-12-16  0:08               ` Ray Jui
2014-12-17  2:52               ` Alexandre Courbot
2015-01-13  8:01               ` Linus Walleij
2014-12-17  2:45           ` Alexandre Courbot
2014-12-17 10:26             ` Arnd Bergmann
2014-12-17 13:16               ` Alexandre Courbot
2014-12-17 10:44             ` Russell King - ARM Linux
2014-12-17 13:13               ` Alexandre Courbot
2015-01-13  8:06               ` Linus Walleij
2015-01-13 11:41                 ` Russell King - ARM Linux
2015-01-16 10:18                   ` Linus Walleij
2014-12-12 17:17         ` Ray Jui
2014-12-12  0:05   ` [PATCH v5 2/3] gpio: Cygnus: add GPIO driver Ray Jui
2014-12-12  0:05   ` [PATCH v5 3/3] ARM: dts: enable GPIO for Broadcom Cygnus Ray Jui
2014-12-12  2:36 ` [PATCH v2 0/4] Add PCIe support to Broadcom iProc Ray Jui
2014-12-12  2:36   ` [PATCH v2 1/4] pci: iProc: define Broadcom iProc PCIe binding Ray Jui
2014-12-12 12:14     ` Arnd Bergmann
2014-12-12 16:53       ` Ray Jui
2014-12-12 17:14         ` Arnd Bergmann
2014-12-13 10:05           ` Arend van Spriel
2014-12-13 19:46             ` Arnd Bergmann
2014-12-14  9:48               ` Arend van Spriel
2014-12-14 16:29                 ` Arnd Bergmann
2014-12-12  2:36   ` [PATCH v2 2/4] PCI: iproc: Add Broadcom iProc PCIe driver Ray Jui
2014-12-12 12:29     ` Arnd Bergmann
2014-12-12 17:08       ` Ray Jui
2014-12-12 17:21         ` Arnd Bergmann
2014-12-15 19:16           ` Ray Jui
2014-12-15 21:37             ` Arnd Bergmann
2014-12-16  0:28               ` Ray Jui
2014-12-12  2:36   ` [PATCH v2 3/4] ARM: mach-bcm: Enable PCIe support for iProc Ray Jui
2014-12-12 12:15     ` Arnd Bergmann
2014-12-12 16:56       ` Ray Jui
2014-12-12 17:02         ` Arnd Bergmann
2014-12-12 17:09           ` Ray Jui
2014-12-12  2:36   ` [PATCH v2 4/4] ARM: dts: enable PCIe for Broadcom Cygnus Ray Jui
2014-12-16  2:18 ` [PATCH v6 0/3] Add gpio support to Broadcom Cygnus SoC Ray Jui
2014-12-16  2:18   ` [PATCH v6 1/3] gpio: Cygnus: define Broadcom Cygnus GPIO binding Ray Jui
2014-12-16  2:18   ` [PATCH v6 2/3] gpio: Cygnus: add GPIO driver Ray Jui
2015-01-13  8:53     ` Linus Walleij
2015-01-13 17:05       ` Ray Jui
2015-01-16 10:14         ` Linus Walleij
2015-01-17  0:11           ` Ray Jui
2015-01-20  9:53             ` Linus Walleij
2015-01-20 19:17               ` Ray Jui
2014-12-16  2:18   ` [PATCH v6 3/3] ARM: dts: enable GPIO for Broadcom Cygnus Ray Jui
2014-12-16  8:56   ` [PATCH v6 0/3] Add gpio support to Broadcom Cygnus SoC Arnd Bergmann
2014-12-17  8:06   ` Alexandre Courbot
2015-01-05 23:21 ` [PATCH v2 0/5] Add common clock support for Broadcom iProc architecture Ray Jui
2015-01-05 23:21   ` [PATCH v2 1/5] clk: iproc: define Broadcom iProc clock binding Ray Jui
2015-01-05 23:21   ` [PATCH v2 2/5] clk: iproc: add initial common clock support Ray Jui
2015-01-05 23:21   ` [PATCH v2 3/5] clk: Change bcm clocks build dependency Ray Jui
2015-01-05 23:21   ` [PATCH v2 4/5] clk: cygnus: add clock support for Broadcom Cygnus Ray Jui
2015-01-06 20:21     ` Arnd Bergmann
2015-01-07  2:29       ` Ray Jui
2015-01-07  9:11         ` Arnd Bergmann
2015-01-07 17:33           ` Ray Jui
2015-01-05 23:21   ` [PATCH v2 5/5] ARM: dts: enable " Ray Jui
2015-01-07 19:22 ` [PATCH v3 0/5] Add common clock support for Broadcom iProc architecture Ray Jui
2015-01-07 19:22   ` [PATCH v3 1/5] clk: iproc: define Broadcom iProc clock binding Ray Jui
2015-01-07 19:22   ` [PATCH v3 2/5] clk: iproc: add initial common clock support Ray Jui
2015-01-07 19:22   ` [PATCH v3 3/5] clk: Change bcm clocks build dependency Ray Jui
2015-01-07 19:22   ` [PATCH v3 4/5] clk: cygnus: add clock support for Broadcom Cygnus Ray Jui
2015-01-07 19:22   ` [PATCH v3 5/5] ARM: dts: enable " Ray Jui
2015-01-07 19:26   ` [PATCH v3 0/5] Add common clock support for Broadcom iProc architecture Arnd Bergmann
2015-01-14 22:23 ` [PATCH v4 0/3] Add I2C support to Broadcom iProc Ray Jui
2015-01-14 22:23   ` [PATCH v4 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2015-01-14 22:23   ` [PATCH v4 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
2015-01-15  8:41     ` Uwe Kleine-König
2015-01-15 12:07       ` Wolfram Sang
2015-01-15 16:32         ` Uwe Kleine-König
2015-01-16 22:52         ` Ray Jui
2015-01-16 22:09       ` Ray Jui
2015-01-17 16:01         ` Uwe Kleine-König
2015-01-17 19:58           ` Ray Jui
2015-01-17 20:18             ` Uwe Kleine-König
2015-01-17 20:51               ` Ray Jui
2015-01-17 21:10                 ` Uwe Kleine-König
2015-01-17 21:26                   ` Ray Jui
2015-01-17 22:40                     ` Russell King - ARM Linux
2015-01-18  0:30                       ` Ray Jui
2015-01-19 19:28                         ` Russell King - ARM Linux
2015-01-19 21:25                           ` Ray Jui
2015-01-14 22:23   ` [PATCH v4 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2015-01-15  8:44     ` Uwe Kleine-König
2015-01-16 19:24       ` Ray Jui
2015-01-16 19:48         ` Uwe Kleine-König
2015-01-16 23:18           ` Ray Jui
2015-01-16 23:42 ` [PATCH v5 0/3] Add I2C support to Broadcom iProc Ray Jui
2015-01-16 23:42   ` [PATCH v5 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2015-01-16 23:42   ` [PATCH v5 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
2015-01-18  9:14     ` Arend van Spriel
2015-01-18  9:47       ` Uwe Kleine-König
2015-01-18 11:06         ` Wolfram Sang
2015-01-18 11:17           ` Uwe Kleine-König
2015-01-18 11:42             ` Wolfram Sang
2015-01-18 11:46             ` Arend van Spriel
2015-01-18 11:56               ` Uwe Kleine-König
2015-01-18 12:13                 ` Arend van Spriel
2015-01-19 19:15                   ` Ray Jui
2015-01-16 23:42   ` [PATCH v5 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2015-01-19 19:23 ` [PATCH v6 0/3] Add I2C support to Broadcom iProc Ray Jui
2015-01-19 19:23   ` [PATCH v6 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2015-01-19 19:23   ` [PATCH v6 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
2015-01-19 19:44     ` Russell King - ARM Linux
2015-01-19 21:31       ` Ray Jui
2015-01-19 19:23   ` [PATCH v6 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2015-01-19 21:51 ` [PATCH v7 0/3] Add I2C support to Broadcom iProc Ray Jui
2015-01-19 21:51   ` [PATCH v7 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2015-01-19 21:51   ` [PATCH v7 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
2015-02-06 22:31     ` [v7,2/3] " Kevin Cernekee
2015-02-06 22:48       ` Dmitry Torokhov
2015-02-06 23:01         ` Kevin Cernekee
2015-02-07  0:54       ` Ray Jui
2015-01-19 21:51   ` [PATCH v7 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2015-02-03  2:01 ` [PATCH v3 0/4] Add pinctrl support to Broadcom Cygnus SoC Ray Jui
2015-02-03  2:01   ` [PATCH v3 2/4] pinctrl: Broadcom Cygnus pinctrl device tree binding Ray Jui
2015-02-03  2:01   ` [PATCH v3 3/4] pinctrl: cygnus: add initial IOMUX driver support Ray Jui
2015-02-03 17:40     ` Dmitry Torokhov
2015-02-03 19:29       ` Ray Jui
2015-02-03 20:00         ` Dmitry Torokhov
2015-02-03 20:16           ` Ray Jui
2015-02-03  2:01   ` [PATCH v3 4/4] ARM: dts: enable IOMUX for Broadcom Cygnus Ray Jui
2015-02-03 18:33 ` [PATCH v4 0/5] Add common clock support for Broadcom iProc architecture Ray Jui
2015-02-03 18:33   ` [PATCH v4 1/5] clk: iproc: define Broadcom iProc clock binding Ray Jui
2015-02-03 18:33   ` [PATCH v4 2/5] clk: iproc: add initial common clock support Ray Jui
2015-02-04 23:13     ` Stephen Boyd
2015-02-04 23:33       ` Ray Jui
2015-02-04 23:36         ` Stephen Boyd
2015-02-03 18:33   ` [PATCH v4 3/5] clk: Change bcm clocks build dependency Ray Jui
2015-02-03 18:33   ` [PATCH v4 4/5] clk: cygnus: add clock support for Broadcom Cygnus Ray Jui
2015-02-03 18:33   ` [PATCH v4 5/5] ARM: dts: enable " Ray Jui
2015-02-04  1:09 ` [PATCH v7 0/4] Add gpio/pinconf support to Broadcom Cygnus SoC Ray Jui
2015-02-04  1:09   ` [PATCH v7 1/4] pinctrl: Cygnus: define Broadcom Cygnus GPIO/PINCONF binding Ray Jui
2015-02-04  1:09   ` [PATCH v7 2/4] pinctrl: cygnus: add gpio/pinconf driver Ray Jui
2015-02-04  1:41     ` Dmitry Torokhov
2015-02-04  2:19       ` Ray Jui
2015-02-04  1:09   ` [PATCH v7 3/4] ARM: dts: enable GPIO for Broadcom Cygnus Ray Jui
2015-02-04  1:09   ` [PATCH v7 4/4] ARM: dts: cygnus: enable GPIO based hook detection Ray Jui
2015-02-04  2:09 ` [PATCH v4 0/4] Add pinctrl support to Broadcom Cygnus SoC Ray Jui
2015-02-04  2:09   ` [PATCH v4 2/4] pinctrl: Broadcom Cygnus pinctrl device tree binding Ray Jui
2015-02-04  2:10   ` [PATCH v4 3/4] pinctrl: cygnus: add initial IOMUX driver support Ray Jui
2015-02-04  2:10   ` [PATCH v4 4/4] ARM: dts: enable IOMUX for Broadcom Cygnus Ray Jui
2015-02-25 19:29   ` [PATCH v4 0/4] Add pinctrl support to Broadcom Cygnus SoC Dmitry Torokhov
     [not found]   ` <1423015801-26967-2-git-send-email-rjui@broadcom.com>
2015-03-04  9:07     ` [PATCH v4 1/4] pinctrl: bcm: consolidate Broadcom pinctrl drivers Linus Walleij
2015-03-04 17:31       ` Ray Jui
2015-02-04 17:20 ` [PATCH v8 0/4] Add gpio/pinconf support to Broadcom Cygnus SoC Ray Jui
2015-02-04 17:21   ` [PATCH v8 1/4] pinctrl: Cygnus: define Broadcom Cygnus GPIO/PINCONF binding Ray Jui
2015-02-04 17:21   ` [PATCH v8 2/4] pinctrl: cygnus: add gpio/pinconf driver Ray Jui
2015-02-09 19:20     ` Dmitry Torokhov
2015-02-10 21:47       ` Ray Jui
2015-02-04 17:21   ` [PATCH v8 3/4] ARM: dts: enable GPIO for Broadcom Cygnus Ray Jui
2015-02-04 17:21   ` [PATCH v8 4/4] ARM: dts: cygnus: enable GPIO based hook detection Ray Jui
2015-02-05  0:54 ` [PATCH v5 0/6] Add common clock support for Broadcom iProc architecture Ray Jui
2015-02-05  0:55   ` [PATCH v5 1/6] clk: add of_clk_get_parent_rate function Ray Jui
2015-02-25 22:09     ` Stephen Boyd
2015-02-26  5:54     ` Sascha Hauer
2015-02-26  6:13       ` Ray Jui
2015-02-26  6:51         ` Sascha Hauer
2015-02-26  7:42           ` Ray Jui
2015-02-26  8:43             ` Sascha Hauer
2015-03-06 19:55               ` Mike Turquette
2015-03-06 20:07                 ` Ray Jui
2015-03-06 22:57                   ` Mike Turquette
2015-02-05  0:55   ` [PATCH v5 2/6] clk: iproc: define Broadcom iProc clock binding Ray Jui
2015-02-05  0:55   ` [PATCH v5 3/6] clk: iproc: add initial common clock support Ray Jui
2015-02-05  0:55   ` [PATCH v5 4/6] clk: Change bcm clocks build dependency Ray Jui
2015-02-05  0:55   ` [PATCH v5 5/6] clk: cygnus: add clock support for Broadcom Cygnus Ray Jui
2015-02-05  0:55   ` [PATCH v5 6/6] ARM: dts: enable " Ray Jui
2015-02-25 19:33   ` [PATCH v5 0/6] Add common clock support for Broadcom iProc architecture Dmitry Torokhov
2015-02-07  1:28 ` [PATCH v8 0/3] Add I2C support to Broadcom iProc Ray Jui
2015-02-07  1:28   ` [PATCH v8 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2015-02-07  1:28   ` [PATCH v8 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
2015-02-07 17:50     ` Wolfram Sang
2015-02-08  5:08       ` Ray Jui
2015-02-08 11:03         ` Wolfram Sang
2015-02-08 18:10           ` Ray Jui
2015-02-09 10:03             ` Wolfram Sang
2015-02-07  1:28   ` [PATCH v8 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2015-02-08  5:25 ` [PATCH v9 0/3] Add I2C support to Broadcom iProc Ray Jui
2015-02-08  5:25   ` [PATCH v9 1/3] i2c: iProc: define Broadcom iProc I2C binding Ray Jui
2015-02-09 12:09     ` Wolfram Sang
2015-02-08  5:25   ` [PATCH v9 2/3] i2c: iproc: Add Broadcom iProc I2C Driver Ray Jui
2015-02-08 16:29     ` Wolfram Sang
2015-02-08 17:56       ` Ray Jui
2015-02-09 12:10     ` Wolfram Sang
2015-02-10  5:23       ` Ray Jui
2015-02-10  8:33         ` Wolfram Sang
2015-02-10 17:10           ` Ray Jui
2015-02-08  5:25   ` [PATCH v9 3/3] ARM: dts: add I2C device nodes for Broadcom Cygnus Ray Jui
2015-02-09 12:11     ` Wolfram Sang
2015-02-10  5:24       ` Ray Jui
2015-02-10  5:34         ` Florian Fainelli
2015-02-10  5:36           ` Ray Jui

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54B0201E.3000307@broadcom.com \
    --to=rjui@broadcom.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).