diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2019-01-28 09:02:04 -0500 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2019-01-28 09:02:04 -0500 |
commit | c6868f7cab3d31a7e8de20104e1d7690e48f732f (patch) | |
tree | 691273fdf57c522338cce5cbc187bc016ec36bc8 /drivers/pinctrl | |
parent | 4f41e66cf555f74b5aa490684e72b4a6aa34988d (diff) | |
parent | 8e32e881947be98abaa917157fefc4a3319e90af (diff) |
Merge tag 'sh-pfc-for-v5.1-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel
pinctrl: sh-pfc: Updates for v5.1
- Add TMU pin groups on R-Car E3,
- Miscellaneous fixes and cleanups.
Diffstat (limited to 'drivers/pinctrl')
-rw-r--r-- | drivers/pinctrl/sh-pfc/pfc-r8a7778.c | 6 | ||||
-rw-r--r-- | drivers/pinctrl/sh-pfc/pfc-r8a7790.c | 17 | ||||
-rw-r--r-- | drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 68 | ||||
-rw-r--r-- | drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 16 | ||||
-rw-r--r-- | drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 90 | ||||
-rw-r--r-- | drivers/pinctrl/sh-pfc/pfc-r8a7796.c | 90 | ||||
-rw-r--r-- | drivers/pinctrl/sh-pfc/pfc-r8a77965.c | 6 | ||||
-rw-r--r-- | drivers/pinctrl/sh-pfc/pfc-r8a77970.c | 128 | ||||
-rw-r--r-- | drivers/pinctrl/sh-pfc/pfc-r8a77980.c | 64 | ||||
-rw-r--r-- | drivers/pinctrl/sh-pfc/pfc-r8a77990.c | 133 | ||||
-rw-r--r-- | drivers/pinctrl/sh-pfc/pfc-r8a77995.c | 11 | ||||
-rw-r--r-- | drivers/pinctrl/sh-pfc/pinctrl.c | 2 |
12 files changed, 288 insertions, 343 deletions
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7778.c b/drivers/pinctrl/sh-pfc/pfc-r8a7778.c index 6bcdb4b5e69e..068b5e6334d1 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7778.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7778.c | |||
@@ -1264,8 +1264,8 @@ static const struct sh_pfc_pin pinmux_pins[] = { | |||
1264 | 1264 | ||
1265 | /* Pins not associated with a GPIO port */ | 1265 | /* Pins not associated with a GPIO port */ |
1266 | SH_PFC_PIN_NAMED(3, 20, C20), | 1266 | SH_PFC_PIN_NAMED(3, 20, C20), |
1267 | SH_PFC_PIN_NAMED(20, 1, T1), | 1267 | SH_PFC_PIN_NAMED(1, 20, A20), |
1268 | SH_PFC_PIN_NAMED(25, 2, Y2), | 1268 | SH_PFC_PIN_NAMED(2, 25, B25), |
1269 | }; | 1269 | }; |
1270 | 1270 | ||
1271 | /* - macro */ | 1271 | /* - macro */ |
@@ -1400,7 +1400,7 @@ HSPI_PFC_DAT(hspi1_a, HSPI_CLK1_A, HSPI_CS1_A, | |||
1400 | HSPI_RX1_A, HSPI_TX1_A); | 1400 | HSPI_RX1_A, HSPI_TX1_A); |
1401 | 1401 | ||
1402 | HSPI_PFC_PIN(hspi1_b, RCAR_GP_PIN(0, 27), RCAR_GP_PIN(0, 26), | 1402 | HSPI_PFC_PIN(hspi1_b, RCAR_GP_PIN(0, 27), RCAR_GP_PIN(0, 26), |
1403 | PIN_NUMBER(20, 1), PIN_NUMBER(25, 2)); | 1403 | PIN_NUMBER(1, 20), PIN_NUMBER(2, 25)); |
1404 | HSPI_PFC_DAT(hspi1_b, HSPI_CLK1_B, HSPI_CS1_B, | 1404 | HSPI_PFC_DAT(hspi1_b, HSPI_CLK1_B, HSPI_CS1_B, |
1405 | HSPI_RX1_B, HSPI_TX1_B); | 1405 | HSPI_RX1_B, HSPI_TX1_B); |
1406 | 1406 | ||
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c index ab7a35392cd8..a84229cb8cd4 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7790.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7790.c | |||
@@ -10,7 +10,9 @@ | |||
10 | 10 | ||
11 | #include <linux/io.h> | 11 | #include <linux/io.h> |
12 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
13 | #include <linux/sys_soc.h> | ||
13 | 14 | ||
15 | #include "core.h" | ||
14 | #include "sh_pfc.h" | 16 | #include "sh_pfc.h" |
15 | 17 | ||
16 | /* | 18 | /* |
@@ -5691,7 +5693,22 @@ static int r8a7790_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, u32 *poc | |||
5691 | return 31 - (pin & 0x1f); | 5693 | return 31 - (pin & 0x1f); |
5692 | } | 5694 | } |
5693 | 5695 | ||
5696 | static const struct soc_device_attribute r8a7790_tdsel[] = { | ||
5697 | { .soc_id = "r8a7790", .revision = "ES1.0" }, | ||
5698 | { /* sentinel */ } | ||
5699 | }; | ||
5700 | |||
5701 | static int r8a7790_pinmux_soc_init(struct sh_pfc *pfc) | ||
5702 | { | ||
5703 | /* Initialize TDSEL on old revisions */ | ||
5704 | if (soc_device_match(r8a7790_tdsel)) | ||
5705 | sh_pfc_write(pfc, 0xe6060088, 0x00155554); | ||
5706 | |||
5707 | return 0; | ||
5708 | } | ||
5709 | |||
5694 | static const struct sh_pfc_soc_operations r8a7790_pinmux_ops = { | 5710 | static const struct sh_pfc_soc_operations r8a7790_pinmux_ops = { |
5711 | .init = r8a7790_pinmux_soc_init, | ||
5695 | .pin_to_pocctrl = r8a7790_pin_to_pocctrl, | 5712 | .pin_to_pocctrl = r8a7790_pin_to_pocctrl, |
5696 | }; | 5713 | }; |
5697 | 5714 | ||
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c index 2859231aaffc..bd363f2e196f 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c | |||
@@ -4317,7 +4317,7 @@ static const unsigned int vin1_clk_pins[] = { | |||
4317 | static const unsigned int vin1_clk_mux[] = { | 4317 | static const unsigned int vin1_clk_mux[] = { |
4318 | VI1_CLK_MARK, | 4318 | VI1_CLK_MARK, |
4319 | }; | 4319 | }; |
4320 | static const union vin_data vin1_b_data_pins = { | 4320 | static const union vin_data vin1_data_b_pins = { |
4321 | .data24 = { | 4321 | .data24 = { |
4322 | /* B */ | 4322 | /* B */ |
4323 | RCAR_GP_PIN(3, 0), RCAR_GP_PIN(3, 1), | 4323 | RCAR_GP_PIN(3, 0), RCAR_GP_PIN(3, 1), |
@@ -4336,7 +4336,7 @@ static const union vin_data vin1_b_data_pins = { | |||
4336 | RCAR_GP_PIN(2, 19), RCAR_GP_PIN(2, 20), | 4336 | RCAR_GP_PIN(2, 19), RCAR_GP_PIN(2, 20), |
4337 | }, | 4337 | }, |
4338 | }; | 4338 | }; |
4339 | static const union vin_data vin1_b_data_mux = { | 4339 | static const union vin_data vin1_data_b_mux = { |
4340 | .data24 = { | 4340 | .data24 = { |
4341 | /* B */ | 4341 | /* B */ |
4342 | VI1_DATA0_B_MARK, VI1_DATA1_B_MARK, | 4342 | VI1_DATA0_B_MARK, VI1_DATA1_B_MARK, |
@@ -4355,7 +4355,7 @@ static const union vin_data vin1_b_data_mux = { | |||
4355 | VI1_R6_B_MARK, VI1_R7_B_MARK, | 4355 | VI1_R6_B_MARK, VI1_R7_B_MARK, |
4356 | }, | 4356 | }, |
4357 | }; | 4357 | }; |
4358 | static const unsigned int vin1_b_data18_pins[] = { | 4358 | static const unsigned int vin1_data18_b_pins[] = { |
4359 | /* B */ | 4359 | /* B */ |
4360 | RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), | 4360 | RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), |
4361 | RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), | 4361 | RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), |
@@ -4369,7 +4369,7 @@ static const unsigned int vin1_b_data18_pins[] = { | |||
4369 | RCAR_GP_PIN(2, 17), RCAR_GP_PIN(2, 18), | 4369 | RCAR_GP_PIN(2, 17), RCAR_GP_PIN(2, 18), |
4370 | RCAR_GP_PIN(2, 19), RCAR_GP_PIN(2, 20), | 4370 | RCAR_GP_PIN(2, 19), RCAR_GP_PIN(2, 20), |
4371 | }; | 4371 | }; |
4372 | static const unsigned int vin1_b_data18_mux[] = { | 4372 | static const unsigned int vin1_data18_b_mux[] = { |
4373 | /* B */ | 4373 | /* B */ |
4374 | VI1_DATA2_B_MARK, VI1_DATA3_B_MARK, | 4374 | VI1_DATA2_B_MARK, VI1_DATA3_B_MARK, |
4375 | VI1_DATA4_B_MARK, VI1_DATA5_B_MARK, | 4375 | VI1_DATA4_B_MARK, VI1_DATA5_B_MARK, |
@@ -4383,30 +4383,30 @@ static const unsigned int vin1_b_data18_mux[] = { | |||
4383 | VI1_R4_B_MARK, VI1_R5_B_MARK, | 4383 | VI1_R4_B_MARK, VI1_R5_B_MARK, |
4384 | VI1_R6_B_MARK, VI1_R7_B_MARK, | 4384 | VI1_R6_B_MARK, VI1_R7_B_MARK, |
4385 | }; | 4385 | }; |
4386 | static const unsigned int vin1_b_sync_pins[] = { | 4386 | static const unsigned int vin1_sync_b_pins[] = { |
4387 | RCAR_GP_PIN(3, 17), /* HSYNC */ | 4387 | RCAR_GP_PIN(3, 17), /* HSYNC */ |
4388 | RCAR_GP_PIN(3, 18), /* VSYNC */ | 4388 | RCAR_GP_PIN(3, 18), /* VSYNC */ |
4389 | }; | 4389 | }; |
4390 | static const unsigned int vin1_b_sync_mux[] = { | 4390 | static const unsigned int vin1_sync_b_mux[] = { |
4391 | VI1_HSYNC_N_B_MARK, | 4391 | VI1_HSYNC_N_B_MARK, |
4392 | VI1_VSYNC_N_B_MARK, | 4392 | VI1_VSYNC_N_B_MARK, |
4393 | }; | 4393 | }; |
4394 | static const unsigned int vin1_b_field_pins[] = { | 4394 | static const unsigned int vin1_field_b_pins[] = { |
4395 | RCAR_GP_PIN(3, 20), | 4395 | RCAR_GP_PIN(3, 20), |
4396 | }; | 4396 | }; |
4397 | static const unsigned int vin1_b_field_mux[] = { | 4397 | static const unsigned int vin1_field_b_mux[] = { |
4398 | VI1_FIELD_B_MARK, | 4398 | VI1_FIELD_B_MARK, |
4399 | }; | 4399 | }; |
4400 | static const unsigned int vin1_b_clkenb_pins[] = { | 4400 | static const unsigned int vin1_clkenb_b_pins[] = { |
4401 | RCAR_GP_PIN(3, 19), | 4401 | RCAR_GP_PIN(3, 19), |
4402 | }; | 4402 | }; |
4403 | static const unsigned int vin1_b_clkenb_mux[] = { | 4403 | static const unsigned int vin1_clkenb_b_mux[] = { |
4404 | VI1_CLKENB_B_MARK, | 4404 | VI1_CLKENB_B_MARK, |
4405 | }; | 4405 | }; |
4406 | static const unsigned int vin1_b_clk_pins[] = { | 4406 | static const unsigned int vin1_clk_b_pins[] = { |
4407 | RCAR_GP_PIN(3, 16), | 4407 | RCAR_GP_PIN(3, 16), |
4408 | }; | 4408 | }; |
4409 | static const unsigned int vin1_b_clk_mux[] = { | 4409 | static const unsigned int vin1_clk_b_mux[] = { |
4410 | VI1_CLK_B_MARK, | 4410 | VI1_CLK_B_MARK, |
4411 | }; | 4411 | }; |
4412 | /* - VIN2 ----------------------------------------------------------------- */ | 4412 | /* - VIN2 ----------------------------------------------------------------- */ |
@@ -4784,17 +4784,17 @@ static const struct { | |||
4784 | SH_PFC_PIN_GROUP(vin1_field), | 4784 | SH_PFC_PIN_GROUP(vin1_field), |
4785 | SH_PFC_PIN_GROUP(vin1_clkenb), | 4785 | SH_PFC_PIN_GROUP(vin1_clkenb), |
4786 | SH_PFC_PIN_GROUP(vin1_clk), | 4786 | SH_PFC_PIN_GROUP(vin1_clk), |
4787 | VIN_DATA_PIN_GROUP(vin1_b_data, 24), | 4787 | VIN_DATA_PIN_GROUP(vin1_data, 24, _b), |
4788 | VIN_DATA_PIN_GROUP(vin1_b_data, 20), | 4788 | VIN_DATA_PIN_GROUP(vin1_data, 20, _b), |
4789 | SH_PFC_PIN_GROUP(vin1_b_data18), | 4789 | SH_PFC_PIN_GROUP(vin1_data18_b), |
4790 | VIN_DATA_PIN_GROUP(vin1_b_data, 16), | 4790 | VIN_DATA_PIN_GROUP(vin1_data, 16, _b), |
4791 | VIN_DATA_PIN_GROUP(vin1_b_data, 12), | 4791 | VIN_DATA_PIN_GROUP(vin1_data, 12, _b), |
4792 | VIN_DATA_PIN_GROUP(vin1_b_data, 10), | 4792 | VIN_DATA_PIN_GROUP(vin1_data, 10, _b), |
4793 | VIN_DATA_PIN_GROUP(vin1_b_data, 8), | 4793 | VIN_DATA_PIN_GROUP(vin1_data, 8, _b), |
4794 | SH_PFC_PIN_GROUP(vin1_b_sync), | 4794 | SH_PFC_PIN_GROUP(vin1_sync_b), |
4795 | SH_PFC_PIN_GROUP(vin1_b_field), | 4795 | SH_PFC_PIN_GROUP(vin1_field_b), |
4796 | SH_PFC_PIN_GROUP(vin1_b_clkenb), | 4796 | SH_PFC_PIN_GROUP(vin1_clkenb_b), |
4797 | SH_PFC_PIN_GROUP(vin1_b_clk), | 4797 | SH_PFC_PIN_GROUP(vin1_clk_b), |
4798 | SH_PFC_PIN_GROUP(vin2_data8), | 4798 | SH_PFC_PIN_GROUP(vin2_data8), |
4799 | SH_PFC_PIN_GROUP(vin2_sync), | 4799 | SH_PFC_PIN_GROUP(vin2_sync), |
4800 | SH_PFC_PIN_GROUP(vin2_field), | 4800 | SH_PFC_PIN_GROUP(vin2_field), |
@@ -5335,17 +5335,17 @@ static const char * const vin1_groups[] = { | |||
5335 | "vin1_field", | 5335 | "vin1_field", |
5336 | "vin1_clkenb", | 5336 | "vin1_clkenb", |
5337 | "vin1_clk", | 5337 | "vin1_clk", |
5338 | "vin1_b_data24", | 5338 | "vin1_data24_b", |
5339 | "vin1_b_data20", | 5339 | "vin1_data20_b", |
5340 | "vin1_b_data18", | 5340 | "vin1_data18_b", |
5341 | "vin1_b_data16", | 5341 | "vin1_data16_b", |
5342 | "vin1_b_data12", | 5342 | "vin1_data12_b", |
5343 | "vin1_b_data10", | 5343 | "vin1_data10_b", |
5344 | "vin1_b_data8", | 5344 | "vin1_data8_b", |
5345 | "vin1_b_sync", | 5345 | "vin1_sync_b", |
5346 | "vin1_b_field", | 5346 | "vin1_field_b", |
5347 | "vin1_b_clkenb", | 5347 | "vin1_clkenb_b", |
5348 | "vin1_b_clk", | 5348 | "vin1_clk_b", |
5349 | }; | 5349 | }; |
5350 | 5350 | ||
5351 | static const char * const vin2_groups[] = { | 5351 | static const char * const vin2_groups[] = { |
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c index fcf1339c4058..958a5f714c93 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c | |||
@@ -8,6 +8,7 @@ | |||
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
11 | #include <linux/sys_soc.h> | ||
11 | 12 | ||
12 | #include "core.h" | 13 | #include "core.h" |
13 | #include "sh_pfc.h" | 14 | #include "sh_pfc.h" |
@@ -5560,7 +5561,22 @@ static int r8a7794_pin_to_pocctrl(struct sh_pfc *pfc, unsigned int pin, u32 *poc | |||
5560 | return -EINVAL; | 5561 | return -EINVAL; |
5561 | } | 5562 | } |
5562 | 5563 | ||
5564 | static const struct soc_device_attribute r8a7794_tdsel[] = { | ||
5565 | { .soc_id = "r8a7794", .revision = "ES1.0" }, | ||
5566 | { /* sentinel */ } | ||
5567 | }; | ||
5568 | |||
5569 | static int r8a7794_pinmux_soc_init(struct sh_pfc *pfc) | ||
5570 | { | ||
5571 | /* Initialize TDSEL on old revisions */ | ||
5572 | if (soc_device_match(r8a7794_tdsel)) | ||
5573 | sh_pfc_write(pfc, 0xe6060068, 0x55555500); | ||
5574 | |||
5575 | return 0; | ||
5576 | } | ||
5577 | |||
5563 | static const struct sh_pfc_soc_operations r8a7794_pinmux_ops = { | 5578 | static const struct sh_pfc_soc_operations r8a7794_pinmux_ops = { |
5579 | .init = r8a7794_pinmux_soc_init, | ||
5564 | .pin_to_pocctrl = r8a7794_pin_to_pocctrl, | 5580 | .pin_to_pocctrl = r8a7794_pin_to_pocctrl, |
5565 | }; | 5581 | }; |
5566 | 5582 | ||
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7795.c b/drivers/pinctrl/sh-pfc/pfc-r8a7795.c index 01105bb83598..db9add1405c5 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7795.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7795.c | |||
@@ -4098,67 +4098,29 @@ static const unsigned int vin4_clk_mux[] = { | |||
4098 | }; | 4098 | }; |
4099 | 4099 | ||
4100 | /* - VIN5 ------------------------------------------------------------------- */ | 4100 | /* - VIN5 ------------------------------------------------------------------- */ |
4101 | static const unsigned int vin5_data8_pins[] = { | 4101 | static const union vin_data16 vin5_data_pins = { |
4102 | RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), | 4102 | .data16 = { |
4103 | RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), | 4103 | RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), |
4104 | RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), | 4104 | RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), |
4105 | RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), | 4105 | RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), |
4106 | }; | 4106 | RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), |
4107 | static const unsigned int vin5_data8_mux[] = { | 4107 | RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13), |
4108 | VI5_DATA0_MARK, VI5_DATA1_MARK, | 4108 | RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15), |
4109 | VI5_DATA2_MARK, VI5_DATA3_MARK, | 4109 | RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), |
4110 | VI5_DATA4_MARK, VI5_DATA5_MARK, | 4110 | RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), |
4111 | VI5_DATA6_MARK, VI5_DATA7_MARK, | 4111 | }, |
4112 | }; | ||
4113 | static const unsigned int vin5_data10_pins[] = { | ||
4114 | RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), | ||
4115 | RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), | ||
4116 | RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), | ||
4117 | RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), | ||
4118 | RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13), | ||
4119 | }; | ||
4120 | static const unsigned int vin5_data10_mux[] = { | ||
4121 | VI5_DATA0_MARK, VI5_DATA1_MARK, | ||
4122 | VI5_DATA2_MARK, VI5_DATA3_MARK, | ||
4123 | VI5_DATA4_MARK, VI5_DATA5_MARK, | ||
4124 | VI5_DATA6_MARK, VI5_DATA7_MARK, | ||
4125 | VI5_DATA8_MARK, VI5_DATA9_MARK, | ||
4126 | }; | ||
4127 | static const unsigned int vin5_data12_pins[] = { | ||
4128 | RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), | ||
4129 | RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), | ||
4130 | RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), | ||
4131 | RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), | ||
4132 | RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13), | ||
4133 | RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15), | ||
4134 | }; | ||
4135 | static const unsigned int vin5_data12_mux[] = { | ||
4136 | VI5_DATA0_MARK, VI5_DATA1_MARK, | ||
4137 | VI5_DATA2_MARK, VI5_DATA3_MARK, | ||
4138 | VI5_DATA4_MARK, VI5_DATA5_MARK, | ||
4139 | VI5_DATA6_MARK, VI5_DATA7_MARK, | ||
4140 | VI5_DATA8_MARK, VI5_DATA9_MARK, | ||
4141 | VI5_DATA10_MARK, VI5_DATA11_MARK, | ||
4142 | }; | ||
4143 | static const unsigned int vin5_data16_pins[] = { | ||
4144 | RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), | ||
4145 | RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), | ||
4146 | RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), | ||
4147 | RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), | ||
4148 | RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13), | ||
4149 | RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15), | ||
4150 | RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), | ||
4151 | RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), | ||
4152 | }; | 4112 | }; |
4153 | static const unsigned int vin5_data16_mux[] = { | 4113 | static const union vin_data16 vin5_data_mux = { |
4154 | VI5_DATA0_MARK, VI5_DATA1_MARK, | 4114 | .data16 = { |
4155 | VI5_DATA2_MARK, VI5_DATA3_MARK, | 4115 | VI5_DATA0_MARK, VI5_DATA1_MARK, |
4156 | VI5_DATA4_MARK, VI5_DATA5_MARK, | 4116 | VI5_DATA2_MARK, VI5_DATA3_MARK, |
4157 | VI5_DATA6_MARK, VI5_DATA7_MARK, | 4117 | VI5_DATA4_MARK, VI5_DATA5_MARK, |
4158 | VI5_DATA8_MARK, VI5_DATA9_MARK, | 4118 | VI5_DATA6_MARK, VI5_DATA7_MARK, |
4159 | VI5_DATA10_MARK, VI5_DATA11_MARK, | 4119 | VI5_DATA8_MARK, VI5_DATA9_MARK, |
4160 | VI5_DATA12_MARK, VI5_DATA13_MARK, | 4120 | VI5_DATA10_MARK, VI5_DATA11_MARK, |
4161 | VI5_DATA14_MARK, VI5_DATA15_MARK, | 4121 | VI5_DATA12_MARK, VI5_DATA13_MARK, |
4122 | VI5_DATA14_MARK, VI5_DATA15_MARK, | ||
4123 | }, | ||
4162 | }; | 4124 | }; |
4163 | static const unsigned int vin5_sync_pins[] = { | 4125 | static const unsigned int vin5_sync_pins[] = { |
4164 | /* HSYNC#, VSYNC# */ | 4126 | /* HSYNC#, VSYNC# */ |
@@ -4530,10 +4492,10 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { | |||
4530 | SH_PFC_PIN_GROUP(vin4_field), | 4492 | SH_PFC_PIN_GROUP(vin4_field), |
4531 | SH_PFC_PIN_GROUP(vin4_clkenb), | 4493 | SH_PFC_PIN_GROUP(vin4_clkenb), |
4532 | SH_PFC_PIN_GROUP(vin4_clk), | 4494 | SH_PFC_PIN_GROUP(vin4_clk), |
4533 | SH_PFC_PIN_GROUP(vin5_data8), | 4495 | VIN_DATA_PIN_GROUP(vin5_data, 8), |
4534 | SH_PFC_PIN_GROUP(vin5_data10), | 4496 | VIN_DATA_PIN_GROUP(vin5_data, 10), |
4535 | SH_PFC_PIN_GROUP(vin5_data12), | 4497 | VIN_DATA_PIN_GROUP(vin5_data, 12), |
4536 | SH_PFC_PIN_GROUP(vin5_data16), | 4498 | VIN_DATA_PIN_GROUP(vin5_data, 16), |
4537 | SH_PFC_PIN_GROUP(vin5_sync), | 4499 | SH_PFC_PIN_GROUP(vin5_sync), |
4538 | SH_PFC_PIN_GROUP(vin5_field), | 4500 | SH_PFC_PIN_GROUP(vin5_field), |
4539 | SH_PFC_PIN_GROUP(vin5_clkenb), | 4501 | SH_PFC_PIN_GROUP(vin5_clkenb), |
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7796.c b/drivers/pinctrl/sh-pfc/pfc-r8a7796.c index 4b98ad8d93d9..72348a4f2ece 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a7796.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a7796.c | |||
@@ -4070,67 +4070,29 @@ static const unsigned int vin4_clk_mux[] = { | |||
4070 | }; | 4070 | }; |
4071 | 4071 | ||
4072 | /* - VIN5 ------------------------------------------------------------------- */ | 4072 | /* - VIN5 ------------------------------------------------------------------- */ |
4073 | static const unsigned int vin5_data8_pins[] = { | 4073 | static const union vin_data16 vin5_data_pins = { |
4074 | RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), | 4074 | .data16 = { |
4075 | RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), | 4075 | RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), |
4076 | RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), | 4076 | RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), |
4077 | RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), | 4077 | RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), |
4078 | }; | 4078 | RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), |
4079 | static const unsigned int vin5_data8_mux[] = { | 4079 | RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13), |
4080 | VI5_DATA0_MARK, VI5_DATA1_MARK, | 4080 | RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15), |
4081 | VI5_DATA2_MARK, VI5_DATA3_MARK, | 4081 | RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), |
4082 | VI5_DATA4_MARK, VI5_DATA5_MARK, | 4082 | RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), |
4083 | VI5_DATA6_MARK, VI5_DATA7_MARK, | 4083 | }, |
4084 | }; | ||
4085 | static const unsigned int vin5_data10_pins[] = { | ||
4086 | RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), | ||
4087 | RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), | ||
4088 | RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), | ||
4089 | RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), | ||
4090 | RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13), | ||
4091 | }; | ||
4092 | static const unsigned int vin5_data10_mux[] = { | ||
4093 | VI5_DATA0_MARK, VI5_DATA1_MARK, | ||
4094 | VI5_DATA2_MARK, VI5_DATA3_MARK, | ||
4095 | VI5_DATA4_MARK, VI5_DATA5_MARK, | ||
4096 | VI5_DATA6_MARK, VI5_DATA7_MARK, | ||
4097 | VI5_DATA8_MARK, VI5_DATA9_MARK, | ||
4098 | }; | ||
4099 | static const unsigned int vin5_data12_pins[] = { | ||
4100 | RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), | ||
4101 | RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), | ||
4102 | RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), | ||
4103 | RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), | ||
4104 | RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13), | ||
4105 | RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15), | ||
4106 | }; | ||
4107 | static const unsigned int vin5_data12_mux[] = { | ||
4108 | VI5_DATA0_MARK, VI5_DATA1_MARK, | ||
4109 | VI5_DATA2_MARK, VI5_DATA3_MARK, | ||
4110 | VI5_DATA4_MARK, VI5_DATA5_MARK, | ||
4111 | VI5_DATA6_MARK, VI5_DATA7_MARK, | ||
4112 | VI5_DATA8_MARK, VI5_DATA9_MARK, | ||
4113 | VI5_DATA10_MARK, VI5_DATA11_MARK, | ||
4114 | }; | ||
4115 | static const unsigned int vin5_data16_pins[] = { | ||
4116 | RCAR_GP_PIN(0, 0), RCAR_GP_PIN(0, 1), | ||
4117 | RCAR_GP_PIN(0, 2), RCAR_GP_PIN(0, 3), | ||
4118 | RCAR_GP_PIN(0, 4), RCAR_GP_PIN(0, 5), | ||
4119 | RCAR_GP_PIN(0, 6), RCAR_GP_PIN(0, 7), | ||
4120 | RCAR_GP_PIN(1, 12), RCAR_GP_PIN(1, 13), | ||
4121 | RCAR_GP_PIN(1, 14), RCAR_GP_PIN(1, 15), | ||
4122 | RCAR_GP_PIN(1, 4), RCAR_GP_PIN(1, 5), | ||
4123 | RCAR_GP_PIN(1, 6), RCAR_GP_PIN(1, 7), | ||
4124 | }; | 4084 | }; |
4125 | static const unsigned int vin5_data16_mux[] = { | 4085 | static const union vin_data16 vin5_data_mux = { |
4126 | VI5_DATA0_MARK, VI5_DATA1_MARK, | 4086 | .data16 = { |
4127 | VI5_DATA2_MARK, VI5_DATA3_MARK, | 4087 | VI5_DATA0_MARK, VI5_DATA1_MARK, |
4128 | VI5_DATA4_MARK, VI5_DATA5_MARK, | 4088 | VI5_DATA2_MARK, VI5_DATA3_MARK, |
4129 | VI5_DATA6_MARK, VI5_DATA7_MARK, | 4089 | VI5_DATA4_MARK, VI5_DATA5_MARK, |
4130 | VI5_DATA8_MARK, VI5_DATA9_MARK, | 4090 | VI5_DATA6_MARK, VI5_DATA7_MARK, |
4131 | VI5_DATA10_MARK, VI5_DATA11_MARK, | 4091 | VI5_DATA8_MARK, VI5_DATA9_MARK, |
4132 | VI5_DATA12_MARK, VI5_DATA13_MARK, | 4092 | VI5_DATA10_MARK, VI5_DATA11_MARK, |
4133 | VI5_DATA14_MARK, VI5_DATA15_MARK, | 4093 | VI5_DATA12_MARK, VI5_DATA13_MARK, |
4094 | VI5_DATA14_MARK, VI5_DATA15_MARK, | ||
4095 | }, | ||
4134 | }; | 4096 | }; |
4135 | static const unsigned int vin5_sync_pins[] = { | 4097 | static const unsigned int vin5_sync_pins[] = { |
4136 | /* HSYNC#, VSYNC# */ | 4098 | /* HSYNC#, VSYNC# */ |
@@ -4468,10 +4430,10 @@ static const struct { | |||
4468 | SH_PFC_PIN_GROUP(vin4_field), | 4430 | SH_PFC_PIN_GROUP(vin4_field), |
4469 | SH_PFC_PIN_GROUP(vin4_clkenb), | 4431 | SH_PFC_PIN_GROUP(vin4_clkenb), |
4470 | SH_PFC_PIN_GROUP(vin4_clk), | 4432 | SH_PFC_PIN_GROUP(vin4_clk), |
4471 | SH_PFC_PIN_GROUP(vin5_data8), | 4433 | VIN_DATA_PIN_GROUP(vin5_data, 8), |
4472 | SH_PFC_PIN_GROUP(vin5_data10), | 4434 | VIN_DATA_PIN_GROUP(vin5_data, 10), |
4473 | SH_PFC_PIN_GROUP(vin5_data12), | 4435 | VIN_DATA_PIN_GROUP(vin5_data, 12), |
4474 | SH_PFC_PIN_GROUP(vin5_data16), | 4436 | VIN_DATA_PIN_GROUP(vin5_data, 16), |
4475 | SH_PFC_PIN_GROUP(vin5_sync), | 4437 | SH_PFC_PIN_GROUP(vin5_sync), |
4476 | SH_PFC_PIN_GROUP(vin5_field), | 4438 | SH_PFC_PIN_GROUP(vin5_field), |
4477 | SH_PFC_PIN_GROUP(vin5_clkenb), | 4439 | SH_PFC_PIN_GROUP(vin5_clkenb), |
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a77965.c b/drivers/pinctrl/sh-pfc/pfc-r8a77965.c index a7c4882de09e..d937b1bc396a 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a77965.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a77965.c | |||
@@ -554,7 +554,7 @@ MOD_SEL0_4_3 MOD_SEL1_4 \ | |||
554 | FM(AVB_RX_CTL) FM(AVB_RXC) FM(AVB_RD0) FM(AVB_RD1) FM(AVB_RD2) FM(AVB_RD3) \ | 554 | FM(AVB_RX_CTL) FM(AVB_RXC) FM(AVB_RD0) FM(AVB_RD1) FM(AVB_RD2) FM(AVB_RD3) \ |
555 | FM(AVB_TXCREFCLK) FM(AVB_MDIO) \ | 555 | FM(AVB_TXCREFCLK) FM(AVB_MDIO) \ |
556 | FM(PRESETOUT) \ | 556 | FM(PRESETOUT) \ |
557 | FM(DU_DOTCLKIN0) FM(DU_DOTCLKIN1) FM(DU_DOTCLKIN2) \ | 557 | FM(DU_DOTCLKIN0) FM(DU_DOTCLKIN1) FM(DU_DOTCLKIN3) \ |
558 | FM(TMS) FM(TDO) FM(ASEBRK) FM(MLB_REF) FM(TDI) FM(TCK) FM(TRST) FM(EXTALR) | 558 | FM(TMS) FM(TDO) FM(ASEBRK) FM(MLB_REF) FM(TDI) FM(TCK) FM(TRST) FM(EXTALR) |
559 | 559 | ||
560 | enum { | 560 | enum { |
@@ -1566,7 +1566,7 @@ static const struct sh_pfc_pin pinmux_pins[] = { | |||
1566 | SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('E'), 5, QSPI1_MISO_IO1, CFG_FLAGS), | 1566 | SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('E'), 5, QSPI1_MISO_IO1, CFG_FLAGS), |
1567 | SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('P'), 7, DU_DOTCLKIN0, CFG_FLAGS), | 1567 | SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('P'), 7, DU_DOTCLKIN0, CFG_FLAGS), |
1568 | SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('P'), 8, DU_DOTCLKIN1, CFG_FLAGS), | 1568 | SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('P'), 8, DU_DOTCLKIN1, CFG_FLAGS), |
1569 | SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 8, DU_DOTCLKIN2, CFG_FLAGS), | 1569 | SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 8, DU_DOTCLKIN3, CFG_FLAGS), |
1570 | SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 26, TRST#, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), | 1570 | SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 26, TRST#, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), |
1571 | SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 29, TDI, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), | 1571 | SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 29, TDI, SH_PFC_PIN_CFG_PULL_UP | SH_PFC_PIN_CFG_PULL_DOWN), |
1572 | SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 30, TMS, CFG_FLAGS), | 1572 | SH_PFC_PIN_NAMED_CFG(ROW_GROUP_A('R'), 30, TMS, CFG_FLAGS), |
@@ -5740,7 +5740,7 @@ static const struct pinmux_bias_reg pinmux_bias_regs[] = { | |||
5740 | [31] = PIN_A_NUMBER('P', 8), /* DU_DOTCLKIN1 */ | 5740 | [31] = PIN_A_NUMBER('P', 8), /* DU_DOTCLKIN1 */ |
5741 | } }, | 5741 | } }, |
5742 | { PINMUX_BIAS_REG("PUEN3", 0xe606040c, "PUD3", 0xe606044c) { | 5742 | { PINMUX_BIAS_REG("PUEN3", 0xe606040c, "PUD3", 0xe606044c) { |
5743 | [ 0] = PIN_A_NUMBER('R', 8), /* DU_DOTCLKIN2 */ | 5743 | [ 0] = PIN_A_NUMBER('R', 8), /* DU_DOTCLKIN3 */ |
5744 | [ 1] = PIN_NONE, | 5744 | [ 1] = PIN_NONE, |
5745 | [ 2] = PIN_A_NUMBER('D', 38), /* FSCLKST */ | 5745 | [ 2] = PIN_A_NUMBER('D', 38), /* FSCLKST */ |
5746 | [ 3] = PIN_A_NUMBER('D', 39), /* EXTALR*/ | 5746 | [ 3] = PIN_A_NUMBER('D', 39), /* EXTALR*/ |
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a77970.c b/drivers/pinctrl/sh-pfc/pfc-r8a77970.c index 4a7ab84b366b..c5e67ba29f7c 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a77970.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a77970.c | |||
@@ -1578,47 +1578,25 @@ static const unsigned int tmu_tclk2_b_mux[] = { | |||
1578 | }; | 1578 | }; |
1579 | 1579 | ||
1580 | /* - VIN0 ------------------------------------------------------------------- */ | 1580 | /* - VIN0 ------------------------------------------------------------------- */ |
1581 | static const unsigned int vin0_data8_pins[] = { | 1581 | static const union vin_data12 vin0_data_pins = { |
1582 | RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 5), | 1582 | .data12 = { |
1583 | RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7), | 1583 | RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 5), |
1584 | RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9), | 1584 | RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7), |
1585 | RCAR_GP_PIN(2, 10), RCAR_GP_PIN(2, 11), | 1585 | RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9), |
1586 | }; | 1586 | RCAR_GP_PIN(2, 10), RCAR_GP_PIN(2, 11), |
1587 | static const unsigned int vin0_data8_mux[] = { | 1587 | RCAR_GP_PIN(2, 12), RCAR_GP_PIN(2, 13), |
1588 | VI0_DATA0_MARK, VI0_DATA1_MARK, | 1588 | RCAR_GP_PIN(2, 14), RCAR_GP_PIN(2, 15), |
1589 | VI0_DATA2_MARK, VI0_DATA3_MARK, | 1589 | }, |
1590 | VI0_DATA4_MARK, VI0_DATA5_MARK, | ||
1591 | VI0_DATA6_MARK, VI0_DATA7_MARK, | ||
1592 | }; | 1590 | }; |
1593 | static const unsigned int vin0_data10_pins[] = { | 1591 | static const union vin_data12 vin0_data_mux = { |
1594 | RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 5), | 1592 | .data12 = { |
1595 | RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7), | 1593 | VI0_DATA0_MARK, VI0_DATA1_MARK, |
1596 | RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9), | 1594 | VI0_DATA2_MARK, VI0_DATA3_MARK, |
1597 | RCAR_GP_PIN(2, 10), RCAR_GP_PIN(2, 11), | 1595 | VI0_DATA4_MARK, VI0_DATA5_MARK, |
1598 | RCAR_GP_PIN(2, 12), RCAR_GP_PIN(2, 13), | 1596 | VI0_DATA6_MARK, VI0_DATA7_MARK, |
1599 | }; | 1597 | VI0_DATA8_MARK, VI0_DATA9_MARK, |
1600 | static const unsigned int vin0_data10_mux[] = { | 1598 | VI0_DATA10_MARK, VI0_DATA11_MARK, |
1601 | VI0_DATA0_MARK, VI0_DATA1_MARK, | 1599 | }, |
1602 | VI0_DATA2_MARK, VI0_DATA3_MARK, | ||
1603 | VI0_DATA4_MARK, VI0_DATA5_MARK, | ||
1604 | VI0_DATA6_MARK, VI0_DATA7_MARK, | ||
1605 | VI0_DATA8_MARK, VI0_DATA9_MARK, | ||
1606 | }; | ||
1607 | static const unsigned int vin0_data12_pins[] = { | ||
1608 | RCAR_GP_PIN(2, 4), RCAR_GP_PIN(2, 5), | ||
1609 | RCAR_GP_PIN(2, 6), RCAR_GP_PIN(2, 7), | ||
1610 | RCAR_GP_PIN(2, 8), RCAR_GP_PIN(2, 9), | ||
1611 | RCAR_GP_PIN(2, 10), RCAR_GP_PIN(2, 11), | ||
1612 | RCAR_GP_PIN(2, 12), RCAR_GP_PIN(2, 13), | ||
1613 | RCAR_GP_PIN(2, 14), RCAR_GP_PIN(2, 15), | ||
1614 | }; | ||
1615 | static const unsigned int vin0_data12_mux[] = { | ||
1616 | VI0_DATA0_MARK, VI0_DATA1_MARK, | ||
1617 | VI0_DATA2_MARK, VI0_DATA3_MARK, | ||
1618 | VI0_DATA4_MARK, VI0_DATA5_MARK, | ||
1619 | VI0_DATA6_MARK, VI0_DATA7_MARK, | ||
1620 | VI0_DATA8_MARK, VI0_DATA9_MARK, | ||
1621 | VI0_DATA10_MARK, VI0_DATA11_MARK, | ||
1622 | }; | 1600 | }; |
1623 | static const unsigned int vin0_sync_pins[] = { | 1601 | static const unsigned int vin0_sync_pins[] = { |
1624 | /* HSYNC#, VSYNC# */ | 1602 | /* HSYNC#, VSYNC# */ |
@@ -1650,47 +1628,25 @@ static const unsigned int vin0_clk_mux[] = { | |||
1650 | }; | 1628 | }; |
1651 | 1629 | ||
1652 | /* - VIN1 ------------------------------------------------------------------- */ | 1630 | /* - VIN1 ------------------------------------------------------------------- */ |
1653 | static const unsigned int vin1_data8_pins[] = { | 1631 | static const union vin_data12 vin1_data_pins = { |
1654 | RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), | 1632 | .data12 = { |
1655 | RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7), | 1633 | RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), |
1656 | RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), | 1634 | RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7), |
1657 | RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), | 1635 | RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), |
1658 | }; | 1636 | RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), |
1659 | static const unsigned int vin1_data8_mux[] = { | 1637 | RCAR_GP_PIN(3, 12), RCAR_GP_PIN(3, 13), |
1660 | VI1_DATA0_MARK, VI1_DATA1_MARK, | 1638 | RCAR_GP_PIN(3, 14), RCAR_GP_PIN(3, 15), |
1661 | VI1_DATA2_MARK, VI1_DATA3_MARK, | 1639 | }, |
1662 | VI1_DATA4_MARK, VI1_DATA5_MARK, | ||
1663 | VI1_DATA6_MARK, VI1_DATA7_MARK, | ||
1664 | }; | ||
1665 | static const unsigned int vin1_data10_pins[] = { | ||
1666 | RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), | ||
1667 | RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7), | ||
1668 | RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), | ||
1669 | RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), | ||
1670 | RCAR_GP_PIN(3, 12), RCAR_GP_PIN(3, 13), | ||
1671 | }; | ||
1672 | static const unsigned int vin1_data10_mux[] = { | ||
1673 | VI1_DATA0_MARK, VI1_DATA1_MARK, | ||
1674 | VI1_DATA2_MARK, VI1_DATA3_MARK, | ||
1675 | VI1_DATA4_MARK, VI1_DATA5_MARK, | ||
1676 | VI1_DATA6_MARK, VI1_DATA7_MARK, | ||
1677 | VI1_DATA8_MARK, VI1_DATA9_MARK, | ||
1678 | }; | ||
1679 | static const unsigned int vin1_data12_pins[] = { | ||
1680 | RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), | ||
1681 | RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7), | ||
1682 | RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), | ||
1683 | RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), | ||
1684 | RCAR_GP_PIN(3, 12), RCAR_GP_PIN(3, 13), | ||
1685 | RCAR_GP_PIN(3, 14), RCAR_GP_PIN(3, 15), | ||
1686 | }; | 1640 | }; |
1687 | static const unsigned int vin1_data12_mux[] = { | 1641 | static const union vin_data12 vin1_data_mux = { |
1688 | VI1_DATA0_MARK, VI1_DATA1_MARK, | 1642 | .data12 = { |
1689 | VI1_DATA2_MARK, VI1_DATA3_MARK, | 1643 | VI1_DATA0_MARK, VI1_DATA1_MARK, |
1690 | VI1_DATA4_MARK, VI1_DATA5_MARK, | 1644 | VI1_DATA2_MARK, VI1_DATA3_MARK, |
1691 | VI1_DATA6_MARK, VI1_DATA7_MARK, | 1645 | VI1_DATA4_MARK, VI1_DATA5_MARK, |
1692 | VI1_DATA8_MARK, VI1_DATA9_MARK, | 1646 | VI1_DATA6_MARK, VI1_DATA7_MARK, |
1693 | VI1_DATA10_MARK, VI1_DATA11_MARK, | 1647 | VI1_DATA8_MARK, VI1_DATA9_MARK, |
1648 | VI1_DATA10_MARK, VI1_DATA11_MARK, | ||
1649 | }, | ||
1694 | }; | 1650 | }; |
1695 | static const unsigned int vin1_sync_pins[] = { | 1651 | static const unsigned int vin1_sync_pins[] = { |
1696 | /* HSYNC#, VSYNC# */ | 1652 | /* HSYNC#, VSYNC# */ |
@@ -1831,16 +1787,16 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { | |||
1831 | SH_PFC_PIN_GROUP(tmu_tclk1_b), | 1787 | SH_PFC_PIN_GROUP(tmu_tclk1_b), |
1832 | SH_PFC_PIN_GROUP(tmu_tclk2_a), | 1788 | SH_PFC_PIN_GROUP(tmu_tclk2_a), |
1833 | SH_PFC_PIN_GROUP(tmu_tclk2_b), | 1789 | SH_PFC_PIN_GROUP(tmu_tclk2_b), |
1834 | SH_PFC_PIN_GROUP(vin0_data8), | 1790 | VIN_DATA_PIN_GROUP(vin0_data, 8), |
1835 | SH_PFC_PIN_GROUP(vin0_data10), | 1791 | VIN_DATA_PIN_GROUP(vin0_data, 10), |
1836 | SH_PFC_PIN_GROUP(vin0_data12), | 1792 | VIN_DATA_PIN_GROUP(vin0_data, 12), |
1837 | SH_PFC_PIN_GROUP(vin0_sync), | 1793 | SH_PFC_PIN_GROUP(vin0_sync), |
1838 | SH_PFC_PIN_GROUP(vin0_field), | 1794 | SH_PFC_PIN_GROUP(vin0_field), |
1839 | SH_PFC_PIN_GROUP(vin0_clkenb), | 1795 | SH_PFC_PIN_GROUP(vin0_clkenb), |
1840 | SH_PFC_PIN_GROUP(vin0_clk), | 1796 | SH_PFC_PIN_GROUP(vin0_clk), |
1841 | SH_PFC_PIN_GROUP(vin1_data8), | 1797 | VIN_DATA_PIN_GROUP(vin1_data, 8), |
1842 | SH_PFC_PIN_GROUP(vin1_data10), | 1798 | VIN_DATA_PIN_GROUP(vin1_data, 10), |
1843 | SH_PFC_PIN_GROUP(vin1_data12), | 1799 | VIN_DATA_PIN_GROUP(vin1_data, 12), |
1844 | SH_PFC_PIN_GROUP(vin1_sync), | 1800 | SH_PFC_PIN_GROUP(vin1_sync), |
1845 | SH_PFC_PIN_GROUP(vin1_field), | 1801 | SH_PFC_PIN_GROUP(vin1_field), |
1846 | SH_PFC_PIN_GROUP(vin1_clkenb), | 1802 | SH_PFC_PIN_GROUP(vin1_clkenb), |
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a77980.c b/drivers/pinctrl/sh-pfc/pfc-r8a77980.c index 8bef24502f0c..b807b67ae143 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a77980.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a77980.c | |||
@@ -1970,47 +1970,25 @@ static const unsigned int vin0_clk_mux[] = { | |||
1970 | }; | 1970 | }; |
1971 | 1971 | ||
1972 | /* - VIN1 ------------------------------------------------------------------- */ | 1972 | /* - VIN1 ------------------------------------------------------------------- */ |
1973 | static const unsigned int vin1_data8_pins[] = { | 1973 | static const union vin_data12 vin1_data_pins = { |
1974 | RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), | 1974 | .data12 = { |
1975 | RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7), | 1975 | RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), |
1976 | RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), | 1976 | RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7), |
1977 | RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), | 1977 | RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), |
1978 | }; | 1978 | RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), |
1979 | static const unsigned int vin1_data8_mux[] = { | 1979 | RCAR_GP_PIN(3, 12), RCAR_GP_PIN(3, 13), |
1980 | VI1_DATA0_MARK, VI1_DATA1_MARK, | 1980 | RCAR_GP_PIN(3, 14), RCAR_GP_PIN(3, 15), |
1981 | VI1_DATA2_MARK, VI1_DATA3_MARK, | 1981 | }, |
1982 | VI1_DATA4_MARK, VI1_DATA5_MARK, | ||
1983 | VI1_DATA6_MARK, VI1_DATA7_MARK, | ||
1984 | }; | ||
1985 | static const unsigned int vin1_data10_pins[] = { | ||
1986 | RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), | ||
1987 | RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7), | ||
1988 | RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), | ||
1989 | RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), | ||
1990 | RCAR_GP_PIN(3, 12), RCAR_GP_PIN(3, 13), | ||
1991 | }; | ||
1992 | static const unsigned int vin1_data10_mux[] = { | ||
1993 | VI1_DATA0_MARK, VI1_DATA1_MARK, | ||
1994 | VI1_DATA2_MARK, VI1_DATA3_MARK, | ||
1995 | VI1_DATA4_MARK, VI1_DATA5_MARK, | ||
1996 | VI1_DATA6_MARK, VI1_DATA7_MARK, | ||
1997 | VI1_DATA8_MARK, VI1_DATA9_MARK, | ||
1998 | }; | ||
1999 | static const unsigned int vin1_data12_pins[] = { | ||
2000 | RCAR_GP_PIN(3, 4), RCAR_GP_PIN(3, 5), | ||
2001 | RCAR_GP_PIN(3, 6), RCAR_GP_PIN(3, 7), | ||
2002 | RCAR_GP_PIN(3, 8), RCAR_GP_PIN(3, 9), | ||
2003 | RCAR_GP_PIN(3, 10), RCAR_GP_PIN(3, 11), | ||
2004 | RCAR_GP_PIN(3, 12), RCAR_GP_PIN(3, 13), | ||
2005 | RCAR_GP_PIN(3, 14), RCAR_GP_PIN(3, 15), | ||
2006 | }; | 1982 | }; |
2007 | static const unsigned int vin1_data12_mux[] = { | 1983 | static const union vin_data12 vin1_data_mux = { |
2008 | VI1_DATA0_MARK, VI1_DATA1_MARK, | 1984 | .data12 = { |
2009 | VI1_DATA2_MARK, VI1_DATA3_MARK, | 1985 | VI1_DATA0_MARK, VI1_DATA1_MARK, |
2010 | VI1_DATA4_MARK, VI1_DATA5_MARK, | 1986 | VI1_DATA2_MARK, VI1_DATA3_MARK, |
2011 | VI1_DATA6_MARK, VI1_DATA7_MARK, | 1987 | VI1_DATA4_MARK, VI1_DATA5_MARK, |
2012 | VI1_DATA8_MARK, VI1_DATA9_MARK, | 1988 | VI1_DATA6_MARK, VI1_DATA7_MARK, |
2013 | VI1_DATA10_MARK, VI1_DATA11_MARK, | 1989 | VI1_DATA8_MARK, VI1_DATA9_MARK, |
1990 | VI1_DATA10_MARK, VI1_DATA11_MARK, | ||
1991 | }, | ||
2014 | }; | 1992 | }; |
2015 | static const unsigned int vin1_sync_pins[] = { | 1993 | static const unsigned int vin1_sync_pins[] = { |
2016 | /* VI1_VSYNC#, VI1_HSYNC# */ | 1994 | /* VI1_VSYNC#, VI1_HSYNC# */ |
@@ -2182,9 +2160,9 @@ static const struct sh_pfc_pin_group pinmux_groups[] = { | |||
2182 | SH_PFC_PIN_GROUP(vin0_field), | 2160 | SH_PFC_PIN_GROUP(vin0_field), |
2183 | SH_PFC_PIN_GROUP(vin0_clkenb), | 2161 | SH_PFC_PIN_GROUP(vin0_clkenb), |
2184 | SH_PFC_PIN_GROUP(vin0_clk), | 2162 | SH_PFC_PIN_GROUP(vin0_clk), |
2185 | SH_PFC_PIN_GROUP(vin1_data8), | 2163 | VIN_DATA_PIN_GROUP(vin1_data, 8), |
2186 | SH_PFC_PIN_GROUP(vin1_data10), | 2164 | VIN_DATA_PIN_GROUP(vin1_data, 10), |
2187 | SH_PFC_PIN_GROUP(vin1_data12), | 2165 | VIN_DATA_PIN_GROUP(vin1_data, 12), |
2188 | SH_PFC_PIN_GROUP(vin1_sync), | 2166 | SH_PFC_PIN_GROUP(vin1_sync), |
2189 | SH_PFC_PIN_GROUP(vin1_field), | 2167 | SH_PFC_PIN_GROUP(vin1_field), |
2190 | SH_PFC_PIN_GROUP(vin1_clkenb), | 2168 | SH_PFC_PIN_GROUP(vin1_clkenb), |
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a77990.c b/drivers/pinctrl/sh-pfc/pfc-r8a77990.c index e40908dc37e0..0a9aa62f50bb 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a77990.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a77990.c | |||
@@ -30,7 +30,16 @@ | |||
30 | PORT_GP_CFG_1(3, 15, fn, sfx, CFG_FLAGS), \ | 30 | PORT_GP_CFG_1(3, 15, fn, sfx, CFG_FLAGS), \ |
31 | PORT_GP_CFG_11(4, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE), \ | 31 | PORT_GP_CFG_11(4, fn, sfx, CFG_FLAGS | SH_PFC_PIN_CFG_IO_VOLTAGE), \ |
32 | PORT_GP_CFG_20(5, fn, sfx, CFG_FLAGS), \ | 32 | PORT_GP_CFG_20(5, fn, sfx, CFG_FLAGS), \ |
33 | PORT_GP_CFG_18(6, fn, sfx, CFG_FLAGS) | 33 | PORT_GP_CFG_9(6, fn, sfx, CFG_FLAGS), \ |
34 | PORT_GP_CFG_1(6, 9, fn, sfx, SH_PFC_PIN_CFG_PULL_UP), \ | ||
35 | PORT_GP_CFG_1(6, 10, fn, sfx, CFG_FLAGS), \ | ||
36 | PORT_GP_CFG_1(6, 11, fn, sfx, CFG_FLAGS), \ | ||
37 | PORT_GP_CFG_1(6, 12, fn, sfx, CFG_FLAGS), \ | ||
38 | PORT_GP_CFG_1(6, 13, fn, sfx, CFG_FLAGS), \ | ||
39 | PORT_GP_CFG_1(6, 14, fn, sfx, CFG_FLAGS), \ | ||
40 | PORT_GP_CFG_1(6, 15, fn, sfx, CFG_FLAGS), \ | ||
41 | PORT_GP_CFG_1(6, 16, fn, sfx, CFG_FLAGS), \ | ||
42 | PORT_GP_CFG_1(6, 17, fn, sfx, CFG_FLAGS) | ||
34 | /* | 43 | /* |
35 | * F_() : just information | 44 | * F_() : just information |
36 | * FM() : macro for FN_xxx / xxx_MARK | 45 | * FM() : macro for FN_xxx / xxx_MARK |
@@ -391,29 +400,33 @@ FM(IP12_23_20) IP12_23_20 FM(IP13_23_20) IP13_23_20 FM(IP14_23_20) IP14_23_20 FM | |||
391 | FM(IP12_27_24) IP12_27_24 FM(IP13_27_24) IP13_27_24 FM(IP14_27_24) IP14_27_24 FM(IP15_27_24) IP15_27_24 \ | 400 | FM(IP12_27_24) IP12_27_24 FM(IP13_27_24) IP13_27_24 FM(IP14_27_24) IP14_27_24 FM(IP15_27_24) IP15_27_24 \ |
392 | FM(IP12_31_28) IP12_31_28 FM(IP13_31_28) IP13_31_28 FM(IP14_31_28) IP14_31_28 FM(IP15_31_28) IP15_31_28 | 401 | FM(IP12_31_28) IP12_31_28 FM(IP13_31_28) IP13_31_28 FM(IP14_31_28) IP14_31_28 FM(IP15_31_28) IP15_31_28 |
393 | 402 | ||
403 | /* The bit numbering in MOD_SEL fields is reversed */ | ||
404 | #define REV4(f0, f1, f2, f3) f0 f2 f1 f3 | ||
405 | #define REV8(f0, f1, f2, f3, f4, f5, f6, f7) f0 f4 f2 f6 f1 f5 f3 f7 | ||
406 | |||
394 | /* MOD_SEL0 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 */ /* 7 */ | 407 | /* MOD_SEL0 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 */ /* 7 */ |
395 | #define MOD_SEL0_30_29 FM(SEL_ADGB_0) FM(SEL_ADGB_1) FM(SEL_ADGB_2) F_(0, 0) | 408 | #define MOD_SEL0_30_29 REV4(FM(SEL_ADGB_0), FM(SEL_ADGB_1), FM(SEL_ADGB_2), F_(0, 0)) |
396 | #define MOD_SEL0_28 FM(SEL_DRIF0_0) FM(SEL_DRIF0_1) | 409 | #define MOD_SEL0_28 FM(SEL_DRIF0_0) FM(SEL_DRIF0_1) |
397 | #define MOD_SEL0_27_26 FM(SEL_FM_0) FM(SEL_FM_1) FM(SEL_FM_2) F_(0, 0) | 410 | #define MOD_SEL0_27_26 REV4(FM(SEL_FM_0), FM(SEL_FM_1), FM(SEL_FM_2), F_(0, 0)) |
398 | #define MOD_SEL0_25 FM(SEL_FSO_0) FM(SEL_FSO_1) | 411 | #define MOD_SEL0_25 FM(SEL_FSO_0) FM(SEL_FSO_1) |
399 | #define MOD_SEL0_24 FM(SEL_HSCIF0_0) FM(SEL_HSCIF0_1) | 412 | #define MOD_SEL0_24 FM(SEL_HSCIF0_0) FM(SEL_HSCIF0_1) |
400 | #define MOD_SEL0_23 FM(SEL_HSCIF1_0) FM(SEL_HSCIF1_1) | 413 | #define MOD_SEL0_23 FM(SEL_HSCIF1_0) FM(SEL_HSCIF1_1) |
401 | #define MOD_SEL0_22 FM(SEL_HSCIF2_0) FM(SEL_HSCIF2_1) | 414 | #define MOD_SEL0_22 FM(SEL_HSCIF2_0) FM(SEL_HSCIF2_1) |
402 | #define MOD_SEL0_21_20 FM(SEL_I2C1_0) FM(SEL_I2C1_1) FM(SEL_I2C1_2) FM(SEL_I2C1_3) | 415 | #define MOD_SEL0_21_20 REV4(FM(SEL_I2C1_0), FM(SEL_I2C1_1), FM(SEL_I2C1_2), FM(SEL_I2C1_3)) |
403 | #define MOD_SEL0_19_18_17 FM(SEL_I2C2_0) FM(SEL_I2C2_1) FM(SEL_I2C2_2) FM(SEL_I2C2_3) FM(SEL_I2C2_4) F_(0, 0) F_(0, 0) F_(0, 0) | 416 | #define MOD_SEL0_19_18_17 REV8(FM(SEL_I2C2_0), FM(SEL_I2C2_1), FM(SEL_I2C2_2), FM(SEL_I2C2_3), FM(SEL_I2C2_4), F_(0, 0), F_(0, 0), F_(0, 0)) |
404 | #define MOD_SEL0_16 FM(SEL_NDFC_0) FM(SEL_NDFC_1) | 417 | #define MOD_SEL0_16 FM(SEL_NDFC_0) FM(SEL_NDFC_1) |
405 | #define MOD_SEL0_15 FM(SEL_PWM0_0) FM(SEL_PWM0_1) | 418 | #define MOD_SEL0_15 FM(SEL_PWM0_0) FM(SEL_PWM0_1) |
406 | #define MOD_SEL0_14 FM(SEL_PWM1_0) FM(SEL_PWM1_1) | 419 | #define MOD_SEL0_14 FM(SEL_PWM1_0) FM(SEL_PWM1_1) |
407 | #define MOD_SEL0_13_12 FM(SEL_PWM2_0) FM(SEL_PWM2_1) FM(SEL_PWM2_2) F_(0, 0) | 420 | #define MOD_SEL0_13_12 REV4(FM(SEL_PWM2_0), FM(SEL_PWM2_1), FM(SEL_PWM2_2), F_(0, 0)) |
408 | #define MOD_SEL0_11_10 FM(SEL_PWM3_0) FM(SEL_PWM3_1) FM(SEL_PWM3_2) F_(0, 0) | 421 | #define MOD_SEL0_11_10 REV4(FM(SEL_PWM3_0), FM(SEL_PWM3_1), FM(SEL_PWM3_2), F_(0, 0)) |
409 | #define MOD_SEL0_9 FM(SEL_PWM4_0) FM(SEL_PWM4_1) | 422 | #define MOD_SEL0_9 FM(SEL_PWM4_0) FM(SEL_PWM4_1) |
410 | #define MOD_SEL0_8 FM(SEL_PWM5_0) FM(SEL_PWM5_1) | 423 | #define MOD_SEL0_8 FM(SEL_PWM5_0) FM(SEL_PWM5_1) |
411 | #define MOD_SEL0_7 FM(SEL_PWM6_0) FM(SEL_PWM6_1) | 424 | #define MOD_SEL0_7 FM(SEL_PWM6_0) FM(SEL_PWM6_1) |
412 | #define MOD_SEL0_6_5 FM(SEL_REMOCON_0) FM(SEL_REMOCON_1) FM(SEL_REMOCON_2) F_(0, 0) | 425 | #define MOD_SEL0_6_5 REV4(FM(SEL_REMOCON_0), FM(SEL_REMOCON_1), FM(SEL_REMOCON_2), F_(0, 0)) |
413 | #define MOD_SEL0_4 FM(SEL_SCIF_0) FM(SEL_SCIF_1) | 426 | #define MOD_SEL0_4 FM(SEL_SCIF_0) FM(SEL_SCIF_1) |
414 | #define MOD_SEL0_3 FM(SEL_SCIF0_0) FM(SEL_SCIF0_1) | 427 | #define MOD_SEL0_3 FM(SEL_SCIF0_0) FM(SEL_SCIF0_1) |
415 | #define MOD_SEL0_2 FM(SEL_SCIF2_0) FM(SEL_SCIF2_1) | 428 | #define MOD_SEL0_2 FM(SEL_SCIF2_0) FM(SEL_SCIF2_1) |
416 | #define MOD_SEL0_1_0 FM(SEL_SPEED_PULSE_IF_0) FM(SEL_SPEED_PULSE_IF_1) FM(SEL_SPEED_PULSE_IF_2) F_(0, 0) | 429 | #define MOD_SEL0_1_0 REV4(FM(SEL_SPEED_PULSE_IF_0), FM(SEL_SPEED_PULSE_IF_1), FM(SEL_SPEED_PULSE_IF_2), F_(0, 0)) |
417 | 430 | ||
418 | /* MOD_SEL1 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 */ /* 7 */ | 431 | /* MOD_SEL1 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 */ /* 7 */ |
419 | #define MOD_SEL1_31 FM(SEL_SIMCARD_0) FM(SEL_SIMCARD_1) | 432 | #define MOD_SEL1_31 FM(SEL_SIMCARD_0) FM(SEL_SIMCARD_1) |
@@ -422,18 +435,18 @@ FM(IP12_31_28) IP12_31_28 FM(IP13_31_28) IP13_31_28 FM(IP14_31_28) IP14_31_28 FM | |||
422 | #define MOD_SEL1_28 FM(SEL_USB_20_CH0_0) FM(SEL_USB_20_CH0_1) | 435 | #define MOD_SEL1_28 FM(SEL_USB_20_CH0_0) FM(SEL_USB_20_CH0_1) |
423 | #define MOD_SEL1_26 FM(SEL_DRIF2_0) FM(SEL_DRIF2_1) | 436 | #define MOD_SEL1_26 FM(SEL_DRIF2_0) FM(SEL_DRIF2_1) |
424 | #define MOD_SEL1_25 FM(SEL_DRIF3_0) FM(SEL_DRIF3_1) | 437 | #define MOD_SEL1_25 FM(SEL_DRIF3_0) FM(SEL_DRIF3_1) |
425 | #define MOD_SEL1_24_23_22 FM(SEL_HSCIF3_0) FM(SEL_HSCIF3_1) FM(SEL_HSCIF3_2) FM(SEL_HSCIF3_3) FM(SEL_HSCIF3_4) F_(0, 0) F_(0, 0) F_(0, 0) | 438 | #define MOD_SEL1_24_23_22 REV8(FM(SEL_HSCIF3_0), FM(SEL_HSCIF3_1), FM(SEL_HSCIF3_2), FM(SEL_HSCIF3_3), FM(SEL_HSCIF3_4), F_(0, 0), F_(0, 0), F_(0, 0)) |
426 | #define MOD_SEL1_21_20_19 FM(SEL_HSCIF4_0) FM(SEL_HSCIF4_1) FM(SEL_HSCIF4_2) FM(SEL_HSCIF4_3) FM(SEL_HSCIF4_4) F_(0, 0) F_(0, 0) F_(0, 0) | 439 | #define MOD_SEL1_21_20_19 REV8(FM(SEL_HSCIF4_0), FM(SEL_HSCIF4_1), FM(SEL_HSCIF4_2), FM(SEL_HSCIF4_3), FM(SEL_HSCIF4_4), F_(0, 0), F_(0, 0), F_(0, 0)) |
427 | #define MOD_SEL1_18 FM(SEL_I2C6_0) FM(SEL_I2C6_1) | 440 | #define MOD_SEL1_18 FM(SEL_I2C6_0) FM(SEL_I2C6_1) |
428 | #define MOD_SEL1_17 FM(SEL_I2C7_0) FM(SEL_I2C7_1) | 441 | #define MOD_SEL1_17 FM(SEL_I2C7_0) FM(SEL_I2C7_1) |
429 | #define MOD_SEL1_16 FM(SEL_MSIOF2_0) FM(SEL_MSIOF2_1) | 442 | #define MOD_SEL1_16 FM(SEL_MSIOF2_0) FM(SEL_MSIOF2_1) |
430 | #define MOD_SEL1_15 FM(SEL_MSIOF3_0) FM(SEL_MSIOF3_1) | 443 | #define MOD_SEL1_15 FM(SEL_MSIOF3_0) FM(SEL_MSIOF3_1) |
431 | #define MOD_SEL1_14_13 FM(SEL_SCIF3_0) FM(SEL_SCIF3_1) FM(SEL_SCIF3_2) F_(0, 0) | 444 | #define MOD_SEL1_14_13 REV4(FM(SEL_SCIF3_0), FM(SEL_SCIF3_1), FM(SEL_SCIF3_2), F_(0, 0)) |
432 | #define MOD_SEL1_12_11 FM(SEL_SCIF4_0) FM(SEL_SCIF4_1) FM(SEL_SCIF4_2) F_(0, 0) | 445 | #define MOD_SEL1_12_11 REV4(FM(SEL_SCIF4_0), FM(SEL_SCIF4_1), FM(SEL_SCIF4_2), F_(0, 0)) |
433 | #define MOD_SEL1_10_9 FM(SEL_SCIF5_0) FM(SEL_SCIF5_1) FM(SEL_SCIF5_2) F_(0, 0) | 446 | #define MOD_SEL1_10_9 REV4(FM(SEL_SCIF5_0), FM(SEL_SCIF5_1), FM(SEL_SCIF5_2), F_(0, 0)) |
434 | #define MOD_SEL1_8 FM(SEL_VIN4_0) FM(SEL_VIN4_1) | 447 | #define MOD_SEL1_8 FM(SEL_VIN4_0) FM(SEL_VIN4_1) |
435 | #define MOD_SEL1_7 FM(SEL_VIN5_0) FM(SEL_VIN5_1) | 448 | #define MOD_SEL1_7 FM(SEL_VIN5_0) FM(SEL_VIN5_1) |
436 | #define MOD_SEL1_6_5 FM(SEL_ADGC_0) FM(SEL_ADGC_1) FM(SEL_ADGC_2) F_(0, 0) | 449 | #define MOD_SEL1_6_5 REV4(FM(SEL_ADGC_0), FM(SEL_ADGC_1), FM(SEL_ADGC_2), F_(0, 0)) |
437 | #define MOD_SEL1_4 FM(SEL_SSI9_0) FM(SEL_SSI9_1) | 450 | #define MOD_SEL1_4 FM(SEL_SSI9_0) FM(SEL_SSI9_1) |
438 | 451 | ||
439 | #define PINMUX_MOD_SELS \ | 452 | #define PINMUX_MOD_SELS \ |
@@ -1060,7 +1073,7 @@ static const u16 pinmux_data[] = { | |||
1060 | PINMUX_IPSR_GPSR(IP11_11_8, RIF1_SYNC), | 1073 | PINMUX_IPSR_GPSR(IP11_11_8, RIF1_SYNC), |
1061 | PINMUX_IPSR_GPSR(IP11_11_8, TS_SCK1), | 1074 | PINMUX_IPSR_GPSR(IP11_11_8, TS_SCK1), |
1062 | 1075 | ||
1063 | PINMUX_IPSR_GPSR(IP11_15_12, TX0_A), | 1076 | PINMUX_IPSR_MSEL(IP11_15_12, TX0_A, SEL_SCIF0_0), |
1064 | PINMUX_IPSR_GPSR(IP11_15_12, HTX1_A), | 1077 | PINMUX_IPSR_GPSR(IP11_15_12, HTX1_A), |
1065 | PINMUX_IPSR_MSEL(IP11_15_12, SSI_WS2_A, SEL_SSI2_0), | 1078 | PINMUX_IPSR_MSEL(IP11_15_12, SSI_WS2_A, SEL_SSI2_0), |
1066 | PINMUX_IPSR_GPSR(IP11_15_12, RIF1_D0), | 1079 | PINMUX_IPSR_GPSR(IP11_15_12, RIF1_D0), |
@@ -1099,7 +1112,7 @@ static const u16 pinmux_data[] = { | |||
1099 | PINMUX_IPSR_MSEL(IP12_3_0, SSI_WS9_B, SEL_SSI9_1), | 1112 | PINMUX_IPSR_MSEL(IP12_3_0, SSI_WS9_B, SEL_SSI9_1), |
1100 | PINMUX_IPSR_GPSR(IP12_3_0, AUDIO_CLKOUT3_B), | 1113 | PINMUX_IPSR_GPSR(IP12_3_0, AUDIO_CLKOUT3_B), |
1101 | 1114 | ||
1102 | PINMUX_IPSR_GPSR(IP12_7_4, SCK2_A), | 1115 | PINMUX_IPSR_MSEL(IP12_7_4, SCK2_A, SEL_SCIF2_0), |
1103 | PINMUX_IPSR_MSEL(IP12_7_4, HSCK0_A, SEL_HSCIF0_0), | 1116 | PINMUX_IPSR_MSEL(IP12_7_4, HSCK0_A, SEL_HSCIF0_0), |
1104 | PINMUX_IPSR_MSEL(IP12_7_4, AUDIO_CLKB_A, SEL_ADGB_0), | 1117 | PINMUX_IPSR_MSEL(IP12_7_4, AUDIO_CLKB_A, SEL_ADGB_0), |
1105 | PINMUX_IPSR_GPSR(IP12_7_4, CTS1_N), | 1118 | PINMUX_IPSR_GPSR(IP12_7_4, CTS1_N), |
@@ -1107,14 +1120,14 @@ static const u16 pinmux_data[] = { | |||
1107 | PINMUX_IPSR_MSEL(IP12_7_4, REMOCON_A, SEL_REMOCON_0), | 1120 | PINMUX_IPSR_MSEL(IP12_7_4, REMOCON_A, SEL_REMOCON_0), |
1108 | PINMUX_IPSR_MSEL(IP12_7_4, SCIF_CLK_B, SEL_SCIF_1), | 1121 | PINMUX_IPSR_MSEL(IP12_7_4, SCIF_CLK_B, SEL_SCIF_1), |
1109 | 1122 | ||
1110 | PINMUX_IPSR_GPSR(IP12_11_8, TX2_A), | 1123 | PINMUX_IPSR_MSEL(IP12_11_8, TX2_A, SEL_SCIF2_0), |
1111 | PINMUX_IPSR_MSEL(IP12_11_8, HRX0_A, SEL_HSCIF0_0), | 1124 | PINMUX_IPSR_MSEL(IP12_11_8, HRX0_A, SEL_HSCIF0_0), |
1112 | PINMUX_IPSR_GPSR(IP12_11_8, AUDIO_CLKOUT2_A), | 1125 | PINMUX_IPSR_GPSR(IP12_11_8, AUDIO_CLKOUT2_A), |
1113 | PINMUX_IPSR_MSEL(IP12_11_8, SCL1_A, SEL_I2C1_0), | 1126 | PINMUX_IPSR_MSEL(IP12_11_8, SCL1_A, SEL_I2C1_0), |
1114 | PINMUX_IPSR_MSEL(IP12_11_8, FSO_CFE_0_N_A, SEL_FSO_0), | 1127 | PINMUX_IPSR_MSEL(IP12_11_8, FSO_CFE_0_N_A, SEL_FSO_0), |
1115 | PINMUX_IPSR_GPSR(IP12_11_8, TS_SDEN1), | 1128 | PINMUX_IPSR_GPSR(IP12_11_8, TS_SDEN1), |
1116 | 1129 | ||
1117 | PINMUX_IPSR_GPSR(IP12_15_12, RX2_A), | 1130 | PINMUX_IPSR_MSEL(IP12_15_12, RX2_A, SEL_SCIF2_0), |
1118 | PINMUX_IPSR_GPSR(IP12_15_12, HTX0_A), | 1131 | PINMUX_IPSR_GPSR(IP12_15_12, HTX0_A), |
1119 | PINMUX_IPSR_GPSR(IP12_15_12, AUDIO_CLKOUT3_A), | 1132 | PINMUX_IPSR_GPSR(IP12_15_12, AUDIO_CLKOUT3_A), |
1120 | PINMUX_IPSR_MSEL(IP12_15_12, SDA1_A, SEL_I2C1_0), | 1133 | PINMUX_IPSR_MSEL(IP12_15_12, SDA1_A, SEL_I2C1_0), |
@@ -1126,11 +1139,11 @@ static const u16 pinmux_data[] = { | |||
1126 | 1139 | ||
1127 | PINMUX_IPSR_GPSR(IP12_23_20, MSIOF0_RXD), | 1140 | PINMUX_IPSR_GPSR(IP12_23_20, MSIOF0_RXD), |
1128 | PINMUX_IPSR_GPSR(IP12_23_20, SSI_WS78), | 1141 | PINMUX_IPSR_GPSR(IP12_23_20, SSI_WS78), |
1129 | PINMUX_IPSR_GPSR(IP12_23_20, TX2_B), | 1142 | PINMUX_IPSR_MSEL(IP12_23_20, TX2_B, SEL_SCIF2_1), |
1130 | 1143 | ||
1131 | PINMUX_IPSR_GPSR(IP12_27_24, MSIOF0_TXD), | 1144 | PINMUX_IPSR_GPSR(IP12_27_24, MSIOF0_TXD), |
1132 | PINMUX_IPSR_GPSR(IP12_27_24, SSI_SDATA7), | 1145 | PINMUX_IPSR_GPSR(IP12_27_24, SSI_SDATA7), |
1133 | PINMUX_IPSR_GPSR(IP12_27_24, RX2_B), | 1146 | PINMUX_IPSR_MSEL(IP12_27_24, RX2_B, SEL_SCIF2_1), |
1134 | 1147 | ||
1135 | PINMUX_IPSR_GPSR(IP12_31_28, MSIOF0_SYNC), | 1148 | PINMUX_IPSR_GPSR(IP12_31_28, MSIOF0_SYNC), |
1136 | PINMUX_IPSR_GPSR(IP12_31_28, AUDIO_CLKOUT_B), | 1149 | PINMUX_IPSR_GPSR(IP12_31_28, AUDIO_CLKOUT_B), |
@@ -1170,7 +1183,7 @@ static const u16 pinmux_data[] = { | |||
1170 | PINMUX_IPSR_MSEL(IP13_19_16, SIM0_D_A, SEL_SIMCARD_0), | 1183 | PINMUX_IPSR_MSEL(IP13_19_16, SIM0_D_A, SEL_SIMCARD_0), |
1171 | 1184 | ||
1172 | PINMUX_IPSR_GPSR(IP13_23_20, MLB_DAT), | 1185 | PINMUX_IPSR_GPSR(IP13_23_20, MLB_DAT), |
1173 | PINMUX_IPSR_GPSR(IP13_23_20, TX0_B), | 1186 | PINMUX_IPSR_MSEL(IP13_23_20, TX0_B, SEL_SCIF0_1), |
1174 | PINMUX_IPSR_MSEL(IP13_23_20, RIF0_SYNC_A, SEL_DRIF0_0), | 1187 | PINMUX_IPSR_MSEL(IP13_23_20, RIF0_SYNC_A, SEL_DRIF0_0), |
1175 | PINMUX_IPSR_GPSR(IP13_23_20, SIM0_CLK_A), | 1188 | PINMUX_IPSR_GPSR(IP13_23_20, SIM0_CLK_A), |
1176 | 1189 | ||
@@ -3243,6 +3256,43 @@ static const unsigned int ssi9_ctrl_b_mux[] = { | |||
3243 | SSI_SCK9_B_MARK, SSI_WS9_B_MARK, | 3256 | SSI_SCK9_B_MARK, SSI_WS9_B_MARK, |
3244 | }; | 3257 | }; |
3245 | 3258 | ||
3259 | /* - TMU -------------------------------------------------------------------- */ | ||
3260 | static const unsigned int tmu_tclk1_a_pins[] = { | ||
3261 | /* TCLK */ | ||
3262 | RCAR_GP_PIN(3, 12), | ||
3263 | }; | ||
3264 | |||
3265 | static const unsigned int tmu_tclk1_a_mux[] = { | ||
3266 | TCLK1_A_MARK, | ||
3267 | }; | ||
3268 | |||
3269 | static const unsigned int tmu_tclk1_b_pins[] = { | ||
3270 | /* TCLK */ | ||
3271 | RCAR_GP_PIN(5, 17), | ||
3272 | }; | ||
3273 | |||
3274 | static const unsigned int tmu_tclk1_b_mux[] = { | ||
3275 | TCLK1_B_MARK, | ||
3276 | }; | ||
3277 | |||
3278 | static const unsigned int tmu_tclk2_a_pins[] = { | ||
3279 | /* TCLK */ | ||
3280 | RCAR_GP_PIN(3, 13), | ||
3281 | }; | ||
3282 | |||
3283 | static const unsigned int tmu_tclk2_a_mux[] = { | ||
3284 | TCLK2_A_MARK, | ||
3285 | }; | ||
3286 | |||
3287 | static const unsigned int tmu_tclk2_b_pins[] = { | ||
3288 | /* TCLK */ | ||
3289 | RCAR_GP_PIN(5, 18), | ||
3290 | }; | ||
3291 | |||
3292 | static const unsigned int tmu_tclk2_b_mux[] = { | ||
3293 | TCLK2_B_MARK, | ||
3294 | }; | ||
3295 | |||
3246 | /* - USB0 ------------------------------------------------------------------- */ | 3296 | /* - USB0 ------------------------------------------------------------------- */ |
3247 | static const unsigned int usb0_a_pins[] = { | 3297 | static const unsigned int usb0_a_pins[] = { |
3248 | /* PWEN, OVC */ | 3298 | /* PWEN, OVC */ |
@@ -3523,7 +3573,7 @@ static const unsigned int vin5_clk_b_mux[] = { | |||
3523 | }; | 3573 | }; |
3524 | 3574 | ||
3525 | static const struct { | 3575 | static const struct { |
3526 | struct sh_pfc_pin_group common[241]; | 3576 | struct sh_pfc_pin_group common[245]; |
3527 | struct sh_pfc_pin_group automotive[2]; | 3577 | struct sh_pfc_pin_group automotive[2]; |
3528 | } pinmux_groups = { | 3578 | } pinmux_groups = { |
3529 | .common = { | 3579 | .common = { |
@@ -3735,6 +3785,10 @@ static const struct { | |||
3735 | SH_PFC_PIN_GROUP(ssi9_data), | 3785 | SH_PFC_PIN_GROUP(ssi9_data), |
3736 | SH_PFC_PIN_GROUP(ssi9_ctrl_a), | 3786 | SH_PFC_PIN_GROUP(ssi9_ctrl_a), |
3737 | SH_PFC_PIN_GROUP(ssi9_ctrl_b), | 3787 | SH_PFC_PIN_GROUP(ssi9_ctrl_b), |
3788 | SH_PFC_PIN_GROUP(tmu_tclk1_a), | ||
3789 | SH_PFC_PIN_GROUP(tmu_tclk1_b), | ||
3790 | SH_PFC_PIN_GROUP(tmu_tclk2_a), | ||
3791 | SH_PFC_PIN_GROUP(tmu_tclk2_b), | ||
3738 | SH_PFC_PIN_GROUP(usb0_a), | 3792 | SH_PFC_PIN_GROUP(usb0_a), |
3739 | SH_PFC_PIN_GROUP(usb0_b), | 3793 | SH_PFC_PIN_GROUP(usb0_b), |
3740 | SH_PFC_PIN_GROUP(usb0_id), | 3794 | SH_PFC_PIN_GROUP(usb0_id), |
@@ -4111,6 +4165,13 @@ static const char * const ssi_groups[] = { | |||
4111 | "ssi9_ctrl_b", | 4165 | "ssi9_ctrl_b", |
4112 | }; | 4166 | }; |
4113 | 4167 | ||
4168 | static const char * const tmu_groups[] = { | ||
4169 | "tmu_tclk1_a", | ||
4170 | "tmu_tclk1_b", | ||
4171 | "tmu_tclk2_a", | ||
4172 | "tmu_tclk2_b", | ||
4173 | }; | ||
4174 | |||
4114 | static const char * const usb0_groups[] = { | 4175 | static const char * const usb0_groups[] = { |
4115 | "usb0_a", | 4176 | "usb0_a", |
4116 | "usb0_b", | 4177 | "usb0_b", |
@@ -4157,7 +4218,7 @@ static const char * const vin5_groups[] = { | |||
4157 | }; | 4218 | }; |
4158 | 4219 | ||
4159 | static const struct { | 4220 | static const struct { |
4160 | struct sh_pfc_function common[44]; | 4221 | struct sh_pfc_function common[45]; |
4161 | struct sh_pfc_function automotive[2]; | 4222 | struct sh_pfc_function automotive[2]; |
4162 | } pinmux_functions = { | 4223 | } pinmux_functions = { |
4163 | .common = { | 4224 | .common = { |
@@ -4201,6 +4262,7 @@ static const struct { | |||
4201 | SH_PFC_FUNCTION(sdhi1), | 4262 | SH_PFC_FUNCTION(sdhi1), |
4202 | SH_PFC_FUNCTION(sdhi3), | 4263 | SH_PFC_FUNCTION(sdhi3), |
4203 | SH_PFC_FUNCTION(ssi), | 4264 | SH_PFC_FUNCTION(ssi), |
4265 | SH_PFC_FUNCTION(tmu), | ||
4204 | SH_PFC_FUNCTION(usb0), | 4266 | SH_PFC_FUNCTION(usb0), |
4205 | SH_PFC_FUNCTION(usb30), | 4267 | SH_PFC_FUNCTION(usb30), |
4206 | SH_PFC_FUNCTION(vin4), | 4268 | SH_PFC_FUNCTION(vin4), |
@@ -4914,17 +4976,6 @@ static const struct pinmux_bias_reg pinmux_bias_regs[] = { | |||
4914 | { /* sentinel */ }, | 4976 | { /* sentinel */ }, |
4915 | }; | 4977 | }; |
4916 | 4978 | ||
4917 | static bool pin_has_pud(unsigned int pin) | ||
4918 | { | ||
4919 | /* Some pins are pull-up only */ | ||
4920 | switch (pin) { | ||
4921 | case RCAR_GP_PIN(6, 9): /* USB30_OVC */ | ||
4922 | return false; | ||
4923 | } | ||
4924 | |||
4925 | return true; | ||
4926 | } | ||
4927 | |||
4928 | static unsigned int r8a77990_pinmux_get_bias(struct sh_pfc *pfc, | 4979 | static unsigned int r8a77990_pinmux_get_bias(struct sh_pfc *pfc, |
4929 | unsigned int pin) | 4980 | unsigned int pin) |
4930 | { | 4981 | { |
@@ -4937,7 +4988,7 @@ static unsigned int r8a77990_pinmux_get_bias(struct sh_pfc *pfc, | |||
4937 | 4988 | ||
4938 | if (!(sh_pfc_read(pfc, reg->puen) & BIT(bit))) | 4989 | if (!(sh_pfc_read(pfc, reg->puen) & BIT(bit))) |
4939 | return PIN_CONFIG_BIAS_DISABLE; | 4990 | return PIN_CONFIG_BIAS_DISABLE; |
4940 | else if (!pin_has_pud(pin) || (sh_pfc_read(pfc, reg->pud) & BIT(bit))) | 4991 | else if (sh_pfc_read(pfc, reg->pud) & BIT(bit)) |
4941 | return PIN_CONFIG_BIAS_PULL_UP; | 4992 | return PIN_CONFIG_BIAS_PULL_UP; |
4942 | else | 4993 | else |
4943 | return PIN_CONFIG_BIAS_PULL_DOWN; | 4994 | return PIN_CONFIG_BIAS_PULL_DOWN; |
@@ -4958,13 +5009,11 @@ static void r8a77990_pinmux_set_bias(struct sh_pfc *pfc, unsigned int pin, | |||
4958 | if (bias != PIN_CONFIG_BIAS_DISABLE) | 5009 | if (bias != PIN_CONFIG_BIAS_DISABLE) |
4959 | enable |= BIT(bit); | 5010 | enable |= BIT(bit); |
4960 | 5011 | ||
4961 | if (pin_has_pud(pin)) { | 5012 | updown = sh_pfc_read(pfc, reg->pud) & ~BIT(bit); |
4962 | updown = sh_pfc_read(pfc, reg->pud) & ~BIT(bit); | 5013 | if (bias == PIN_CONFIG_BIAS_PULL_UP) |
4963 | if (bias == PIN_CONFIG_BIAS_PULL_UP) | 5014 | updown |= BIT(bit); |
4964 | updown |= BIT(bit); | ||
4965 | 5015 | ||
4966 | sh_pfc_write(pfc, reg->pud, updown); | 5016 | sh_pfc_write(pfc, reg->pud, updown); |
4967 | } | ||
4968 | sh_pfc_write(pfc, reg->puen, enable); | 5017 | sh_pfc_write(pfc, reg->puen, enable); |
4969 | } | 5018 | } |
4970 | 5019 | ||
diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a77995.c b/drivers/pinctrl/sh-pfc/pfc-r8a77995.c index 84d78db381e3..9e377e3b9cb3 100644 --- a/drivers/pinctrl/sh-pfc/pfc-r8a77995.c +++ b/drivers/pinctrl/sh-pfc/pfc-r8a77995.c | |||
@@ -381,6 +381,9 @@ FM(IP12_23_20) IP12_23_20 \ | |||
381 | FM(IP12_27_24) IP12_27_24 \ | 381 | FM(IP12_27_24) IP12_27_24 \ |
382 | FM(IP12_31_28) IP12_31_28 \ | 382 | FM(IP12_31_28) IP12_31_28 \ |
383 | 383 | ||
384 | /* The bit numbering in MOD_SEL fields is reversed */ | ||
385 | #define REV4(f0, f1, f2, f3) f0 f2 f1 f3 | ||
386 | |||
384 | /* MOD_SEL0 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ | 387 | /* MOD_SEL0 */ /* 0 */ /* 1 */ /* 2 */ /* 3 */ |
385 | #define MOD_SEL0_30 FM(SEL_MSIOF2_0) FM(SEL_MSIOF2_1) | 388 | #define MOD_SEL0_30 FM(SEL_MSIOF2_0) FM(SEL_MSIOF2_1) |
386 | #define MOD_SEL0_29 FM(SEL_I2C3_0) FM(SEL_I2C3_1) | 389 | #define MOD_SEL0_29 FM(SEL_I2C3_0) FM(SEL_I2C3_1) |
@@ -388,10 +391,10 @@ FM(IP12_31_28) IP12_31_28 \ | |||
388 | #define MOD_SEL0_27 FM(SEL_MSIOF3_0) FM(SEL_MSIOF3_1) | 391 | #define MOD_SEL0_27 FM(SEL_MSIOF3_0) FM(SEL_MSIOF3_1) |
389 | #define MOD_SEL0_26 FM(SEL_HSCIF3_0) FM(SEL_HSCIF3_1) | 392 | #define MOD_SEL0_26 FM(SEL_HSCIF3_0) FM(SEL_HSCIF3_1) |
390 | #define MOD_SEL0_25 FM(SEL_SCIF4_0) FM(SEL_SCIF4_1) | 393 | #define MOD_SEL0_25 FM(SEL_SCIF4_0) FM(SEL_SCIF4_1) |
391 | #define MOD_SEL0_24_23 FM(SEL_PWM0_0) FM(SEL_PWM0_1) FM(SEL_PWM0_2) F_(0, 0) | 394 | #define MOD_SEL0_24_23 REV4(FM(SEL_PWM0_0), FM(SEL_PWM0_1), FM(SEL_PWM0_2), F_(0, 0)) |
392 | #define MOD_SEL0_22_21 FM(SEL_PWM1_0) FM(SEL_PWM1_1) FM(SEL_PWM1_2) F_(0, 0) | 395 | #define MOD_SEL0_22_21 REV4(FM(SEL_PWM1_0), FM(SEL_PWM1_1), FM(SEL_PWM1_2), F_(0, 0)) |
393 | #define MOD_SEL0_20_19 FM(SEL_PWM2_0) FM(SEL_PWM2_1) FM(SEL_PWM2_2) F_(0, 0) | 396 | #define MOD_SEL0_20_19 REV4(FM(SEL_PWM2_0), FM(SEL_PWM2_1), FM(SEL_PWM2_2), F_(0, 0)) |
394 | #define MOD_SEL0_18_17 FM(SEL_PWM3_0) FM(SEL_PWM3_1) FM(SEL_PWM3_2) F_(0, 0) | 397 | #define MOD_SEL0_18_17 REV4(FM(SEL_PWM3_0), FM(SEL_PWM3_1), FM(SEL_PWM3_2), F_(0, 0)) |
395 | #define MOD_SEL0_15 FM(SEL_IRQ_0_0) FM(SEL_IRQ_0_1) | 398 | #define MOD_SEL0_15 FM(SEL_IRQ_0_0) FM(SEL_IRQ_0_1) |
396 | #define MOD_SEL0_14 FM(SEL_IRQ_1_0) FM(SEL_IRQ_1_1) | 399 | #define MOD_SEL0_14 FM(SEL_IRQ_1_0) FM(SEL_IRQ_1_1) |
397 | #define MOD_SEL0_13 FM(SEL_IRQ_2_0) FM(SEL_IRQ_2_1) | 400 | #define MOD_SEL0_13 FM(SEL_IRQ_2_0) FM(SEL_IRQ_2_1) |
diff --git a/drivers/pinctrl/sh-pfc/pinctrl.c b/drivers/pinctrl/sh-pfc/pinctrl.c index 274d5ff87078..c97d2ba7677c 100644 --- a/drivers/pinctrl/sh-pfc/pinctrl.c +++ b/drivers/pinctrl/sh-pfc/pinctrl.c | |||
@@ -347,6 +347,8 @@ static int sh_pfc_func_set_mux(struct pinctrl_dev *pctldev, unsigned selector, | |||
347 | unsigned int i; | 347 | unsigned int i; |
348 | int ret = 0; | 348 | int ret = 0; |
349 | 349 | ||
350 | dev_dbg(pctldev->dev, "Configuring pin group %s\n", grp->name); | ||
351 | |||
350 | spin_lock_irqsave(&pfc->lock, flags); | 352 | spin_lock_irqsave(&pfc->lock, flags); |
351 | 353 | ||
352 | for (i = 0; i < grp->nr_pins; ++i) { | 354 | for (i = 0; i < grp->nr_pins; ++i) { |