clk: uniphier: use devm_get_addr() to get base address
Currently, fdtdec_get_addr_size() does not support the address translation, so it cannot handle device trees with non-straight "ranges" properties. (This would be a problem with DTS for UniPhier ARMv8 SoCs.) Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
parent
b37a1ccea2
commit
45a3b1fd6c
|
|
@ -8,13 +8,12 @@
|
||||||
#include <mapmem.h>
|
#include <mapmem.h>
|
||||||
#include <linux/bitops.h>
|
#include <linux/bitops.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
|
#include <linux/sizes.h>
|
||||||
#include <clk.h>
|
#include <clk.h>
|
||||||
#include <dm/device.h>
|
#include <dm/device.h>
|
||||||
|
|
||||||
#include "clk-uniphier.h"
|
#include "clk-uniphier.h"
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
|
|
||||||
static int uniphier_clk_enable(struct udevice *dev, int index)
|
static int uniphier_clk_enable(struct udevice *dev, int index)
|
||||||
{
|
{
|
||||||
struct uniphier_clk_priv *priv = dev_get_priv(dev);
|
struct uniphier_clk_priv *priv = dev_get_priv(dev);
|
||||||
|
|
@ -133,14 +132,12 @@ int uniphier_clk_probe(struct udevice *dev)
|
||||||
{
|
{
|
||||||
struct uniphier_clk_priv *priv = dev_get_priv(dev);
|
struct uniphier_clk_priv *priv = dev_get_priv(dev);
|
||||||
fdt_addr_t addr;
|
fdt_addr_t addr;
|
||||||
fdt_size_t size;
|
|
||||||
|
|
||||||
addr = fdtdec_get_addr_size(gd->fdt_blob, dev->of_offset, "reg",
|
addr = dev_get_addr(dev);
|
||||||
&size);
|
|
||||||
if (addr == FDT_ADDR_T_NONE)
|
if (addr == FDT_ADDR_T_NONE)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
priv->base = map_sysmem(addr, size);
|
priv->base = map_sysmem(addr, SZ_4K);
|
||||||
if (!priv->base)
|
if (!priv->base)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue