X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=drivers%2Fi2c%2Fi2c-uniphier.c;h=f391f11e93572ae6a947999566379c856acedca8;hb=8eff909a56919f0b048cc2f269c470e31157f86c;hp=64a9ed81d2530b601edd2b29b234f8461c107ac6;hpb=a0573d19885236ba03d412f7788104f75f0dea64;p=u-boot diff --git a/drivers/i2c/i2c-uniphier.c b/drivers/i2c/i2c-uniphier.c index 64a9ed81d2..f391f11e93 100644 --- a/drivers/i2c/i2c-uniphier.c +++ b/drivers/i2c/i2c-uniphier.c @@ -1,21 +1,21 @@ /* - * Copyright (C) 2014 Panasonic Corporation - * Author: Masahiro Yamada + * Copyright (C) 2014 Panasonic Corporation + * Copyright (C) 2015-2016 Socionext Inc. + * Author: Masahiro Yamada * * SPDX-License-Identifier: GPL-2.0+ */ #include #include -#include -#include +#include +#include +#include #include #include #include #include -DECLARE_GLOBAL_DATA_PTR; - struct uniphier_i2c_regs { u32 dtrm; /* data transmission */ #define I2C_DTRM_STA (1 << 10) @@ -48,13 +48,13 @@ struct uniphier_i2c_dev { static int uniphier_i2c_probe(struct udevice *dev) { fdt_addr_t addr; - fdt_size_t size; struct uniphier_i2c_dev *priv = dev_get_priv(dev); - addr = fdtdec_get_addr_size(gd->fdt_blob, dev->of_offset, "reg", &size); - - priv->regs = map_sysmem(addr, size); + addr = dev_get_addr(dev); + if (addr == FDT_ADDR_T_NONE) + return -EINVAL; + priv->regs = devm_ioremap(dev, addr, SZ_64); if (!priv->regs) return -ENOMEM; @@ -66,15 +66,6 @@ static int uniphier_i2c_probe(struct udevice *dev) return 0; } -static int uniphier_i2c_remove(struct udevice *dev) -{ - struct uniphier_i2c_dev *priv = dev_get_priv(dev); - - unmap_sysmem(priv->regs); - - return 0; -} - static int send_and_recv_byte(struct uniphier_i2c_dev *dev, u32 dtrm) { writel(dtrm, &dev->regs->dtrm); @@ -212,8 +203,8 @@ static const struct dm_i2c_ops uniphier_i2c_ops = { }; static const struct udevice_id uniphier_i2c_of_match[] = { - { .compatible = "panasonic,uniphier-i2c" }, - {}, + { .compatible = "socionext,uniphier-i2c" }, + { /* sentinel */ } }; U_BOOT_DRIVER(uniphier_i2c) = { @@ -221,7 +212,6 @@ U_BOOT_DRIVER(uniphier_i2c) = { .id = UCLASS_I2C, .of_match = uniphier_i2c_of_match, .probe = uniphier_i2c_probe, - .remove = uniphier_i2c_remove, .priv_auto_alloc_size = sizeof(struct uniphier_i2c_dev), .ops = &uniphier_i2c_ops, };