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:
Ian Lepore 2014-05-02 01:28:19 +00:00
parent b4ce42b4b8
commit e625c10b2f
3 changed files with 16 additions and 10 deletions

View File

@ -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 {

View File

@ -183,7 +183,7 @@
reg = <0x100000 0x1000>;
interrupts = <56>;
interrupt-parent = <&GIC>;
clock-frequency = <50000000>;
max-frequency = <50000000>;
};
// QSPI

View File

@ -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;