mirror of
https://github.com/ukui/kernel.git
synced 2026-03-09 10:07:04 -07:00
clk: sunxi-ng: Add A33 CCU support
This commit introduces the clocks found in the Allwinner A33 CCU. Since this SoC is very similar to the A23, and we share a significant share of the DTSI, the clock IDs that are going to be used will also be shared with the A23, hence the name of the various header files. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> Acked-by: Chen-Yu Tsai <wens@csie.org>
This commit is contained in:
@@ -4,6 +4,7 @@ Allwinner Clock Control Unit Binding
|
||||
Required properties :
|
||||
- compatible: must contain one of the following compatibles:
|
||||
- "allwinner,sun6i-a31-ccu"
|
||||
- "allwinner,sun8i-a33-ccu"
|
||||
- "allwinner,sun8i-h3-ccu"
|
||||
|
||||
- reg: Must contain the registers base address and length
|
||||
|
||||
@@ -65,6 +65,18 @@ config SUN6I_A31_CCU
|
||||
select SUNXI_CCU_PHASE
|
||||
default MACH_SUN6I
|
||||
|
||||
config SUN8I_A33_CCU
|
||||
bool "Support for the Allwinner A33 CCU"
|
||||
select SUNXI_CCU_DIV
|
||||
select SUNXI_CCU_MULT
|
||||
select SUNXI_CCU_NK
|
||||
select SUNXI_CCU_NKM
|
||||
select SUNXI_CCU_NKMP
|
||||
select SUNXI_CCU_NM
|
||||
select SUNXI_CCU_MP
|
||||
select SUNXI_CCU_PHASE
|
||||
default MACH_SUN8I
|
||||
|
||||
config SUN8I_H3_CCU
|
||||
bool "Support for the Allwinner H3 CCU"
|
||||
select SUNXI_CCU_DIV
|
||||
|
||||
@@ -19,4 +19,5 @@ obj-$(CONFIG_SUNXI_CCU_MP) += ccu_mp.o
|
||||
|
||||
# SoC support
|
||||
obj-$(CONFIG_SUN6I_A31_CCU) += ccu-sun6i-a31.o
|
||||
obj-$(CONFIG_SUN8I_A33_CCU) += ccu-sun8i-a33.o
|
||||
obj-$(CONFIG_SUN8I_H3_CCU) += ccu-sun8i-h3.o
|
||||
|
||||
63
drivers/clk/sunxi-ng/ccu-sun8i-a23-a33.h
Normal file
63
drivers/clk/sunxi-ng/ccu-sun8i-a23-a33.h
Normal file
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Copyright 2016 Maxime Ripard
|
||||
*
|
||||
* Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
*
|
||||
* 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; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef _CCU_SUN8I_A23_A33_H_
|
||||
#define _CCU_SUN8I_A23_A33_H_
|
||||
|
||||
#include <dt-bindings/clock/sun8i-a23-a33-ccu.h>
|
||||
#include <dt-bindings/reset/sun8i-a23-a33-ccu.h>
|
||||
|
||||
#define CLK_PLL_CPUX 0
|
||||
#define CLK_PLL_AUDIO_BASE 1
|
||||
#define CLK_PLL_AUDIO 2
|
||||
#define CLK_PLL_AUDIO_2X 3
|
||||
#define CLK_PLL_AUDIO_4X 4
|
||||
#define CLK_PLL_AUDIO_8X 5
|
||||
#define CLK_PLL_VIDEO 6
|
||||
#define CLK_PLL_VIDEO_2X 7
|
||||
#define CLK_PLL_VE 8
|
||||
#define CLK_PLL_DDR0 9
|
||||
#define CLK_PLL_PERIPH 10
|
||||
#define CLK_PLL_PERIPH_2X 11
|
||||
#define CLK_PLL_GPU 12
|
||||
#define CLK_PLL_MIPI 13
|
||||
#define CLK_PLL_HSIC 14
|
||||
#define CLK_PLL_DE 15
|
||||
#define CLK_PLL_DDR1 16
|
||||
#define CLK_PLL_DDR 17
|
||||
|
||||
/* The CPUX clock is exported */
|
||||
|
||||
#define CLK_AXI 19
|
||||
#define CLK_AHB1 20
|
||||
#define CLK_APB1 21
|
||||
#define CLK_APB2 22
|
||||
|
||||
/* All the bus gates are exported */
|
||||
|
||||
/* The first part of the mod clocks is exported */
|
||||
|
||||
#define CLK_DRAM 79
|
||||
|
||||
/* Some more module clocks are exported */
|
||||
|
||||
#define CLK_MBUS 95
|
||||
|
||||
/* And the last module clocks are exported */
|
||||
|
||||
#define CLK_NUMBER (CLK_ATS + 1)
|
||||
|
||||
#endif /* _CCU_SUN8I_A23_A33_H_ */
|
||||
780
drivers/clk/sunxi-ng/ccu-sun8i-a33.c
Normal file
780
drivers/clk/sunxi-ng/ccu-sun8i-a33.c
Normal file
File diff suppressed because it is too large
Load Diff
127
include/dt-bindings/clock/sun8i-a23-a33-ccu.h
Normal file
127
include/dt-bindings/clock/sun8i-a23-a33-ccu.h
Normal file
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This file 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; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_CLK_SUN8I_A23_A33_H_
|
||||
#define _DT_BINDINGS_CLK_SUN8I_A23_A33_H_
|
||||
|
||||
#define CLK_CPUX 18
|
||||
|
||||
#define CLK_BUS_MIPI_DSI 23
|
||||
#define CLK_BUS_SS 24
|
||||
#define CLK_BUS_DMA 25
|
||||
#define CLK_BUS_MMC0 26
|
||||
#define CLK_BUS_MMC1 27
|
||||
#define CLK_BUS_MMC2 28
|
||||
#define CLK_BUS_NAND 29
|
||||
#define CLK_BUS_DRAM 30
|
||||
#define CLK_BUS_HSTIMER 31
|
||||
#define CLK_BUS_SPI0 32
|
||||
#define CLK_BUS_SPI1 33
|
||||
#define CLK_BUS_OTG 34
|
||||
#define CLK_BUS_EHCI 35
|
||||
#define CLK_BUS_OHCI 36
|
||||
#define CLK_BUS_VE 37
|
||||
#define CLK_BUS_LCD 38
|
||||
#define CLK_BUS_CSI 39
|
||||
#define CLK_BUS_DE_BE 40
|
||||
#define CLK_BUS_DE_FE 41
|
||||
#define CLK_BUS_GPU 42
|
||||
#define CLK_BUS_MSGBOX 43
|
||||
#define CLK_BUS_SPINLOCK 44
|
||||
#define CLK_BUS_DRC 45
|
||||
#define CLK_BUS_SAT 46
|
||||
#define CLK_BUS_CODEC 47
|
||||
#define CLK_BUS_PIO 48
|
||||
#define CLK_BUS_I2S0 49
|
||||
#define CLK_BUS_I2S1 50
|
||||
#define CLK_BUS_I2C0 51
|
||||
#define CLK_BUS_I2C1 52
|
||||
#define CLK_BUS_I2C2 53
|
||||
#define CLK_BUS_UART0 54
|
||||
#define CLK_BUS_UART1 55
|
||||
#define CLK_BUS_UART2 56
|
||||
#define CLK_BUS_UART3 57
|
||||
#define CLK_BUS_UART4 58
|
||||
#define CLK_NAND 59
|
||||
#define CLK_MMC0 60
|
||||
#define CLK_MMC0_SAMPLE 61
|
||||
#define CLK_MMC0_OUTPUT 62
|
||||
#define CLK_MMC1 63
|
||||
#define CLK_MMC1_SAMPLE 64
|
||||
#define CLK_MMC1_OUTPUT 65
|
||||
#define CLK_MMC2 66
|
||||
#define CLK_MMC2_SAMPLE 67
|
||||
#define CLK_MMC2_OUTPUT 68
|
||||
#define CLK_SS 69
|
||||
#define CLK_SPI0 70
|
||||
#define CLK_SPI1 71
|
||||
#define CLK_I2S0 72
|
||||
#define CLK_I2S1 73
|
||||
#define CLK_USB_PHY0 74
|
||||
#define CLK_USB_PHY1 75
|
||||
#define CLK_USB_HSIC 76
|
||||
#define CLK_USB_HSIC_12M 77
|
||||
#define CLK_USB_OHCI 78
|
||||
|
||||
#define CLK_DRAM_VE 80
|
||||
#define CLK_DRAM_CSI 81
|
||||
#define CLK_DRAM_DRC 82
|
||||
#define CLK_DRAM_DE_FE 83
|
||||
#define CLK_DRAM_DE_BE 84
|
||||
#define CLK_DE_BE 85
|
||||
#define CLK_DE_FE 86
|
||||
#define CLK_LCD_CH0 87
|
||||
#define CLK_LCD_CH1 88
|
||||
#define CLK_CSI_SCLK 89
|
||||
#define CLK_CSI_MCLK 90
|
||||
#define CLK_VE 91
|
||||
#define CLK_AC_DIG 92
|
||||
#define CLK_AC_DIG_4X 93
|
||||
#define CLK_AVS 94
|
||||
|
||||
#define CLK_DSI_SCLK 96
|
||||
#define CLK_DSI_DPHY 97
|
||||
#define CLK_DRC 98
|
||||
#define CLK_GPU 99
|
||||
#define CLK_ATS 100
|
||||
|
||||
#endif /* _DT_BINDINGS_CLK_SUN8I_A23_A33_H_ */
|
||||
87
include/dt-bindings/reset/sun8i-a23-a33-ccu.h
Normal file
87
include/dt-bindings/reset/sun8i-a23-a33-ccu.h
Normal file
@@ -0,0 +1,87 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This file 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; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_RST_SUN8I_A23_A33_H_
|
||||
#define _DT_BINDINGS_RST_SUN8I_A23_A33_H_
|
||||
|
||||
#define RST_USB_PHY0 0
|
||||
#define RST_USB_PHY1 1
|
||||
#define RST_USB_HSIC 2
|
||||
#define RST_MBUS 3
|
||||
#define RST_BUS_MIPI_DSI 4
|
||||
#define RST_BUS_SS 5
|
||||
#define RST_BUS_DMA 6
|
||||
#define RST_BUS_MMC0 7
|
||||
#define RST_BUS_MMC1 8
|
||||
#define RST_BUS_MMC2 9
|
||||
#define RST_BUS_NAND 10
|
||||
#define RST_BUS_DRAM 11
|
||||
#define RST_BUS_HSTIMER 12
|
||||
#define RST_BUS_SPI0 13
|
||||
#define RST_BUS_SPI1 14
|
||||
#define RST_BUS_OTG 15
|
||||
#define RST_BUS_EHCI 16
|
||||
#define RST_BUS_OHCI 17
|
||||
#define RST_BUS_VE 18
|
||||
#define RST_BUS_LCD 19
|
||||
#define RST_BUS_CSI 20
|
||||
#define RST_BUS_DE_BE 21
|
||||
#define RST_BUS_DE_FE 22
|
||||
#define RST_BUS_GPU 23
|
||||
#define RST_BUS_MSGBOX 24
|
||||
#define RST_BUS_SPINLOCK 25
|
||||
#define RST_BUS_DRC 26
|
||||
#define RST_BUS_SAT 27
|
||||
#define RST_BUS_LVDS 28
|
||||
#define RST_BUS_CODEC 29
|
||||
#define RST_BUS_I2S0 30
|
||||
#define RST_BUS_I2S1 31
|
||||
#define RST_BUS_I2C0 32
|
||||
#define RST_BUS_I2C1 33
|
||||
#define RST_BUS_I2C2 34
|
||||
#define RST_BUS_UART0 35
|
||||
#define RST_BUS_UART1 36
|
||||
#define RST_BUS_UART2 37
|
||||
#define RST_BUS_UART3 38
|
||||
#define RST_BUS_UART4 39
|
||||
|
||||
#endif /* _DT_BINDINGS_RST_SUN8I_A23_A33_H_ */
|
||||
Reference in New Issue
Block a user