clk-raspberrypi.c (13b5cf8d6a0d4a5d289e1ed046cadc63b416db85) clk-raspberrypi.c (1a6052e1483f28808845e51a1c82c96e0e7cd419)
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Raspberry Pi driver for firmware controlled clocks
4 *
5 * Even though clk-bcm2835 provides an interface to the hardware registers for
6 * the system clocks we've had to factor out 'pllb' as the firmware 'owns' it.
7 * We're not allowed to change it directly as we might race with the
8 * over-temperature and under-voltage protections provided by the firmware.

--- 351 unchanged lines hidden (view full) ---

360 sizeof(*clks) * RPI_FIRMWARE_NUM_CLK_ID);
361 if (ret)
362 return ret;
363
364 while (clks->id) {
365 struct raspberrypi_clk_variant *variant;
366
367 if (clks->id > RPI_FIRMWARE_NUM_CLK_ID) {
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Raspberry Pi driver for firmware controlled clocks
4 *
5 * Even though clk-bcm2835 provides an interface to the hardware registers for
6 * the system clocks we've had to factor out 'pllb' as the firmware 'owns' it.
7 * We're not allowed to change it directly as we might race with the
8 * over-temperature and under-voltage protections provided by the firmware.

--- 351 unchanged lines hidden (view full) ---

360 sizeof(*clks) * RPI_FIRMWARE_NUM_CLK_ID);
361 if (ret)
362 return ret;
363
364 while (clks->id) {
365 struct raspberrypi_clk_variant *variant;
366
367 if (clks->id > RPI_FIRMWARE_NUM_CLK_ID) {
368 dev_err(rpi->dev, "Unknown clock id: %u\n", clks->id);
368 dev_err(rpi->dev, "Unknown clock id: %u (max: %u)\n",
369 clks->id, RPI_FIRMWARE_NUM_CLK_ID);
369 return -EINVAL;
370 }
371
372 variant = &raspberrypi_clk_variants[clks->id];
373 if (variant->export) {
374 struct clk_hw *hw;
375
376 hw = raspberrypi_clk_register(rpi, clks->parent,

--- 101 unchanged lines hidden ---
370 return -EINVAL;
371 }
372
373 variant = &raspberrypi_clk_variants[clks->id];
374 if (variant->export) {
375 struct clk_hw *hw;
376
377 hw = raspberrypi_clk_register(rpi, clks->parent,

--- 101 unchanged lines hidden ---