X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=drivers%2Fspi%2Ftegra20_slink.c;h=dcd09508946c1b3b6e5cf3bacfcf2bca6aab8678;hb=c05ed00afb95fa5237f16962fccf5810437317bf;hp=238edec23ba59e65d9b90e0b8a0f485b5b9c66ce;hpb=45fe3809b9923b92f221d70eb45ae071059fd5e0;p=oweals%2Fu-boot.git diff --git a/drivers/spi/tegra20_slink.c b/drivers/spi/tegra20_slink.c index 238edec23b..dcd0950894 100644 --- a/drivers/spi/tegra20_slink.c +++ b/drivers/spi/tegra20_slink.c @@ -1,18 +1,20 @@ +// SPDX-License-Identifier: GPL-2.0 /* * NVIDIA Tegra SPI-SLINK controller * * Copyright (c) 2010-2013 NVIDIA Corporation - * - * SPDX-License-Identifier: GPL-2.0 */ #include #include +#include +#include #include #include #include #include #include +#include #include "tegra_spi.h" DECLARE_GLOBAL_DATA_PTR; @@ -94,10 +96,10 @@ static int tegra30_spi_ofdata_to_platdata(struct udevice *bus) { struct tegra_spi_platdata *plat = bus->platdata; const void *blob = gd->fdt_blob; - int node = bus->of_offset; + int node = dev_of_offset(bus); - plat->base = dev_get_addr(bus); - plat->periph_id = clock_decode_periph_id(blob, node); + plat->base = devfdt_get_addr(bus); + plat->periph_id = clock_decode_periph_id(bus); if (plat->periph_id == PERIPH_ID_NONE) { debug("%s: could not decode periph id %d\n", __func__, @@ -128,6 +130,10 @@ static int tegra30_spi_probe(struct udevice *bus) priv->freq = plat->frequency; priv->periph_id = plat->periph_id; + /* Change SPI clock to correct frequency, PLLP_OUT0 source */ + clock_start_periph_pll(priv->periph_id, CLOCK_ID_PERIPH, + priv->freq); + return 0; }