]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
ARM64: zynqmp: Remove incorrect 24c08 DT description
authorMichal Simek <michal.simek@xilinx.com>
Mon, 29 Feb 2016 13:18:08 +0000 (14:18 +0100)
committerMichal Simek <michal.simek@xilinx.com>
Fri, 1 Apr 2016 14:29:14 +0000 (16:29 +0200)
24c08 contains four 256B blocks which are addresses by last two bits.
Linux at24 driver automatically detects number of addresses based on
this algorithm.

num_addresses = DIV_ROUND_UP(chip.byte_len,
(chip.flags & AT24_FLAG_ADDR16) ? 65536 : 256);

for 24c08 it is 4 addresses where driver create one regular device
and 3 dummy devices.
These dummy devices were causing problem when kernel tries to create
another eeprom device on already allocated addresses which were
in collision with dummy devices.

Error log:
[    3.124001] i2c i2c-6: Failed to register i2c client 24c08 at 0x55
(-16)
[    3.124005] i2c i2c-6: of_i2c: Failure registering
/amba/i2c@ff030000/i2cswitch@74/i2c@0/eeprom@55
[    3.124012] i2c i2c-6: Failed to register i2c client 24c08 at 0x56
(-16)
[    3.124015] i2c i2c-6: of_i2c: Failure registering
/amba/i2c@ff030000/i2cswitch@74/i2c@0/eeprom@56
[    3.124022] i2c i2c-6: Failed to register i2c client 24c08 at 0x57
(-16)
[    3.124025] i2c i2c-6: of_i2c: Failure registering
/amba/i2c@ff030000/i2cswitch@74/i2c@0/eeprom@57

This patch removes incorrect eeprom devices which were detect via U-Boot
but it is same device with 4 blocks on 4 different addresses.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
arch/arm/dts/zynqmp-zcu102.dts

index a794ae24151109ac7301cf54b228812e9d31708f..084408ced55e8628e0bf4808b0a0f6d006a7a3bb 100644 (file)
@@ -383,26 +383,18 @@ drivers/hwmon/pmbus/Makefile:11:obj-$(CONFIG_SENSORS_MAX20751)  += max20751.o
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0>;
-                       /* IIC_EEPROM */
+                       /*
+                        * IIC_EEPROM 1kB memory which uses 256B blocks
+                        * where every block has different address.
+                        *    0 - 256B address 0x54
+                        * 256B - 512B address 0x55
+                        * 512B - 768B address 0x56
+                        * 768B - 1024B address 0x57
+                        */
                        eeprom@54 { /* u23 */
                                compatible = "at,24c08";
                                reg = <0x54>;
                        };
-
-                       eeprom@55 { /* u-boot detection */
-                               compatible = "at,24c08";
-                               reg = <0x55>;
-                       };
-
-                       eeprom@56 { /* u-boot detection */
-                               compatible = "at,24c08";
-                               reg = <0x56>;
-                       };
-
-                       eeprom@57 { /* u-boot detection */
-                               compatible = "at,24c08";
-                               reg = <0x57>;
-                       };
                };
                i2c@1 { /* i2c mw 74 0 2 */
                        #address-cells = <1>;