Merge tag 'v2021.01-rc5' into next
[platform/kernel/u-boot.git] / drivers / misc / gdsys_rxaui_ctrl.c
index 9a63c32..8f5cbe4 100644 (file)
@@ -29,6 +29,7 @@ struct gdsys_rxaui_ctrl_regs {
 
 struct gdsys_rxaui_ctrl_priv {
        struct regmap *map;
+       bool state;
 };
 
 int gdsys_rxaui_set_polarity_inversion(struct udevice *dev, bool val)
@@ -36,6 +37,8 @@ int gdsys_rxaui_set_polarity_inversion(struct udevice *dev, bool val)
        struct gdsys_rxaui_ctrl_priv *priv = dev_get_priv(dev);
        u16 state;
 
+       priv->state = !priv->state;
+
        rxaui_ctrl_get(priv->map, ctrl_1, &state);
 
        if (val)
@@ -45,7 +48,7 @@ int gdsys_rxaui_set_polarity_inversion(struct udevice *dev, bool val)
 
        rxaui_ctrl_set(priv->map, ctrl_1, state);
 
-       return 0;
+       return !priv->state;
 }
 
 static const struct misc_ops gdsys_rxaui_ctrl_ops = {
@@ -56,7 +59,9 @@ int gdsys_rxaui_ctrl_probe(struct udevice *dev)
 {
        struct gdsys_rxaui_ctrl_priv *priv = dev_get_priv(dev);
 
-       regmap_init_mem(dev, &priv->map);
+       regmap_init_mem(dev_ofnode(dev), &priv->map);
+
+       priv->state = false;
 
        return 0;
 }
@@ -72,5 +77,5 @@ U_BOOT_DRIVER(gdsys_rxaui_ctrl) = {
        .ops            = &gdsys_rxaui_ctrl_ops,
        .of_match       = gdsys_rxaui_ctrl_ids,
        .probe          = gdsys_rxaui_ctrl_probe,
-       .priv_auto_alloc_size = sizeof(struct gdsys_rxaui_ctrl_priv),
+       .priv_auto      = sizeof(struct gdsys_rxaui_ctrl_priv),
 };