[PATCH v3 1/7] dt/bindings: Add binding for the Raspberry Pi clock provider

Lee Jones lee at kernel.org
Tue Jun 9 03:03:26 PDT 2015


If I were the Clock Maintainer, I would have probably missed this
patch.  You _must_ intimate which subsystem you are submitting to.

> The hardware clocks are not controllable by the ARM, so we have to
> make requests to the firmware to do so from the VPU side.  This will
> let us replace fixed clocks in our DT with actual clock control (and
> correct frequency information).
> 
> v2: Include the dt-bindings header in this commit instead of the next
>     one.  Make the clock indices match the firmware clock IDs.  Rename
>     the binding's compat string.  Move the firmware phandle to be
>     under a vendor-specific namespace.
> 
> Signed-off-by: Eric Anholt <eric at anholt.net>
> ---
>  .../clock/raspberrypi,bcm2835-firmware-clocks.txt  | 25 ++++++++++++++++++++++
>  include/dt-bindings/clk/raspberrypi.h              | 23 ++++++++++++++++++++
>  2 files changed, 48 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/clock/raspberrypi,bcm2835-firmware-clocks.txt
>  create mode 100644 include/dt-bindings/clk/raspberrypi.h
> 
> diff --git a/Documentation/devicetree/bindings/clock/raspberrypi,bcm2835-firmware-clocks.txt b/Documentation/devicetree/bindings/clock/raspberrypi,bcm2835-firmware-clocks.txt
> new file mode 100644
> index 0000000..0972602
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/raspberrypi,bcm2835-firmware-clocks.txt
> @@ -0,0 +1,25 @@
> +Raspberry Pi firmware clock provider.
> +
> +The Raspberry Pi architecture doesn't provide direct access to the
> +CLOCKMAN peripheral from the ARM side, so Linux has to make requests
> +to the VPU firmware to program them.
> +
> +This binding uses the common clock binding:
> +Documentation/devicetree/bindings/clock/clock-bindings.txt
> +
> +Required properties:
> +- compatible:		Should be "raspberrypi,bcm2835-firmware-clocks"
> +
> +- #clock-cells:		Shall have value <1>.  The permitted clock-specifier
> +			  values can be found in
> +			  include/dt-bindings/clk/raspberrypi.h.
> +
> +- raspberrypi,firmware:	Phandle to the firmware driver node.

I think 'firmware' is a candidate for a generic phandle name.

Apart from that, binding looks pretty inert:

Acked-by: Lee Jones <lee at kernel.org>

> +Example:
> +
> +firmware_clocks: firmware-clocks {
> +	compatible = "raspberrypi,bcm2835-firmware-clocks";
> +	#clock-cells = <1>;
> +	raspberrypi,firmware = <&firmware>;
> +};
> diff --git a/include/dt-bindings/clk/raspberrypi.h b/include/dt-bindings/clk/raspberrypi.h
> new file mode 100644
> index 0000000..ceec90f
> --- /dev/null
> +++ b/include/dt-bindings/clk/raspberrypi.h
> @@ -0,0 +1,23 @@
> +#/*
> + *  Copyright © 2015 Broadcom
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +#ifndef _DT_BINDINGS_CLK_RASPBERRYPI_H
> +#define _DT_BINDINGS_CLK_RASPBERRYPI_H
> +
> +#define RPI_CLOCK_EMMC	1
> +#define RPI_CLOCK_UART0	2
> +#define RPI_CLOCK_ARM	3
> +#define RPI_CLOCK_CORE	4
> +#define RPI_CLOCK_V3D	5
> +#define RPI_CLOCK_H264	6
> +#define RPI_CLOCK_ISP	7
> +#define RPI_CLOCK_SDRAM	8
> +#define RPI_CLOCK_PIXEL	9
> +#define RPI_CLOCK_PWM	10
> +
> +#endif



More information about the linux-arm-kernel mailing list