pinctrl: artpec-6: Add smaller groups for uarts
Add group configuration for uarts that are cut down variants, the standard being full, i.e. all signals, flow control, i.e. rx/tx and cts/rts, and rx/tx only. This allows us to be more precise in which pins we're actually using. Signed-off-by: Jesper Nilsson <jesper.nilsson@axis.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
4a7cba71ca
commit
41e009b2b5
1 changed files with 50 additions and 16 deletions
|
@ -277,37 +277,61 @@ static const struct artpec6_pin_group artpec6_pin_groups[] = {
|
|||
.config = ARTPEC6_CONFIG_3,
|
||||
},
|
||||
{
|
||||
.name = "uart0grp0",
|
||||
.name = "uart0grp0", /* All pins. */
|
||||
.pins = uart0_pins0,
|
||||
.num_pins = ARRAY_SIZE(uart0_pins0),
|
||||
.config = ARTPEC6_CONFIG_1,
|
||||
},
|
||||
{
|
||||
.name = "uart0grp1",
|
||||
.name = "uart0grp1", /* RX/TX and RTS/CTS */
|
||||
.pins = uart0_pins1,
|
||||
.num_pins = ARRAY_SIZE(uart0_pins1),
|
||||
.config = ARTPEC6_CONFIG_1,
|
||||
},
|
||||
{
|
||||
.name = "uart1grp0",
|
||||
.name = "uart0grp2", /* Only RX/TX pins. */
|
||||
.pins = uart0_pins1,
|
||||
.num_pins = ARRAY_SIZE(uart0_pins1) - 2,
|
||||
.config = ARTPEC6_CONFIG_1,
|
||||
},
|
||||
{
|
||||
.name = "uart1grp0", /* RX/TX and RTS/CTS */
|
||||
.pins = uart1_pins0,
|
||||
.num_pins = ARRAY_SIZE(uart1_pins0),
|
||||
.config = ARTPEC6_CONFIG_2,
|
||||
},
|
||||
{
|
||||
.name = "uart2grp0",
|
||||
.name = "uart1grp1", /* Only RX/TX pins. */
|
||||
.pins = uart1_pins0,
|
||||
.num_pins = 2,
|
||||
.config = ARTPEC6_CONFIG_2,
|
||||
},
|
||||
{
|
||||
.name = "uart2grp0", /* Full pinout */
|
||||
.pins = uart2_pins0,
|
||||
.num_pins = ARRAY_SIZE(uart2_pins0),
|
||||
.config = ARTPEC6_CONFIG_1,
|
||||
},
|
||||
{
|
||||
.name = "uart2grp1",
|
||||
.name = "uart2grp1", /* RX/TX and RTS/CTS */
|
||||
.pins = uart2_pins1,
|
||||
.num_pins = ARRAY_SIZE(uart2_pins1),
|
||||
.config = ARTPEC6_CONFIG_1,
|
||||
},
|
||||
{
|
||||
.name = "uart3grp0",
|
||||
.name = "uart2grp2", /* Only RX/TX */
|
||||
.pins = uart2_pins1,
|
||||
.num_pins = 2,
|
||||
.config = ARTPEC6_CONFIG_1,
|
||||
},
|
||||
{
|
||||
.name = "uart3grp0", /* RX/TX and CTS/RTS */
|
||||
.pins = uart3_pins0,
|
||||
.num_pins = ARRAY_SIZE(uart3_pins0),
|
||||
.config = ARTPEC6_CONFIG_0,
|
||||
},
|
||||
{
|
||||
.name = "uart3grp1", /* Only RX/TX */
|
||||
.pins = uart3_pins0,
|
||||
.num_pins = ARRAY_SIZE(uart3_pins0),
|
||||
.config = ARTPEC6_CONFIG_0,
|
||||
|
@ -319,13 +343,19 @@ static const struct artpec6_pin_group artpec6_pin_groups[] = {
|
|||
.config = ARTPEC6_CONFIG_2,
|
||||
},
|
||||
{
|
||||
.name = "uart5grp0",
|
||||
.name = "uart5grp0", /* TX/RX and RTS/CTS */
|
||||
.pins = uart5_pins0,
|
||||
.num_pins = ARRAY_SIZE(uart5_pins0),
|
||||
.config = ARTPEC6_CONFIG_2,
|
||||
},
|
||||
{
|
||||
.name = "uart5nocts",
|
||||
.name = "uart5grp1", /* Only TX/RX */
|
||||
.pins = uart5_pins0,
|
||||
.num_pins = 2,
|
||||
.config = ARTPEC6_CONFIG_2,
|
||||
},
|
||||
{
|
||||
.name = "uart5nocts", /* TX/RX/RTS */
|
||||
.pins = uart5_pins0,
|
||||
.num_pins = ARRAY_SIZE(uart5_pins0) - 1,
|
||||
.config = ARTPEC6_CONFIG_2,
|
||||
|
@ -457,8 +487,9 @@ static const char * const gpiogrps[] = {
|
|||
"cpuclkoutgrp0", "udlclkoutgrp0", "i2c1grp0", "i2c2grp0",
|
||||
"i2c3grp0", "i2s0grp0", "i2s1grp0", "i2srefclkgrp0",
|
||||
"spi0grp0", "spi1grp0", "pciedebuggrp0", "uart0grp0",
|
||||
"uart0grp1", "uart1grp0", "uart2grp0", "uart2grp1",
|
||||
"uart4grp0", "uart5grp0",
|
||||
"uart0grp1", "uart0grp2", "uart1grp0", "uart1grp1",
|
||||
"uart2grp0", "uart2grp1", "uart2grp2", "uart4grp0", "uart5grp0",
|
||||
"uart5grp1", "uart5nocts",
|
||||
};
|
||||
static const char * const cpuclkoutgrps[] = { "cpuclkoutgrp0" };
|
||||
static const char * const udlclkoutgrps[] = { "udlclkoutgrp0" };
|
||||
|
@ -471,12 +502,15 @@ static const char * const i2srefclkgrps[] = { "i2srefclkgrp0" };
|
|||
static const char * const spi0grps[] = { "spi0grp0" };
|
||||
static const char * const spi1grps[] = { "spi1grp0" };
|
||||
static const char * const pciedebuggrps[] = { "pciedebuggrp0" };
|
||||
static const char * const uart0grps[] = { "uart0grp0", "uart0grp1" };
|
||||
static const char * const uart1grps[] = { "uart1grp0" };
|
||||
static const char * const uart2grps[] = { "uart2grp0", "uart2grp1" };
|
||||
static const char * const uart0grps[] = { "uart0grp0", "uart0grp1",
|
||||
"uart0grp2" };
|
||||
static const char * const uart1grps[] = { "uart1grp0", "uart1grp1" };
|
||||
static const char * const uart2grps[] = { "uart2grp0", "uart2grp1",
|
||||
"uart2grp2" };
|
||||
static const char * const uart3grps[] = { "uart3grp0" };
|
||||
static const char * const uart4grps[] = { "uart4grp0" };
|
||||
static const char * const uart5grps[] = { "uart5grp0", "uart5nocts" };
|
||||
static const char * const uart4grps[] = { "uart4grp0", "uart4grp1" };
|
||||
static const char * const uart5grps[] = { "uart5grp0", "uart5grp1",
|
||||
"uart5nocts" };
|
||||
static const char * const nandgrps[] = { "nandgrp0" };
|
||||
static const char * const sdio0grps[] = { "sdio0grp0" };
|
||||
static const char * const sdio1grps[] = { "sdio1grp0" };
|
||||
|
@ -601,7 +635,7 @@ static int artpec6_pmx_get_functions_count(struct pinctrl_dev *pctldev)
|
|||
}
|
||||
|
||||
static const char *artpec6_pmx_get_fname(struct pinctrl_dev *pctldev,
|
||||
unsigned int function)
|
||||
unsigned int function)
|
||||
{
|
||||
return artpec6_pmx_functions[function].name;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue