powerpc: fsl: Use of_property_read_reg() to parse "reg"
Use the recently added of_property_read_reg() helper to get the untranslated "reg" address value. Signed-off-by: Rob Herring <robh@kernel.org> [mpe: Add required include of of_address.h] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://msgid.link/20230609183151.1766261-1-robh@kernel.org
This commit is contained in:
parent
c4ae1799a5
commit
f892ac774b
@ -448,13 +448,11 @@ int fsl_rio_setup(struct platform_device *dev)
|
||||
struct rio_mport *port;
|
||||
struct rio_priv *priv;
|
||||
int rc = 0;
|
||||
const u32 *dt_range, *port_index;
|
||||
const u32 *port_index;
|
||||
u32 active_ports = 0;
|
||||
struct device_node *np, *rmu_node;
|
||||
int rlen;
|
||||
u32 ccsr;
|
||||
u64 range_start;
|
||||
int aw;
|
||||
u32 i;
|
||||
static int tmp;
|
||||
struct device_node *rmu_np[MAX_MSG_UNIT_NUM] = {NULL};
|
||||
@ -528,15 +526,12 @@ int fsl_rio_setup(struct platform_device *dev)
|
||||
dbell->bellirq = irq_of_parse_and_map(np, 1);
|
||||
dev_info(&dev->dev, "bellirq: %d\n", dbell->bellirq);
|
||||
|
||||
aw = of_n_addr_cells(np);
|
||||
dt_range = of_get_property(np, "reg", &rlen);
|
||||
if (!dt_range) {
|
||||
if (of_property_read_reg(np, 0, &range_start, NULL)) {
|
||||
pr_err("%pOF: unable to find 'reg' property\n",
|
||||
np);
|
||||
rc = -ENOMEM;
|
||||
goto err_pw;
|
||||
}
|
||||
range_start = of_read_number(dt_range, aw);
|
||||
dbell->dbell_regs = (struct rio_dbell_regs *)(rmu_regs_win +
|
||||
(u32)range_start);
|
||||
|
||||
@ -556,15 +551,12 @@ int fsl_rio_setup(struct platform_device *dev)
|
||||
pw->dev = &dev->dev;
|
||||
pw->pwirq = irq_of_parse_and_map(np, 0);
|
||||
dev_info(&dev->dev, "pwirq: %d\n", pw->pwirq);
|
||||
aw = of_n_addr_cells(np);
|
||||
dt_range = of_get_property(np, "reg", &rlen);
|
||||
if (!dt_range) {
|
||||
if (of_property_read_reg(np, 0, &range_start, NULL)) {
|
||||
pr_err("%pOF: unable to find 'reg' property\n",
|
||||
np);
|
||||
rc = -ENOMEM;
|
||||
goto err;
|
||||
}
|
||||
range_start = of_read_number(dt_range, aw);
|
||||
pw->pw_regs = (struct rio_pw_regs *)(rmu_regs_win + (u32)range_start);
|
||||
|
||||
/*set up ports node*/
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include <linux/types.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/slab.h>
|
||||
@ -1067,9 +1068,6 @@ int fsl_rio_setup_rmu(struct rio_mport *mport, struct device_node *node)
|
||||
struct rio_priv *priv;
|
||||
struct fsl_rmu *rmu;
|
||||
u64 msg_start;
|
||||
const u32 *msg_addr;
|
||||
int mlen;
|
||||
int aw;
|
||||
|
||||
if (!mport || !mport->priv)
|
||||
return -EINVAL;
|
||||
@ -1086,16 +1084,12 @@ int fsl_rio_setup_rmu(struct rio_mport *mport, struct device_node *node)
|
||||
if (!rmu)
|
||||
return -ENOMEM;
|
||||
|
||||
aw = of_n_addr_cells(node);
|
||||
msg_addr = of_get_property(node, "reg", &mlen);
|
||||
if (!msg_addr) {
|
||||
if (of_property_read_reg(node, 0, &msg_start, NULL)) {
|
||||
pr_err("%pOF: unable to find 'reg' property of message-unit\n",
|
||||
node);
|
||||
kfree(rmu);
|
||||
return -ENOMEM;
|
||||
}
|
||||
msg_start = of_read_number(msg_addr, aw);
|
||||
|
||||
rmu->msg_regs = (struct rio_msg_regs *)
|
||||
(rmu_regs_win + (u32)msg_start);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user