Merge tag 'pinctrl-for-v3.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl

Pull pin control fixes from Linus Walleij:
- Driver fixes for AM33xx, SIRF and PFC pin controllers
- Fix a compile warning from the pinctrl single-register driver
- Fix a little nasty memory leak

* tag 'pinctrl-for-v3.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
pinctrl: fix a memleak when freeing maps
pinctrl: pinctrl-single: fix compile warning when no CONFIG_PM
pinctrl: sh-pfc: fix SDHI0 VccQ regulator on sh73a0 with DT
arm/dts: sirf: fix the pingroup name mismatch between drivers and dts
pinctrl: sirf: add usp0_uart_nostreamctrl pin group for usp-uart without flowctrl
pinctrl: sirf: fix the pin number and mux bit for usp0
pinctrl: am33xx dt binding: correct include path

+49 -19
+14 -8
arch/arm/boot/dts/atlas6.dtsi
··· 485 sirf,function = "usp0"; 486 }; 487 }; 488 usp1_pins_a: usp1@0 { 489 usp1 { 490 sirf,pins = "usp1grp"; ··· 521 sirf,function = "pulse_count"; 522 }; 523 }; 524 - cko0_rst_pins_a: cko0_rst@0 { 525 - cko0_rst { 526 - sirf,pins = "cko0_rstgrp"; 527 - sirf,function = "cko0_rst"; 528 }; 529 }; 530 - cko1_rst_pins_a: cko1_rst@0 { 531 - cko1_rst { 532 - sirf,pins = "cko1_rstgrp"; 533 - sirf,function = "cko1_rst"; 534 }; 535 }; 536 };
··· 485 sirf,function = "usp0"; 486 }; 487 }; 488 + usp0_uart_nostreamctrl_pins_a: usp0@1 { 489 + usp0 { 490 + sirf,pins = "usp0_uart_nostreamctrl_grp"; 491 + sirf,function = "usp0_uart_nostreamctrl"; 492 + }; 493 + }; 494 usp1_pins_a: usp1@0 { 495 usp1 { 496 sirf,pins = "usp1grp"; ··· 515 sirf,function = "pulse_count"; 516 }; 517 }; 518 + cko0_pins_a: cko0@0 { 519 + cko0 { 520 + sirf,pins = "cko0grp"; 521 + sirf,function = "cko0"; 522 }; 523 }; 524 + cko1_pins_a: cko1@0 { 525 + cko1 { 526 + sirf,pins = "cko1grp"; 527 + sirf,function = "cko1"; 528 }; 529 }; 530 };
+8 -8
arch/arm/boot/dts/prima2.dtsi
··· 515 sirf,function = "pulse_count"; 516 }; 517 }; 518 - cko0_rst_pins_a: cko0_rst@0 { 519 - cko0_rst { 520 - sirf,pins = "cko0_rstgrp"; 521 - sirf,function = "cko0_rst"; 522 }; 523 }; 524 - cko1_rst_pins_a: cko1_rst@0 { 525 - cko1_rst { 526 - sirf,pins = "cko1_rstgrp"; 527 - sirf,function = "cko1_rst"; 528 }; 529 }; 530 };
··· 515 sirf,function = "pulse_count"; 516 }; 517 }; 518 + cko0_pins_a: cko0@0 { 519 + cko0 { 520 + sirf,pins = "cko0grp"; 521 + sirf,function = "cko0"; 522 }; 523 }; 524 + cko1_pins_a: cko1@0 { 525 + cko1 { 526 + sirf,pins = "cko1grp"; 527 + sirf,function = "cko1"; 528 }; 529 }; 530 };
+1
drivers/pinctrl/core.c
··· 1193 list_for_each_entry(maps_node, &pinctrl_maps, node) { 1194 if (maps_node->maps == map) { 1195 list_del(&maps_node->node); 1196 mutex_unlock(&pinctrl_maps_mutex); 1197 return; 1198 }
··· 1193 list_for_each_entry(maps_node, &pinctrl_maps, node) { 1194 if (maps_node->maps == map) { 1195 list_del(&maps_node->node); 1196 + kfree(maps_node); 1197 mutex_unlock(&pinctrl_maps_mutex); 1198 return; 1199 }
+2
drivers/pinctrl/pinctrl-single.c
··· 1483 return ret; 1484 } 1485 1486 static int pinctrl_single_suspend(struct platform_device *pdev, 1487 pm_message_t state) 1488 { ··· 1506 1507 return pinctrl_force_default(pcs->pctl); 1508 } 1509 1510 static int pcs_probe(struct platform_device *pdev) 1511 {
··· 1483 return ret; 1484 } 1485 1486 + #ifdef CONFIG_PM 1487 static int pinctrl_single_suspend(struct platform_device *pdev, 1488 pm_message_t state) 1489 { ··· 1505 1506 return pinctrl_force_default(pcs->pctl); 1507 } 1508 + #endif 1509 1510 static int pcs_probe(struct platform_device *pdev) 1511 {
+1
drivers/pinctrl/sh-pfc/pfc-sh73a0.c
··· 3785 3786 static struct regulator_consumer_supply sh73a0_vccq_mc0_consumers[] = { 3787 REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"), 3788 }; 3789 3790 static const struct regulator_init_data sh73a0_vccq_mc0_init_data = {
··· 3785 3786 static struct regulator_consumer_supply sh73a0_vccq_mc0_consumers[] = { 3787 REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"), 3788 + REGULATOR_SUPPLY("vqmmc", "ee100000.sdhi"), 3789 }; 3790 3791 static const struct regulator_init_data sh73a0_vccq_mc0_init_data = {
+22 -2
drivers/pinctrl/sirf/pinctrl-atlas6.c
··· 496 static const struct sirfsoc_muxmask usp0_muxmask[] = { 497 { 498 .group = 1, 499 - .mask = BIT(19) | BIT(20) | BIT(21) | BIT(22), 500 }, 501 }; 502 ··· 507 .funcval = 0, 508 }; 509 510 - static const unsigned usp0_pins[] = { 51, 52, 53, 54 }; 511 512 static const struct sirfsoc_muxmask usp1_muxmask[] = { 513 { 514 .group = 0, ··· 835 SIRFSOC_PIN_GROUP("uart2grp", uart2_pins), 836 SIRFSOC_PIN_GROUP("uart2_nostreamctrlgrp", uart2_nostreamctrl_pins), 837 SIRFSOC_PIN_GROUP("usp0grp", usp0_pins), 838 SIRFSOC_PIN_GROUP("usp1grp", usp1_pins), 839 SIRFSOC_PIN_GROUP("i2c0grp", i2c0_pins), 840 SIRFSOC_PIN_GROUP("i2c1grp", i2c1_pins), ··· 877 static const char * const uart1grp[] = { "uart1grp" }; 878 static const char * const uart2grp[] = { "uart2grp" }; 879 static const char * const uart2_nostreamctrlgrp[] = { "uart2_nostreamctrlgrp" }; 880 static const char * const usp0grp[] = { "usp0grp" }; 881 static const char * const usp1grp[] = { "usp1grp" }; 882 static const char * const i2c0grp[] = { "i2c0grp" }; ··· 921 SIRFSOC_PMX_FUNCTION("uart2", uart2grp, uart2_padmux), 922 SIRFSOC_PMX_FUNCTION("uart2_nostreamctrl", uart2_nostreamctrlgrp, uart2_nostreamctrl_padmux), 923 SIRFSOC_PMX_FUNCTION("usp0", usp0grp, usp0_padmux), 924 SIRFSOC_PMX_FUNCTION("usp1", usp1grp, usp1_padmux), 925 SIRFSOC_PMX_FUNCTION("i2c0", i2c0grp, i2c0_padmux), 926 SIRFSOC_PMX_FUNCTION("i2c1", i2c1grp, i2c1_padmux),
··· 496 static const struct sirfsoc_muxmask usp0_muxmask[] = { 497 { 498 .group = 1, 499 + .mask = BIT(19) | BIT(20) | BIT(21) | BIT(22) | BIT(23), 500 }, 501 }; 502 ··· 507 .funcval = 0, 508 }; 509 510 + static const unsigned usp0_pins[] = { 51, 52, 53, 54, 55 }; 511 512 + static const struct sirfsoc_muxmask usp0_uart_nostreamctrl_muxmask[] = { 513 + { 514 + .group = 1, 515 + .mask = BIT(20) | BIT(21), 516 + }, 517 + }; 518 + 519 + static const struct sirfsoc_padmux usp0_uart_nostreamctrl_padmux = { 520 + .muxmask_counts = ARRAY_SIZE(usp0_uart_nostreamctrl_muxmask), 521 + .muxmask = usp0_uart_nostreamctrl_muxmask, 522 + }; 523 + 524 + static const unsigned usp0_uart_nostreamctrl_pins[] = { 52, 53 }; 525 static const struct sirfsoc_muxmask usp1_muxmask[] = { 526 { 527 .group = 0, ··· 822 SIRFSOC_PIN_GROUP("uart2grp", uart2_pins), 823 SIRFSOC_PIN_GROUP("uart2_nostreamctrlgrp", uart2_nostreamctrl_pins), 824 SIRFSOC_PIN_GROUP("usp0grp", usp0_pins), 825 + SIRFSOC_PIN_GROUP("usp0_uart_nostreamctrl_grp", 826 + usp0_uart_nostreamctrl_pins), 827 SIRFSOC_PIN_GROUP("usp1grp", usp1_pins), 828 SIRFSOC_PIN_GROUP("i2c0grp", i2c0_pins), 829 SIRFSOC_PIN_GROUP("i2c1grp", i2c1_pins), ··· 862 static const char * const uart1grp[] = { "uart1grp" }; 863 static const char * const uart2grp[] = { "uart2grp" }; 864 static const char * const uart2_nostreamctrlgrp[] = { "uart2_nostreamctrlgrp" }; 865 + static const char * const usp0_uart_nostreamctrl_grp[] = { 866 + "usp0_uart_nostreamctrl_grp" }; 867 static const char * const usp0grp[] = { "usp0grp" }; 868 static const char * const usp1grp[] = { "usp1grp" }; 869 static const char * const i2c0grp[] = { "i2c0grp" }; ··· 904 SIRFSOC_PMX_FUNCTION("uart2", uart2grp, uart2_padmux), 905 SIRFSOC_PMX_FUNCTION("uart2_nostreamctrl", uart2_nostreamctrlgrp, uart2_nostreamctrl_padmux), 906 SIRFSOC_PMX_FUNCTION("usp0", usp0grp, usp0_padmux), 907 + SIRFSOC_PMX_FUNCTION("usp0_uart_nostreamctrl", 908 + usp0_uart_nostreamctrl_grp, 909 + usp0_uart_nostreamctrl_padmux), 910 SIRFSOC_PMX_FUNCTION("usp1", usp1grp, usp1_padmux), 911 SIRFSOC_PMX_FUNCTION("i2c0", i2c0grp, i2c0_padmux), 912 SIRFSOC_PMX_FUNCTION("i2c1", i2c1grp, i2c1_padmux),
+1 -1
include/dt-bindings/pinctrl/am33xx.h
··· 5 #ifndef _DT_BINDINGS_PINCTRL_AM33XX_H 6 #define _DT_BINDINGS_PINCTRL_AM33XX_H 7 8 - #include <include/dt-bindings/pinctrl/omap.h> 9 10 /* am33xx specific mux bit defines */ 11 #undef PULL_ENA
··· 5 #ifndef _DT_BINDINGS_PINCTRL_AM33XX_H 6 #define _DT_BINDINGS_PINCTRL_AM33XX_H 7 8 + #include <dt-bindings/pinctrl/omap.h> 9 10 /* am33xx specific mux bit defines */ 11 #undef PULL_ENA