Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'mfd-fixes-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd

Pull mfd fixes from Lee Jones:
"Couple of simple fixes due for the 3.17 rcs

(and a sneaky document addition that slipped from the previous
pull-request)"

* tag 'mfd-fixes-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd:
mfd: twl4030-power: Fix PM idle pin configuration to not conflict with regulators
mfd: tc3589x: Add device tree bindings
mfd: ab8500-core: Use 'ifdef' for config options
mfd: htc-i2cpld: Fix %d confusingly prefixed with 0x in format string
mfd: omap-usb-host: Fix %d confusingly prefixed with 0x in format string

+121 -14
+107
Documentation/devicetree/bindings/mfd/tc3589x.txt
··· 1 + * Toshiba TC3589x multi-purpose expander 2 + 3 + The Toshiba TC3589x series are I2C-based MFD devices which may expose the 4 + following built-in devices: gpio, keypad, rotator (vibrator), PWM (for 5 + e.g. LEDs or vibrators) The included models are: 6 + 7 + - TC35890 8 + - TC35892 9 + - TC35893 10 + - TC35894 11 + - TC35895 12 + - TC35896 13 + 14 + Required properties: 15 + - compatible : must be "toshiba,tc35890", "toshiba,tc35892", "toshiba,tc35893", 16 + "toshiba,tc35894", "toshiba,tc35895" or "toshiba,tc35896" 17 + - reg : I2C address of the device 18 + - interrupt-parent : specifies which IRQ controller we're connected to 19 + - interrupts : the interrupt on the parent the controller is connected to 20 + - interrupt-controller : marks the device node as an interrupt controller 21 + - #interrupt-cells : should be <1>, the first cell is the IRQ offset on this 22 + TC3589x interrupt controller. 23 + 24 + Optional nodes: 25 + 26 + - GPIO 27 + This GPIO module inside the TC3589x has 24 (TC35890, TC35892) or 20 28 + (other models) GPIO lines. 29 + - compatible : must be "toshiba,tc3589x-gpio" 30 + - interrupts : interrupt on the parent, which must be the tc3589x MFD device 31 + - interrupt-controller : marks the device node as an interrupt controller 32 + - #interrupt-cells : should be <2>, the first cell is the IRQ offset on this 33 + TC3589x GPIO interrupt controller, the second cell is the interrupt flags 34 + in accordance with <dt-bindings/interrupt-controller/irq.h>. The following 35 + flags are valid: 36 + - IRQ_TYPE_LEVEL_LOW 37 + - IRQ_TYPE_LEVEL_HIGH 38 + - IRQ_TYPE_EDGE_RISING 39 + - IRQ_TYPE_EDGE_FALLING 40 + - IRQ_TYPE_EDGE_BOTH 41 + - gpio-controller : marks the device node as a GPIO controller 42 + - #gpio-cells : should be <2>, the first cell is the GPIO offset on this 43 + GPIO controller, the second cell is the flags. 44 + 45 + - Keypad 46 + This keypad is the same on all variants, supporting up to 96 different 47 + keys. The linux-specific properties are modeled on those already existing 48 + in other input drivers. 49 + - compatible : must be "toshiba,tc3589x-keypad" 50 + - debounce-delay-ms : debounce interval in milliseconds 51 + - keypad,num-rows : number of rows in the matrix, see 52 + bindings/input/matrix-keymap.txt 53 + - keypad,num-columns : number of columns in the matrix, see 54 + bindings/input/matrix-keymap.txt 55 + - linux,keymap: the definition can be found in 56 + bindings/input/matrix-keymap.txt 57 + - linux,no-autorepeat: do no enable autorepeat feature. 58 + - linux,wakeup: use any event on keypad as wakeup event. 59 + 60 + Example: 61 + 62 + tc35893@44 { 63 + compatible = "toshiba,tc35893"; 64 + reg = <0x44>; 65 + interrupt-parent = <&gpio6>; 66 + interrupts = <26 IRQ_TYPE_EDGE_RISING>; 67 + 68 + interrupt-controller; 69 + #interrupt-cells = <1>; 70 + 71 + tc3589x_gpio { 72 + compatible = "toshiba,tc3589x-gpio"; 73 + interrupts = <0>; 74 + 75 + interrupt-controller; 76 + #interrupt-cells = <2>; 77 + gpio-controller; 78 + #gpio-cells = <2>; 79 + }; 80 + tc3589x_keypad { 81 + compatible = "toshiba,tc3589x-keypad"; 82 + interrupts = <6>; 83 + debounce-delay-ms = <4>; 84 + keypad,num-columns = <8>; 85 + keypad,num-rows = <8>; 86 + linux,no-autorepeat; 87 + linux,wakeup; 88 + linux,keymap = <0x0301006b 89 + 0x04010066 90 + 0x06040072 91 + 0x040200d7 92 + 0x0303006a 93 + 0x0205000e 94 + 0x0607008b 95 + 0x0500001c 96 + 0x0403000b 97 + 0x03040034 98 + 0x05020067 99 + 0x0305006c 100 + 0x040500e7 101 + 0x0005009e 102 + 0x06020073 103 + 0x01030039 104 + 0x07060069 105 + 0x050500d9>; 106 + }; 107 + };
+1 -1
arch/arm/boot/dts/omap3-n900.dts
··· 353 353 }; 354 354 355 355 twl_power: power { 356 - compatible = "ti,twl4030-power-n900"; 356 + compatible = "ti,twl4030-power-n900", "ti,twl4030-power-idle-osc-off"; 357 357 ti,use_poweroff; 358 358 }; 359 359 };
+1 -1
drivers/mfd/ab8500-core.c
··· 1754 1754 if (ret) 1755 1755 return ret; 1756 1756 1757 - #if CONFIG_DEBUG_FS 1757 + #ifdef CONFIG_DEBUG_FS 1758 1758 /* Pass to debugfs */ 1759 1759 ab8500_debug_resources[0].start = ab8500->irq; 1760 1760 ab8500_debug_resources[0].end = ab8500->irq;
+1 -1
drivers/mfd/htc-i2cpld.c
··· 404 404 } 405 405 406 406 i2c_set_clientdata(client, chip); 407 - snprintf(client->name, I2C_NAME_SIZE, "Chip_0x%d", client->addr); 407 + snprintf(client->name, I2C_NAME_SIZE, "Chip_0x%x", client->addr); 408 408 chip->client = client; 409 409 410 410 /* Reset the chip */
+1 -1
drivers/mfd/omap-usb-host.c
··· 647 647 default: 648 648 omap->nports = OMAP3_HS_USB_PORTS; 649 649 dev_dbg(dev, 650 - "USB HOST Rev:0x%d not recognized, assuming %d ports\n", 650 + "USB HOST Rev:0x%x not recognized, assuming %d ports\n", 651 651 omap->usbhs_rev, omap->nports); 652 652 break; 653 653 }
+10 -10
drivers/mfd/twl4030-power.c
··· 724 724 * above. 725 725 */ 726 726 static struct twl4030_resconfig omap3_idle_rconfig[] = { 727 - TWL_REMAP_SLEEP(RES_VAUX1, DEV_GRP_NULL, 0, 0), 728 - TWL_REMAP_SLEEP(RES_VAUX2, DEV_GRP_NULL, 0, 0), 729 - TWL_REMAP_SLEEP(RES_VAUX3, DEV_GRP_NULL, 0, 0), 730 - TWL_REMAP_SLEEP(RES_VAUX4, DEV_GRP_NULL, 0, 0), 731 - TWL_REMAP_SLEEP(RES_VMMC1, DEV_GRP_NULL, 0, 0), 732 - TWL_REMAP_SLEEP(RES_VMMC2, DEV_GRP_NULL, 0, 0), 727 + TWL_REMAP_SLEEP(RES_VAUX1, TWL4030_RESCONFIG_UNDEF, 0, 0), 728 + TWL_REMAP_SLEEP(RES_VAUX2, TWL4030_RESCONFIG_UNDEF, 0, 0), 729 + TWL_REMAP_SLEEP(RES_VAUX3, TWL4030_RESCONFIG_UNDEF, 0, 0), 730 + TWL_REMAP_SLEEP(RES_VAUX4, TWL4030_RESCONFIG_UNDEF, 0, 0), 731 + TWL_REMAP_SLEEP(RES_VMMC1, TWL4030_RESCONFIG_UNDEF, 0, 0), 732 + TWL_REMAP_SLEEP(RES_VMMC2, TWL4030_RESCONFIG_UNDEF, 0, 0), 733 733 TWL_REMAP_OFF(RES_VPLL1, DEV_GRP_P1, 3, 1), 734 734 TWL_REMAP_SLEEP(RES_VPLL2, DEV_GRP_P1, 0, 0), 735 - TWL_REMAP_SLEEP(RES_VSIM, DEV_GRP_NULL, 0, 0), 736 - TWL_REMAP_SLEEP(RES_VDAC, DEV_GRP_NULL, 0, 0), 735 + TWL_REMAP_SLEEP(RES_VSIM, TWL4030_RESCONFIG_UNDEF, 0, 0), 736 + TWL_REMAP_SLEEP(RES_VDAC, TWL4030_RESCONFIG_UNDEF, 0, 0), 737 737 TWL_REMAP_SLEEP(RES_VINTANA1, TWL_DEV_GRP_P123, 1, 2), 738 738 TWL_REMAP_SLEEP(RES_VINTANA2, TWL_DEV_GRP_P123, 0, 2), 739 739 TWL_REMAP_SLEEP(RES_VINTDIG, TWL_DEV_GRP_P123, 1, 2), 740 740 TWL_REMAP_SLEEP(RES_VIO, TWL_DEV_GRP_P123, 2, 2), 741 741 TWL_REMAP_OFF(RES_VDD1, DEV_GRP_P1, 4, 1), 742 742 TWL_REMAP_OFF(RES_VDD2, DEV_GRP_P1, 3, 1), 743 - TWL_REMAP_SLEEP(RES_VUSB_1V5, DEV_GRP_NULL, 0, 0), 744 - TWL_REMAP_SLEEP(RES_VUSB_1V8, DEV_GRP_NULL, 0, 0), 743 + TWL_REMAP_SLEEP(RES_VUSB_1V5, TWL4030_RESCONFIG_UNDEF, 0, 0), 744 + TWL_REMAP_SLEEP(RES_VUSB_1V8, TWL4030_RESCONFIG_UNDEF, 0, 0), 745 745 TWL_REMAP_SLEEP(RES_VUSB_3V1, TWL_DEV_GRP_P123, 0, 0), 746 746 /* Resource #20 USB charge pump skipped */ 747 747 TWL_REMAP_SLEEP(RES_REGEN, TWL_DEV_GRP_P123, 2, 1),