Honor the max-frequency property if it appears in the fdt data.
Adjust the exynos and zedboard dts files to use max-frequency (the documented standard property) instead of clock-frequency. Submitted by: Thomas Skibo <ThomasSkibo@sbcglobal.net>
This commit is contained in:
parent
b4ce42b4b8
commit
e625c10b2f
@ -126,7 +126,7 @@
|
||||
reg = <0x12200000 0x1000>;
|
||||
interrupts = <107>;
|
||||
interrupt-parent = <&GIC>;
|
||||
clock-frequency = <24000000>; /* TODO: verify freq */
|
||||
max-frequency = <24000000>; /* TODO: verify freq */
|
||||
};
|
||||
|
||||
sdhci@12210000 {
|
||||
@ -134,7 +134,7 @@
|
||||
reg = <0x12210000 0x1000>;
|
||||
interrupts = <108>;
|
||||
interrupt-parent = <&GIC>;
|
||||
clock-frequency = <24000000>;
|
||||
max-frequency = <24000000>;
|
||||
};
|
||||
|
||||
sdhci@12220000 {
|
||||
@ -142,7 +142,7 @@
|
||||
reg = <0x12220000 0x1000>;
|
||||
interrupts = <109>;
|
||||
interrupt-parent = <&GIC>;
|
||||
clock-frequency = <24000000>;
|
||||
max-frequency = <24000000>;
|
||||
};
|
||||
|
||||
sdhci@12230000 {
|
||||
@ -150,7 +150,7 @@
|
||||
reg = <0x12230000 0x1000>;
|
||||
interrupts = <110>;
|
||||
interrupt-parent = <&GIC>;
|
||||
clock-frequency = <24000000>;
|
||||
max-frequency = <24000000>;
|
||||
};
|
||||
|
||||
serial0: serial@12C00000 {
|
||||
|
@ -183,7 +183,7 @@
|
||||
reg = <0x100000 0x1000>;
|
||||
interrupts = <56>;
|
||||
interrupt-parent = <&GIC>;
|
||||
clock-frequency = <50000000>;
|
||||
max-frequency = <50000000>;
|
||||
};
|
||||
|
||||
// QSPI
|
||||
|
@ -66,6 +66,7 @@ struct sdhci_fdt_softc {
|
||||
device_t dev; /* Controller device */
|
||||
u_int quirks; /* Chip specific quirks */
|
||||
u_int caps; /* If we override SDHCI_CAPABILITIES */
|
||||
uint32_t max_clk; /* Max possible freq */
|
||||
struct resource *irq_res; /* IRQ resource */
|
||||
void *intrhand; /* Interrupt handle */
|
||||
|
||||
@ -156,6 +157,7 @@ sdhci_fdt_probe(device_t dev)
|
||||
|
||||
sc->quirks = 0;
|
||||
sc->num_slots = 1;
|
||||
sc->max_clk = 0;
|
||||
|
||||
if (!ofw_bus_status_okay(dev))
|
||||
return (ENXIO);
|
||||
@ -170,11 +172,14 @@ sdhci_fdt_probe(device_t dev)
|
||||
|
||||
node = ofw_bus_get_node(dev);
|
||||
|
||||
/* Allow dts to patch quirks and slots. */
|
||||
if ((OF_getprop(node, "quirks", &cid, sizeof(cid))) > 0)
|
||||
sc->quirks = fdt32_to_cpu(cid);
|
||||
if ((OF_getprop(node, "num-slots", &cid, sizeof(cid))) > 0)
|
||||
sc->num_slots = fdt32_to_cpu(cid);
|
||||
/* Allow dts to patch quirks, slots, and max-frequency. */
|
||||
if ((OF_getencprop(node, "quirks", &cid, sizeof(cid))) > 0)
|
||||
sc->quirks = cid;
|
||||
if ((OF_getencprop(node, "num-slots", &cid, sizeof(cid))) > 0)
|
||||
sc->num_slots = cid;
|
||||
if ((OF_getencprop(node, "max-frequency", &cid, sizeof(cid))) > 0)
|
||||
sc->max_clk = cid;
|
||||
|
||||
|
||||
return (0);
|
||||
}
|
||||
@ -214,6 +219,7 @@ sdhci_fdt_attach(device_t dev)
|
||||
|
||||
slot->quirks = sc->quirks;
|
||||
slot->caps = sc->caps;
|
||||
slot->max_clk = sc->max_clk;
|
||||
|
||||
if (sdhci_init_slot(dev, slot, i) != 0)
|
||||
continue;
|
||||
|
Loading…
Reference in New Issue
Block a user