---- a/drivers/mtd/bcm63xxpart.c
-+++ b/drivers/mtd/bcm63xxpart.c
-@@ -224,6 +224,11 @@ static int bcm63xx_parse_cfe_partitions(
- BCM63XX_CFE_BLOCK_SIZE);
-
- cfelen = cfe_erasesize;
-+
-+ /* Fix HW556 MX29LV128DB */
-+ if (!strncmp(bcm63xx_nvram_get_name(), "HW556", 5))
-+ cfelen = 0x20000;
-+
- nvramlen = bcm63xx_nvram_get_psi_size() * SZ_1K;
- nvramlen = roundup(nvramlen, cfe_erasesize);
- nvramaddr = master->size - nvramlen;
+@@ -3160,6 +3560,9 @@ static struct of_device_id const bcm963x
+ { .compatible = "d-link,dsl-2650u", .data = &board_96358vw2, },
+ { .compatible = "d-link,dva-g3810bn/tl", .data = &board_DVAG3810BN, },
+ { .compatible = "huawei,hg553", .data = &board_HW553, },
++ { .compatible = "huawei,hg556a-a", .data = &board_HW556_A, },
++ { .compatible = "huawei,hg556a-b", .data = &board_HW556_B, },
++ { .compatible = "huawei,hg556a-c", .data = &board_HW556_C, },
+ { .compatible = "pirelli,a226g", .data = &board_DWVS0, },
+ { .compatible = "pirelli,a226m", .data = &board_DWVS0, },
+ { .compatible = "pirelli,a226m-fwb", .data = &board_DWVS0, },