[PATCH v3 3/4] Document: dt: binding: imx: update clock doc for imx6sll

Shawn Guo shawnguo at kernel.org
Fri Feb 23 19:20:42 PST 2018


On Wed, Feb 07, 2018 at 10:00:18AM +0800, Bai Ping wrote:
> Add clock binding doc update for imx6sll.
> 
> Signed-off-by: Bai Ping <ping.bai at nxp.com>
> ---
> change from v2->v3:
>  - remove the leading 0s
>  - move the  imx6sll-clock.h to this patch.
> ---
>  .../devicetree/bindings/clock/imx6sll-clock.txt    |  37 ++++
>  include/dt-bindings/clock/imx6sll-clock.h          | 204 +++++++++++++++++++++
>  2 files changed, 241 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/clock/imx6sll-clock.txt
>  create mode 100644 include/dt-bindings/clock/imx6sll-clock.h
> 
> diff --git a/Documentation/devicetree/bindings/clock/imx6sll-clock.txt b/Documentation/devicetree/bindings/clock/imx6sll-clock.txt
> new file mode 100644
> index 0000000..b5d272f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/imx6sll-clock.txt
> @@ -0,0 +1,37 @@
> +* Clock bindings for Freescale i.MX6 SLL
> +
> +Required properties:
> +- compatible: Should be "fsl,imx6sll-ccm"
> +- reg: Address and length of the register set
> +- #clock-cells: Should be <1>
> +- clocks: list of clock specifiers, must contain an entry for each required
> +  entry in clock-names
> +- clock-names: should include entries "ckil", "osc", "ipp_di0" and "ipp_di1"
> +
> +The clock consumer should specify the desired clock by having the clock
> +ID in its "clocks" phandle cell.  See include/dt-bindings/clock/imx6sll-clock.h
> +for the full list of i.MX6 SLL clock IDs.
> +
> +Examples:
> +
> +#include <dt-bindings/clock/imx6sll-clock.h>
> +
> +clks: ccm at 20c4000 {

s/ccm/clock-controller

> +		compatible = "fsl,imx6sll-ccm";
> +		reg = <0x020c4000 0x4000>;
> +		interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
> +			     <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
> +		#clock-cells = <1>;
> +		clocks = <&ckil>, <&osc>, <&ipp_di0>, <&ipp_di1>;
> +		clock-names = "ckil", "osc", "ipp_di0", "ipp_di1";
> +};
> +
> +uart1: serial at 2020000 {
> +		compatible = "fsl,imx6sl-uart", "fsl,imx6q-uart", "fsl,imx21-uart";
> +		reg = <0x02020000 0x4000>;
> +		interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
> +		clocks = <&clks IMX6SLL_CLK_UART1_IPG>,
> +			 <&clks IMX6SLL_CLK_UART1_SERIAL>;
> +		clock-names = "ipg", "per";
> +		status = "disabled";

The status line can be dropped in example.

> +};
> diff --git a/include/dt-bindings/clock/imx6sll-clock.h b/include/dt-bindings/clock/imx6sll-clock.h
> new file mode 100644
> index 0000000..39c2567
> --- /dev/null
> +++ b/include/dt-bindings/clock/imx6sll-clock.h
> @@ -0,0 +1,204 @@
> +/*
> + * Copyright (C) 2016 Freescale Semiconductor, Inc.
> + *
> + * 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.

Can we use SPDX tag instead?  You can look at Lucas' i.MX8MQ clock patch
for example, or document Documentation/process/license-rules.rst for
details.

Shawn

> + *
> + */
> +
> +#ifndef __DT_BINDINGS_CLOCK_IMX6SLL_H
> +#define __DT_BINDINGS_CLOCK_IMX6SLL_H
> +
> +#define IMX6SLL_CLK_DUMMY		0
> +#define IMX6SLL_CLK_CKIL		1
> +#define IMX6SLL_CLK_OSC			2
> +#define IMX6SLL_PLL1_BYPASS_SRC		3
> +#define IMX6SLL_PLL2_BYPASS_SRC		4
> +#define IMX6SLL_PLL3_BYPASS_SRC		5
> +#define IMX6SLL_PLL4_BYPASS_SRC		6
> +#define IMX6SLL_PLL5_BYPASS_SRC		7
> +#define IMX6SLL_PLL6_BYPASS_SRC		8
> +#define IMX6SLL_PLL7_BYPASS_SRC		9
> +#define IMX6SLL_CLK_PLL1		10
> +#define IMX6SLL_CLK_PLL2		11
> +#define IMX6SLL_CLK_PLL3		12
> +#define IMX6SLL_CLK_PLL4		13
> +#define IMX6SLL_CLK_PLL5		14
> +#define IMX6SLL_CLK_PLL6		15
> +#define IMX6SLL_CLK_PLL7		16
> +#define IMX6SLL_PLL1_BYPASS		17
> +#define IMX6SLL_PLL2_BYPASS		18
> +#define IMX6SLL_PLL3_BYPASS		19
> +#define IMX6SLL_PLL4_BYPASS		20
> +#define IMX6SLL_PLL5_BYPASS		21
> +#define IMX6SLL_PLL6_BYPASS		22
> +#define IMX6SLL_PLL7_BYPASS		23
> +#define IMX6SLL_CLK_PLL1_SYS		24
> +#define IMX6SLL_CLK_PLL2_BUS		25
> +#define IMX6SLL_CLK_PLL3_USB_OTG	26
> +#define IMX6SLL_CLK_PLL4_AUDIO		27
> +#define IMX6SLL_CLK_PLL5_VIDEO		28
> +#define IMX6SLL_CLK_PLL6_ENET		29
> +#define IMX6SLL_CLK_PLL7_USB_HOST	30
> +#define IMX6SLL_CLK_USBPHY1		31
> +#define IMX6SLL_CLK_USBPHY2		32
> +#define IMX6SLL_CLK_USBPHY1_GATE	33
> +#define IMX6SLL_CLK_USBPHY2_GATE	34
> +#define IMX6SLL_CLK_PLL2_PFD0		35
> +#define IMX6SLL_CLK_PLL2_PFD1		36
> +#define IMX6SLL_CLK_PLL2_PFD2		37
> +#define IMX6SLL_CLK_PLL2_PFD3		38
> +#define IMX6SLL_CLK_PLL3_PFD0		39
> +#define IMX6SLL_CLK_PLL3_PFD1		40
> +#define IMX6SLL_CLK_PLL3_PFD2		41
> +#define IMX6SLL_CLK_PLL3_PFD3		42
> +#define IMX6SLL_CLK_PLL4_POST_DIV	43
> +#define IMX6SLL_CLK_PLL4_AUDIO_DIV	44
> +#define IMX6SLL_CLK_PLL5_POST_DIV	45
> +#define IMX6SLL_CLK_PLL5_VIDEO_DIV	46
> +#define IMX6SLL_CLK_PLL2_198M		47
> +#define IMX6SLL_CLK_PLL3_120M		48
> +#define IMX6SLL_CLK_PLL3_80M		49
> +#define IMX6SLL_CLK_PLL3_60M		50
> +#define IMX6SLL_CLK_STEP		51
> +#define IMX6SLL_CLK_PLL1_SW		52
> +#define IMX6SLL_CLK_AXI_ALT_SEL		53
> +#define IMX6SLL_CLK_AXI_SEL		54
> +#define IMX6SLL_CLK_PERIPH_PRE		55
> +#define IMX6SLL_CLK_PERIPH2_PRE		56
> +#define IMX6SLL_CLK_PERIPH_CLK2_SEL	57
> +#define IMX6SLL_CLK_PERIPH2_CLK2_SEL	58
> +#define IMX6SLL_CLK_PERCLK_SEL		59
> +#define IMX6SLL_CLK_USDHC1_SEL		60
> +#define IMX6SLL_CLK_USDHC2_SEL		61
> +#define IMX6SLL_CLK_USDHC3_SEL		62
> +#define IMX6SLL_CLK_SSI1_SEL		63
> +#define IMX6SLL_CLK_SSI2_SEL		64
> +#define IMX6SLL_CLK_SSI3_SEL		65
> +#define IMX6SLL_CLK_PXP_SEL		66
> +#define IMX6SLL_CLK_LCDIF_PRE_SEL	67
> +#define IMX6SLL_CLK_LCDIF_SEL		68
> +#define IMX6SLL_CLK_EPDC_PRE_SEL	69
> +#define IMX6SLL_CLK_SPDIF_SEL		70
> +#define IMX6SLL_CLK_ECSPI_SEL		71
> +#define IMX6SLL_CLK_UART_SEL		72
> +#define IMX6SLL_CLK_ARM			73
> +#define IMX6SLL_CLK_PERIPH		74
> +#define IMX6SLL_CLK_PERIPH2		75
> +#define IMX6SLL_CLK_PERIPH2_CLK2	76
> +#define IMX6SLL_CLK_PERIPH_CLK2		77
> +#define IMX6SLL_CLK_MMDC_PODF		78
> +#define IMX6SLL_CLK_AXI_PODF		79
> +#define IMX6SLL_CLK_AHB			80
> +#define IMX6SLL_CLK_IPG			81
> +#define IMX6SLL_CLK_PERCLK		82
> +#define IMX6SLL_CLK_USDHC1_PODF		83
> +#define IMX6SLL_CLK_USDHC2_PODF		84
> +#define IMX6SLL_CLK_USDHC3_PODF		85
> +#define IMX6SLL_CLK_SSI1_PRED		86
> +#define IMX6SLL_CLK_SSI2_PRED		87
> +#define IMX6SLL_CLK_SSI3_PRED		88
> +#define IMX6SLL_CLK_SSI1_PODF		89
> +#define IMX6SLL_CLK_SSI2_PODF		90
> +#define IMX6SLL_CLK_SSI3_PODF		91
> +#define IMX6SLL_CLK_PXP_PODF		92
> +#define IMX6SLL_CLK_LCDIF_PRED		93
> +#define IMX6SLL_CLK_LCDIF_PODF		94
> +#define IMX6SLL_CLK_EPDC_SEL		95
> +#define IMX6SLL_CLK_EPDC_PODF		96
> +#define IMX6SLL_CLK_SPDIF_PRED		97
> +#define IMX6SLL_CLK_SPDIF_PODF		98
> +#define IMX6SLL_CLK_ECSPI_PODF		99
> +#define IMX6SLL_CLK_UART_PODF		100
> +
> +/* CCGR 0 */
> +#define IMX6SLL_CLK_AIPSTZ1		101
> +#define IMX6SLL_CLK_AIPSTZ2		102
> +#define IMX6SLL_CLK_DCP			103
> +#define IMX6SLL_CLK_UART2_IPG		104
> +#define IMX6SLL_CLK_UART2_SERIAL	105
> +
> +/* CCGR 1 */
> +#define IMX6SLL_CLK_ECSPI1		106
> +#define IMX6SLL_CLK_ECSPI2		107
> +#define IMX6SLL_CLK_ECSPI3		108
> +#define IMX6SLL_CLK_ECSPI4		109
> +#define IMX6SLL_CLK_UART3_IPG		110
> +#define IMX6SLL_CLK_UART3_SERIAL	111
> +#define IMX6SLL_CLK_UART4_IPG		112
> +#define IMX6SLL_CLK_UART4_SERIAL	113
> +#define IMX6SLL_CLK_EPIT1		114
> +#define IMX6SLL_CLK_EPIT2		115
> +#define IMX6SLL_CLK_GPT_BUS		116
> +#define IMX6SLL_CLK_GPT_SERIAL		117
> +
> +/* CCGR2 */
> +#define IMX6SLL_CLK_CSI			118
> +#define IMX6SLL_CLK_I2C1		119
> +#define IMX6SLL_CLK_I2C2		120
> +#define IMX6SLL_CLK_I2C3		121
> +#define IMX6SLL_CLK_OCOTP		122
> +#define IMX6SLL_CLK_LCDIF_APB		123
> +#define IMX6SLL_CLK_PXP			124
> +
> +/* CCGR3 */
> +#define IMX6SLL_CLK_UART5_IPG		125
> +#define IMX6SLL_CLK_UART5_SERIAL	126
> +#define IMX6SLL_CLK_EPDC_AXI		127
> +#define IMX6SLL_CLK_EPDC_PIX		128
> +#define IMX6SLL_CLK_LCDIF_PIX		129
> +#define IMX6SLL_CLK_WDOG1		130
> +#define IMX6SLL_CLK_MMDC_P0_FAST	131
> +#define IMX6SLL_CLK_MMDC_P0_IPG		132
> +#define IMX6SLL_CLK_OCRAM		133
> +
> +/* CCGR4 */
> +#define IMX6SLL_CLK_PWM1		134
> +#define IMX6SLL_CLK_PWM2		135
> +#define IMX6SLL_CLK_PWM3		136
> +#define IMX6SLL_CLK_PWM4		137
> +
> +/* CCGR 5 */
> +#define IMX6SLL_CLK_ROM			138
> +#define IMX6SLL_CLK_SDMA		139
> +#define IMX6SLL_CLK_KPP			140
> +#define IMX6SLL_CLK_WDOG2		141
> +#define IMX6SLL_CLK_SPBA		142
> +#define IMX6SLL_CLK_SPDIF		143
> +#define IMX6SLL_CLK_SPDIF_GCLK		144
> +#define IMX6SLL_CLK_SSI1		145
> +#define IMX6SLL_CLK_SSI1_IPG		146
> +#define IMX6SLL_CLK_SSI2		147
> +#define IMX6SLL_CLK_SSI2_IPG		148
> +#define IMX6SLL_CLK_SSI3		149
> +#define IMX6SLL_CLK_SSI3_IPG		150
> +#define IMX6SLL_CLK_UART1_IPG		151
> +#define IMX6SLL_CLK_UART1_SERIAL	152
> +
> +/* CCGR 6 */
> +#define IMX6SLL_CLK_USBOH3		153
> +#define IMX6SLL_CLK_USDHC1		154
> +#define IMX6SLL_CLK_USDHC2		155
> +#define IMX6SLL_CLK_USDHC3		156
> +
> +#define IMX6SLL_CLK_IPP_DI0		157
> +#define IMX6SLL_CLK_IPP_DI1		158
> +#define IMX6SLL_CLK_LDB_DI0_SEL		159
> +#define IMX6SLL_CLK_LDB_DI0_DIV_3_5	160
> +#define IMX6SLL_CLK_LDB_DI0_DIV_7	161
> +#define IMX6SLL_CLK_LDB_DI0_DIV_SEL	162
> +#define IMX6SLL_CLK_LDB_DI0		163
> +#define IMX6SLL_CLK_LDB_DI1_SEL		164
> +#define IMX6SLL_CLK_LDB_DI1_DIV_3_5	165
> +#define IMX6SLL_CLK_LDB_DI1_DIV_7	166
> +#define IMX6SLL_CLK_LDB_DI1_DIV_SEL	167
> +#define IMX6SLL_CLK_LDB_DI1		168
> +#define IMX6SLL_CLK_EXTERN_AUDIO_SEL    169
> +#define IMX6SLL_CLK_EXTERN_AUDIO_PRED   170
> +#define IMX6SLL_CLK_EXTERN_AUDIO_PODF   171
> +#define IMX6SLL_CLK_EXTERN_AUDIO        172
> +
> +#define IMX6SLL_CLK_END			173
> +
> +#endif /* __DT_BINDINGS_CLOCK_IMX6SLL_H */
> -- 
> 1.9.1
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel



More information about the linux-arm-kernel mailing list