/* returns the value for a given spu in a given register */
 static u8 spu_read_register_value(struct sys_device *sysdev, union spe_reg __iomem *reg)
 {
-       const unsigned int *id;
        union spe_reg value;
        struct spu *spu;
 
-       /* getting the id from the reg attribute will not work on future device-tree layouts
-        * in future we should store the id to the spu struct and use it here */
        spu = container_of(sysdev, struct spu, sysdev);
-       id = of_get_property(spu_devnode(spu), "reg", NULL);
        value.val = in_be64(®->val);
 
-       return value.spe[*id];
+       return value.spe[spu->spe_id];
 }
 
 static ssize_t spu_show_temp(struct sys_device *sysdev, char *buf)
 
 {
        const unsigned int *prop;
        int proplen;
-       prop = of_get_property(spe, "unit-id", &proplen);
+       prop = of_get_property(spe, "physical-id", &proplen);
        if (proplen == 4)
                return (u64)*prop;