Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2c74b539 authored by Eric Anholt's avatar Eric Anholt Committed by Stephen Boyd
Browse files

clk: bcm2835: Add binding docs for the new platform clock driver.



Previously we've only supported a few fixed clocks based on
assumptions about how the firmware sets up the clocks, but this
binding will let us control the actual (audio power domain) clock
manager.

Signed-off-by: default avatarEric Anholt <eric@anholt.net>
Acked-by: default avatarStephen Warren <swarren@wwwdotorg.org>
Acked-by: default avatarLee Jones <lee@kernel.org>
Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
parent 4f61d8e2
Loading
Loading
Loading
Loading
+45 −0
Original line number Diff line number Diff line
Broadcom BCM2835 CPRMAN clocks

This binding uses the common clock binding:
    Documentation/devicetree/bindings/clock/clock-bindings.txt

The CPRMAN clock controller generates clocks in the audio power domain
of the BCM2835.  There is a level of PLLs deriving from an external
oscillator, a level of PLL dividers that produce channels off of the
few PLLs, and a level of mostly-generic clock generators sourcing from
the PLL channels.  Most other hardware components source from the
clock generators, but a few (like the ARM or HDMI) will source from
the PLL dividers directly.

Required properties:
- compatible:	Should be "brcm,bcm2835-cprman"
- #clock-cells:	Should be <1>. The permitted clock-specifier values can be
		  found in include/dt-bindings/clock/bcm2835.h
- reg:		Specifies base physical address and size of the registers
- clocks:	The external oscillator clock phandle

Example:

	clk_osc: clock@3 {
		compatible = "fixed-clock";
		reg = <3>;
		#clock-cells = <0>;
		clock-output-names = "osc";
		clock-frequency = <19200000>;
	};

	clocks: cprman@7e101000 {
		compatible = "brcm,bcm2835-cprman";
		#clock-cells = <1>;
		reg = <0x7e101000 0x2000>;
		clocks = <&clk_osc>;
	};

	i2c0: i2c@7e205000 {
		compatible = "brcm,bcm2835-i2c";
		reg = <0x7e205000 0x1000>;
		interrupts = <2 21>;
		clocks = <&clocks BCM2835_CLOCK_VPU>;
		#address-cells = <1>;
		#size-cells = <0>;
	};
+47 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2015 Broadcom Corporation
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation version 2.
 *
 * This program is distributed "as is" WITHOUT ANY WARRANTY of any
 * kind, whether express or implied; without even the implied warranty
 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#define BCM2835_PLLA			0
#define BCM2835_PLLB			1
#define BCM2835_PLLC			2
#define BCM2835_PLLD			3
#define BCM2835_PLLH			4

#define BCM2835_PLLA_CORE		5
#define BCM2835_PLLA_PER		6
#define BCM2835_PLLB_ARM		7
#define BCM2835_PLLC_CORE0		8
#define BCM2835_PLLC_CORE1		9
#define BCM2835_PLLC_CORE2		10
#define BCM2835_PLLC_PER		11
#define BCM2835_PLLD_CORE		12
#define BCM2835_PLLD_PER		13
#define BCM2835_PLLH_RCAL		14
#define BCM2835_PLLH_AUX		15
#define BCM2835_PLLH_PIX		16

#define BCM2835_CLOCK_TIMER		17
#define BCM2835_CLOCK_OTP		18
#define BCM2835_CLOCK_UART		19
#define BCM2835_CLOCK_VPU		20
#define BCM2835_CLOCK_V3D		21
#define BCM2835_CLOCK_ISP		22
#define BCM2835_CLOCK_H264		23
#define BCM2835_CLOCK_VEC		24
#define BCM2835_CLOCK_HSM		25
#define BCM2835_CLOCK_SDRAM		26
#define BCM2835_CLOCK_TSENS		27
#define BCM2835_CLOCK_EMMC		28
#define BCM2835_CLOCK_PERI_IMAGE	29

#define BCM2835_CLOCK_COUNT		30