- arm,filter-ranges : <start length> Starting address and length of window to
filter. Addresses in the filter window are directed to the M1 port. Other
addresses will go to the M0 port.
+- arm,dynamic-clk-gating : Enables dynamic clock gating (PL310)
+- arm,standby-mode : Enables standby mode (PL310)
- interrupts : 1 combined interrupt.
- cache-id-part: cache id part number to be used if it is not present
on hardware
cache-level = <2>;
arm,tag-latency = <4 2 3>;
arm,data-latency = <4 2 3>;
+ arm,dynamic-clk-gating;
+ arm,standby-mode;
};
pcie: pcie@0x01000000 {
cache-level = <2>;
arm,tag-latency = <4 2 3>;
arm,data-latency = <4 2 3>;
+ arm,dynamic-clk-gating;
+ arm,standby-mode;
};
pmu {
u32 data[3] = { 0, 0, 0 };
u32 tag[3] = { 0, 0, 0 };
u32 filter[2] = { 0, 0 };
+ u32 val;
of_property_read_u32_array(np, "arm,tag-latency", tag, ARRAY_SIZE(tag));
if (tag[0] && tag[1] && tag[2])
writel_relaxed((filter[0] & ~(SZ_1M - 1)) | L310_ADDR_FILTER_EN,
l2x0_base + L310_ADDR_FILTER_START);
}
+
+ val = 0;
+ if (of_property_read_bool(np, "arm,dynamic-clk-gating"))
+ val |= L310_DYNAMIC_CLK_GATING_EN;
+ if (of_property_read_bool(np, "arm,standby-mode"))
+ val |= L310_STNDBY_MODE_EN;
+
+ if (val)
+ l2c_write_sec(val, l2x0_base, L310_POWER_CTRL);
}
static const struct l2c_init_data of_l2c310_data __initconst = {