net: smsc95xx: fix DM MAC address reading
[oweals/u-boot.git] / drivers / usb / ulpi / ulpi-viewport.c
index b4974ed2a6cd8e418235bf37e1cdc5bed3d77351..d1116804726ec41410dfe3bd0399d25772e80829 100644 (file)
  * Original Copyright follow:
  * Copyright (C) 2011 Google, Inc.
  *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
+ * SPDX-License-Identifier:    GPL-2.0
  */
 
 #include <common.h>
@@ -100,7 +92,8 @@ static int ulpi_request(struct ulpi_viewport *ulpi_vp, u32 value)
 
 int ulpi_write(struct ulpi_viewport *ulpi_vp, u8 *reg, u32 value)
 {
-       u32 val = ULPI_RWRUN | ULPI_RWCTRL | ((u32)reg << 16) | (value & 0xff);
+       u32 addr = (uintptr_t)reg & 0xFF;
+       u32 val = ULPI_RWRUN | ULPI_RWCTRL | addr << 16 | (value & 0xff);
 
        val |= (ulpi_vp->port_num & 0x7) << 24;
        return ulpi_request(ulpi_vp, val);
@@ -109,7 +102,7 @@ int ulpi_write(struct ulpi_viewport *ulpi_vp, u8 *reg, u32 value)
 u32 ulpi_read(struct ulpi_viewport *ulpi_vp, u8 *reg)
 {
        int err;
-       u32 val = ULPI_RWRUN | ((u32)reg << 16);
+       u32 val = ULPI_RWRUN | ((uintptr_t)reg & 0xFF) << 16;
 
        val |= (ulpi_vp->port_num & 0x7) << 24;
        err = ulpi_request(ulpi_vp, val);