Hi Scott Wood,
I've modified the device tree like this as I read in a document
"Power.org ePAPR" as
'Property: reg
Value type: <prop-encoded-array> encoded as arbitrary number of (address,length) pairs.
Description:
The reg property describes the address of the device's resources within the address space defined by
its parent bus. Most commonly this means the offsets and lengths of memory-mapped IO register
blocks, but may have a different meaning on some bus types. Addresses in the address space defined
by root node are cpu real addresses.
The value is a <prop-encoded-array>, composed of an arbitrary number of pairs of address
and length, <address length>. The number of <u32> cells required to specify the address
and length are bus-specific and are specified by the #address-cells and #size-cells properties
in the parent of the device node. If the parent node specifies a value of 0 for #size-cells, the
length field in the value of reg shall be omitted.
Example:
Suppose a device within a system-on-a-chip had two blocks of registers—a 32-byte block at
offset 0x3000 in the SOC and a 256-byte block at offset 0xFE00. The reg property would be
encoded as follows (assuming #address-cells and #size-cells values of 1):
reg = <0x3000 0x20 0xFE00 0x100>;'
So that we modified the register value as <0x1530000 0x10000> as the ifc controller is on offset 0x1530000 and length 0xffff
Now I modified the dts and dtsi files as
dtsi:
ifc: ifc@1530000 {
compatible = "fsl,ifc","simple-bus";
reg = <0x0 0x1530000 0x0 0x10000>;
interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
status="okay";
};
dts:
&ifc {
status = "okay";
compatible = "fsl,ifc","simple-bus";
#address-cells = <2>;
#size-cells = <1>;
reg = <0x0 0x1530000 0x0 0x10000>;
ranges=<0x0 0x0 0x0 0x60000000 0x1000000>;
flash@0,0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "fsl,ifc-nand";
reg = <0x0 0x10000>;
bank-width = <2>;
device-width = <1>;
partition@0 {
/* 32MB for user data */
reg = <0x0 0x02000000>;
label = "NAND Data";
};
};
};
also I've provided some prints in the init and probe functions on driver file driver/memory/fsl_ifc.c. After changing the register value, I didn't get the kernel prints.
Thanks in Advance.