]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/pinctrl/pinctrl-xway.c
Staging: unisys: fix potential format string leak
[karo-tx-linux.git] / drivers / pinctrl / pinctrl-xway.c
index b78baaa5ee4b3ea9e68e2c7477f2706b36c07d97..412c6b78140aa72918619f55743f8ac5666d6ffc 100644 (file)
@@ -160,10 +160,10 @@ static const struct ltq_mfp_pin xway_mfp[] = {
        MFP_XWAY(GPIO41, GPIO,  NONE,   NONE,   NONE),
        MFP_XWAY(GPIO42, GPIO,  MDIO,   NONE,   NONE),
        MFP_XWAY(GPIO43, GPIO,  MDIO,   NONE,   NONE),
-       MFP_XWAY(GPIO44, GPIO,  NONE,   SIN,    GPHY),
+       MFP_XWAY(GPIO44, GPIO,  MII,    SIN,    GPHY),
        MFP_XWAY(GPIO45, GPIO,  NONE,   GPHY,   SIN),
        MFP_XWAY(GPIO46, GPIO,  NONE,   NONE,   EXIN),
-       MFP_XWAY(GPIO47, GPIO,  NONE,   GPHY,   SIN),
+       MFP_XWAY(GPIO47, GPIO,  MII,    GPHY,   SIN),
        MFP_XWAY(GPIO48, GPIO,  EBU,    NONE,   NONE),
        MFP_XWAY(GPIO49, GPIO,  EBU,    NONE,   NONE),
        MFP_XWAY(GPIO50, GPIO,  NONE,   NONE,   NONE),
@@ -1535,7 +1535,7 @@ static struct ltq_pinmux_info xway_info = {
 /* ---------  gpio_chip related code --------- */
 static void xway_gpio_set(struct gpio_chip *chip, unsigned int pin, int val)
 {
-       struct ltq_pinmux_info *info = dev_get_drvdata(chip->dev);
+       struct ltq_pinmux_info *info = dev_get_drvdata(chip->parent);
 
        if (val)
                gpio_setbit(info->membase[0], GPIO_OUT(pin), PORT_PIN(pin));
@@ -1545,14 +1545,14 @@ static void xway_gpio_set(struct gpio_chip *chip, unsigned int pin, int val)
 
 static int xway_gpio_get(struct gpio_chip *chip, unsigned int pin)
 {
-       struct ltq_pinmux_info *info = dev_get_drvdata(chip->dev);
+       struct ltq_pinmux_info *info = dev_get_drvdata(chip->parent);
 
-       return gpio_getbit(info->membase[0], GPIO_IN(pin), PORT_PIN(pin));
+       return !!gpio_getbit(info->membase[0], GPIO_IN(pin), PORT_PIN(pin));
 }
 
 static int xway_gpio_dir_in(struct gpio_chip *chip, unsigned int pin)
 {
-       struct ltq_pinmux_info *info = dev_get_drvdata(chip->dev);
+       struct ltq_pinmux_info *info = dev_get_drvdata(chip->parent);
 
        gpio_clearbit(info->membase[0], GPIO_DIR(pin), PORT_PIN(pin));
 
@@ -1561,7 +1561,7 @@ static int xway_gpio_dir_in(struct gpio_chip *chip, unsigned int pin)
 
 static int xway_gpio_dir_out(struct gpio_chip *chip, unsigned int pin, int val)
 {
-       struct ltq_pinmux_info *info = dev_get_drvdata(chip->dev);
+       struct ltq_pinmux_info *info = dev_get_drvdata(chip->parent);
 
        if (PORT(pin) == PORT3)
                gpio_setbit(info->membase[0], GPIO3_OD, PORT_PIN(pin));
@@ -1708,7 +1708,7 @@ static int pinmux_xway_probe(struct platform_device *pdev)
        xway_pctrl_desc.pins = xway_info.pads;
 
        /* load the gpio chip */
-       xway_chip.dev = &pdev->dev;
+       xway_chip.parent = &pdev->dev;
        ret = gpiochip_add(&xway_chip);
        if (ret) {
                dev_err(&pdev->dev, "Failed to register gpio chip\n");