Merge tag 'u-boot-atmel-fixes-2020.07-a' of https://gitlab.denx.de/u-boot/custodians...
[oweals/u-boot.git] / drivers / misc / stm32mp_fuse.c
index a1a27d148a9c825f70562280e01f251460ae6e32..0eed3459734b0a0711eb2f17f975b871447df80b 100644 (file)
@@ -40,8 +40,17 @@ int fuse_read(u32 bank, u32 word, u32 *val)
 
 #ifdef CONFIG_PMIC_STPMIC1
        case STM32MP_NVM_BANK:
+               ret = uclass_get_device_by_driver(UCLASS_MISC,
+                                                 DM_GET_DRIVER(stpmic1_nvm),
+                                                 &dev);
+               if (ret)
+                       return ret;
                *val = 0;
-               ret = stpmic1_shadow_read_byte(word, (u8 *)val);
+               ret = misc_read(dev, -word, val, 1);
+               if (ret != 1)
+                       ret = -EINVAL;
+               else
+                       ret = 0;
                break;
 #endif /* CONFIG_PMIC_STPMIC1 */
 
@@ -76,7 +85,16 @@ int fuse_prog(u32 bank, u32 word, u32 val)
 
 #ifdef CONFIG_PMIC_STPMIC1
        case STM32MP_NVM_BANK:
-               ret = stpmic1_nvm_write_byte(word, (u8 *)&val);
+               ret = uclass_get_device_by_driver(UCLASS_MISC,
+                                                 DM_GET_DRIVER(stpmic1_nvm),
+                                                 &dev);
+               if (ret)
+                       return ret;
+               ret = misc_write(dev, word, &val, 1);
+               if (ret != 1)
+                       ret = -EINVAL;
+               else
+                       ret = 0;
                break;
 #endif /* CONFIG_PMIC_STPMIC1 */
 
@@ -110,8 +128,17 @@ int fuse_sense(u32 bank, u32 word, u32 *val)
 
 #ifdef CONFIG_PMIC_STPMIC1
        case STM32MP_NVM_BANK:
+               ret = uclass_get_device_by_driver(UCLASS_MISC,
+                                                 DM_GET_DRIVER(stpmic1_nvm),
+                                                 &dev);
+               if (ret)
+                       return ret;
                *val = 0;
-               ret = stpmic1_nvm_read_byte(word, (u8 *)val);
+               ret = misc_read(dev, word, val, 1);
+               if (ret != 1)
+                       ret = -EINVAL;
+               else
+                       ret = 0;
                break;
 #endif /* CONFIG_PMIC_STPMIC1 */
 
@@ -146,7 +173,16 @@ int fuse_override(u32 bank, u32 word, u32 val)
 
 #ifdef CONFIG_PMIC_STPMIC1
        case STM32MP_NVM_BANK:
-               ret = stpmic1_shadow_write_byte(word, (u8 *)&val);
+               ret = uclass_get_device_by_driver(UCLASS_MISC,
+                                                 DM_GET_DRIVER(stpmic1_nvm),
+                                                 &dev);
+               if (ret)
+                       return ret;
+               ret = misc_write(dev, -word, &val, 1);
+               if (ret != 1)
+                       ret = -EINVAL;
+               else
+                       ret = 0;
                break;
 #endif /* CONFIG_PMIC_STPMIC1 */