Commit a0be4737 authored by Olof Johansson's avatar Olof Johansson

Merge tag 'amlogic-dt' of...

Merge tag 'amlogic-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into arm/dt

ARM: dts: Amlogic updates for v5.6
- add DDR clock controller
- GPU OPP updates

* tag 'amlogic-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic:
  ARM: dts: meson8b: use the actual frequency for the GPU's 364MHz OPP
  ARM: dts: meson8: use the actual frequency for the GPU's 182.1MHz OPP
  ARM: dts: meson8b: fix the clock controller compatible string
  ARM: dts: meson8b: add the DDR clock controller
  ARM: dts: meson8: add the DDR clock controller
  ARM: dts: meson: provide the XTAL clock using a fixed-clock
  dt-bindings: clock: meson8b: add the clock inputs
  dt-bindings: clock: add the Amlogic Meson8 DDR clock controller binding

Link: https://lore.kernel.org/r/7hwo9udi7m.fsf@baylibre.comSigned-off-by: default avatarOlof Johansson <olof@lixom.net>
parents 5a74e85a c3dd3315
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/amlogic,meson8-ddr-clkc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Amlogic DDR Clock Controller Device Tree Bindings
maintainers:
- Martin Blumenstingl <martin.blumenstingl@googlemail.com>
properties:
compatible:
enum:
- amlogic,meson8-ddr-clkc
- amlogic,meson8b-ddr-clkc
reg:
maxItems: 1
clocks:
maxItems: 1
clock-names:
items:
- const: xtal
"#clock-cells":
const: 1
required:
- compatible
- reg
- clocks
- clock-names
- "#clock-cells"
additionalProperties: false
examples:
- |
ddr_clkc: clock-controller@400 {
compatible = "amlogic,meson8-ddr-clkc";
reg = <0x400 0x20>;
clocks = <&xtal>;
clock-names = "xtal";
#clock-cells = <1>;
};
...
...@@ -11,6 +11,11 @@ Required Properties: ...@@ -11,6 +11,11 @@ Required Properties:
- "amlogic,meson8m2-clkc" for Meson8m2 (S812) SoCs - "amlogic,meson8m2-clkc" for Meson8m2 (S812) SoCs
- #clock-cells: should be 1. - #clock-cells: should be 1.
- #reset-cells: should be 1. - #reset-cells: should be 1.
- clocks: list of clock phandles, one for each entry in clock-names
- clock-names: should contain the following:
* "xtal": the 24MHz system oscillator
* "ddr_pll": the DDR PLL clock
* "clk_32k": (if present) the 32kHz clock signal from GPIOAO_6 (CLK_32K_IN)
Parent node should have the following properties : Parent node should have the following properties :
- compatible: "amlogic,meson-hhi-sysctrl", "simple-mfd", "syscon" - compatible: "amlogic,meson-hhi-sysctrl", "simple-mfd", "syscon"
......
...@@ -282,4 +282,11 @@ efuse: nvmem@0 { ...@@ -282,4 +282,11 @@ efuse: nvmem@0 {
}; };
}; };
}; };
xtal: xtal-clk {
compatible = "fixed-clock";
clock-frequency = <24000000>;
clock-output-names = "xtal";
#clock-cells = <0>;
};
}; /* end of / */ }; /* end of / */
...@@ -36,13 +36,6 @@ apb2: bus@d0000000 { ...@@ -36,13 +36,6 @@ apb2: bus@d0000000 {
ranges = <0x0 0xd0000000 0x40000>; ranges = <0x0 0xd0000000 0x40000>;
}; };
xtal: xtal-clk {
compatible = "fixed-clock";
clock-frequency = <24000000>;
clock-output-names = "xtal";
#clock-cells = <0>;
};
clk81: clk@0 { clk81: clk@0 {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "fixed-clock"; compatible = "fixed-clock";
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
* Copyright 2014 Carlo Caione <carlo@caione.org> * Copyright 2014 Carlo Caione <carlo@caione.org>
*/ */
#include <dt-bindings/clock/meson8-ddr-clkc.h>
#include <dt-bindings/clock/meson8b-clkc.h> #include <dt-bindings/clock/meson8b-clkc.h>
#include <dt-bindings/gpio/meson8-gpio.h> #include <dt-bindings/gpio/meson8-gpio.h>
#include <dt-bindings/reset/amlogic,meson8b-clkc-reset.h> #include <dt-bindings/reset/amlogic,meson8b-clkc-reset.h>
...@@ -129,8 +130,8 @@ opp-1992000000 { ...@@ -129,8 +130,8 @@ opp-1992000000 {
gpu_opp_table: gpu-opp-table { gpu_opp_table: gpu-opp-table {
compatible = "operating-points-v2"; compatible = "operating-points-v2";
opp-182150000 { opp-182142857 {
opp-hz = /bits/ 64 <182150000>; opp-hz = /bits/ 64 <182142857>;
opp-microvolt = <1150000>; opp-microvolt = <1150000>;
}; };
opp-318750000 { opp-318750000 {
...@@ -195,6 +196,14 @@ mmcbus: bus@c8000000 { ...@@ -195,6 +196,14 @@ mmcbus: bus@c8000000 {
#size-cells = <1>; #size-cells = <1>;
ranges = <0x0 0xc8000000 0x8000>; ranges = <0x0 0xc8000000 0x8000>;
ddr_clkc: clock-controller@400 {
compatible = "amlogic,meson8-ddr-clkc";
reg = <0x400 0x20>;
clocks = <&xtal>;
clock-names = "xtal";
#clock-cells = <1>;
};
dmcbus: bus@6000 { dmcbus: bus@6000 {
compatible = "simple-bus"; compatible = "simple-bus";
reg = <0x6000 0x400>; reg = <0x6000 0x400>;
...@@ -455,6 +464,8 @@ &gpio_intc { ...@@ -455,6 +464,8 @@ &gpio_intc {
&hhi { &hhi {
clkc: clock-controller { clkc: clock-controller {
compatible = "amlogic,meson8-clkc"; compatible = "amlogic,meson8-clkc";
clocks = <&xtal>, <&ddr_clkc DDR_CLKID_DDR_PLL>;
clock-names = "xtal", "ddr_pll";
#clock-cells = <1>; #clock-cells = <1>;
#reset-cells = <1>; #reset-cells = <1>;
}; };
...@@ -529,8 +540,7 @@ &rtc { ...@@ -529,8 +540,7 @@ &rtc {
&saradc { &saradc {
compatible = "amlogic,meson8-saradc", "amlogic,meson-saradc"; compatible = "amlogic,meson8-saradc", "amlogic,meson-saradc";
clocks = <&clkc CLKID_XTAL>, clocks = <&xtal>, <&clkc CLKID_SAR_ADC>;
<&clkc CLKID_SAR_ADC>;
clock-names = "clkin", "core"; clock-names = "clkin", "core";
amlogic,hhi-sysctrl = <&hhi>; amlogic,hhi-sysctrl = <&hhi>;
nvmem-cells = <&temperature_calib>; nvmem-cells = <&temperature_calib>;
...@@ -548,31 +558,31 @@ &spifc { ...@@ -548,31 +558,31 @@ &spifc {
}; };
&timer_abcde { &timer_abcde {
clocks = <&clkc CLKID_XTAL>, <&clkc CLKID_CLK81>; clocks = <&xtal>, <&clkc CLKID_CLK81>;
clock-names = "xtal", "pclk"; clock-names = "xtal", "pclk";
}; };
&uart_AO { &uart_AO {
compatible = "amlogic,meson8-uart", "amlogic,meson-uart"; compatible = "amlogic,meson8-uart", "amlogic,meson-uart";
clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_XTAL>, <&clkc CLKID_CLK81>; clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_CLK81>;
clock-names = "baud", "xtal", "pclk"; clock-names = "baud", "xtal", "pclk";
}; };
&uart_A { &uart_A {
compatible = "amlogic,meson8-uart", "amlogic,meson-uart"; compatible = "amlogic,meson8-uart", "amlogic,meson-uart";
clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_XTAL>, <&clkc CLKID_UART0>; clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_UART0>;
clock-names = "baud", "xtal", "pclk"; clock-names = "baud", "xtal", "pclk";
}; };
&uart_B { &uart_B {
compatible = "amlogic,meson8-uart", "amlogic,meson-uart"; compatible = "amlogic,meson8-uart", "amlogic,meson-uart";
clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_XTAL>, <&clkc CLKID_UART1>; clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_UART1>;
clock-names = "baud", "xtal", "pclk"; clock-names = "baud", "xtal", "pclk";
}; };
&uart_C { &uart_C {
compatible = "amlogic,meson8-uart", "amlogic,meson-uart"; compatible = "amlogic,meson8-uart", "amlogic,meson-uart";
clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_XTAL>, <&clkc CLKID_UART2>; clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_UART2>;
clock-names = "baud", "xtal", "pclk"; clock-names = "baud", "xtal", "pclk";
}; };
......
...@@ -377,7 +377,7 @@ &pwm_cd { ...@@ -377,7 +377,7 @@ &pwm_cd {
status = "okay"; status = "okay";
pinctrl-0 = <&pwm_c1_pins>, <&pwm_d_pins>; pinctrl-0 = <&pwm_c1_pins>, <&pwm_d_pins>;
pinctrl-names = "default"; pinctrl-names = "default";
clocks = <&clkc CLKID_XTAL>, <&clkc CLKID_XTAL>; clocks = <&xtal>, <&xtal>;
clock-names = "clkin0", "clkin1"; clock-names = "clkin0", "clkin1";
}; };
......
...@@ -165,7 +165,7 @@ &pwm_cd { ...@@ -165,7 +165,7 @@ &pwm_cd {
status = "okay"; status = "okay";
pinctrl-0 = <&pwm_c1_pins>, <&pwm_d_pins>; pinctrl-0 = <&pwm_c1_pins>, <&pwm_d_pins>;
pinctrl-names = "default"; pinctrl-names = "default";
clocks = <&clkc CLKID_XTAL>, <&clkc CLKID_XTAL>; clocks = <&xtal>, <&xtal>;
clock-names = "clkin0", "clkin1"; clock-names = "clkin0", "clkin1";
}; };
......
...@@ -340,7 +340,7 @@ &pwm_cd { ...@@ -340,7 +340,7 @@ &pwm_cd {
status = "okay"; status = "okay";
pinctrl-0 = <&pwm_c1_pins>, <&pwm_d_pins>; pinctrl-0 = <&pwm_c1_pins>, <&pwm_d_pins>;
pinctrl-names = "default"; pinctrl-names = "default";
clocks = <&clkc CLKID_XTAL>, <&clkc CLKID_XTAL>; clocks = <&xtal>, <&xtal>;
clock-names = "clkin0", "clkin1"; clock-names = "clkin0", "clkin1";
}; };
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
* Author: Carlo Caione <carlo@endlessm.com> * Author: Carlo Caione <carlo@endlessm.com>
*/ */
#include <dt-bindings/clock/meson8-ddr-clkc.h>
#include <dt-bindings/clock/meson8b-clkc.h> #include <dt-bindings/clock/meson8b-clkc.h>
#include <dt-bindings/gpio/meson8b-gpio.h> #include <dt-bindings/gpio/meson8b-gpio.h>
#include <dt-bindings/reset/amlogic,meson8b-reset.h> #include <dt-bindings/reset/amlogic,meson8b-reset.h>
...@@ -125,8 +126,8 @@ opp-255000000 { ...@@ -125,8 +126,8 @@ opp-255000000 {
opp-hz = /bits/ 64 <255000000>; opp-hz = /bits/ 64 <255000000>;
opp-microvolt = <1100000>; opp-microvolt = <1100000>;
}; };
opp-364300000 { opp-364285714 {
opp-hz = /bits/ 64 <364300000>; opp-hz = /bits/ 64 <364285714>;
opp-microvolt = <1100000>; opp-microvolt = <1100000>;
}; };
opp-425000000 { opp-425000000 {
...@@ -172,6 +173,14 @@ mmcbus: bus@c8000000 { ...@@ -172,6 +173,14 @@ mmcbus: bus@c8000000 {
#size-cells = <1>; #size-cells = <1>;
ranges = <0x0 0xc8000000 0x8000>; ranges = <0x0 0xc8000000 0x8000>;
ddr_clkc: clock-controller@400 {
compatible = "amlogic,meson8b-ddr-clkc";
reg = <0x400 0x20>;
clocks = <&xtal>;
clock-names = "xtal";
#clock-cells = <1>;
};
dmcbus: bus@6000 { dmcbus: bus@6000 {
compatible = "simple-bus"; compatible = "simple-bus";
reg = <0x6000 0x400>; reg = <0x6000 0x400>;
...@@ -433,7 +442,9 @@ &gpio_intc { ...@@ -433,7 +442,9 @@ &gpio_intc {
&hhi { &hhi {
clkc: clock-controller { clkc: clock-controller {
compatible = "amlogic,meson8-clkc"; compatible = "amlogic,meson8b-clkc";
clocks = <&xtal>, <&ddr_clkc DDR_CLKID_DDR_PLL>;
clock-names = "xtal", "ddr_pll";
#clock-cells = <1>; #clock-cells = <1>;
#reset-cells = <1>; #reset-cells = <1>;
}; };
...@@ -508,8 +519,7 @@ &rtc { ...@@ -508,8 +519,7 @@ &rtc {
&saradc { &saradc {
compatible = "amlogic,meson8b-saradc", "amlogic,meson-saradc"; compatible = "amlogic,meson8b-saradc", "amlogic,meson-saradc";
clocks = <&clkc CLKID_XTAL>, clocks = <&xtal>, <&clkc CLKID_SAR_ADC>;
<&clkc CLKID_SAR_ADC>;
clock-names = "clkin", "core"; clock-names = "clkin", "core";
amlogic,hhi-sysctrl = <&hhi>; amlogic,hhi-sysctrl = <&hhi>;
nvmem-cells = <&temperature_calib>; nvmem-cells = <&temperature_calib>;
...@@ -523,31 +533,31 @@ &sdio { ...@@ -523,31 +533,31 @@ &sdio {
}; };
&timer_abcde { &timer_abcde {
clocks = <&clkc CLKID_XTAL>, <&clkc CLKID_CLK81>; clocks = <&xtal>, <&clkc CLKID_CLK81>;
clock-names = "xtal", "pclk"; clock-names = "xtal", "pclk";
}; };
&uart_AO { &uart_AO {
compatible = "amlogic,meson8b-uart", "amlogic,meson-uart"; compatible = "amlogic,meson8b-uart", "amlogic,meson-uart";
clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_XTAL>, <&clkc CLKID_CLK81>; clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_CLK81>;
clock-names = "baud", "xtal", "pclk"; clock-names = "baud", "xtal", "pclk";
}; };
&uart_A { &uart_A {
compatible = "amlogic,meson8b-uart", "amlogic,meson-uart"; compatible = "amlogic,meson8b-uart", "amlogic,meson-uart";
clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_XTAL>, <&clkc CLKID_UART0>; clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_UART0>;
clock-names = "baud", "xtal", "pclk"; clock-names = "baud", "xtal", "pclk";
}; };
&uart_B { &uart_B {
compatible = "amlogic,meson8b-uart", "amlogic,meson-uart"; compatible = "amlogic,meson8b-uart", "amlogic,meson-uart";
clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_XTAL>, <&clkc CLKID_UART1>; clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_UART1>;
clock-names = "baud", "xtal", "pclk"; clock-names = "baud", "xtal", "pclk";
}; };
&uart_C { &uart_C {
compatible = "amlogic,meson8b-uart", "amlogic,meson-uart"; compatible = "amlogic,meson8b-uart", "amlogic,meson-uart";
clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_XTAL>, <&clkc CLKID_UART2>; clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_UART2>;
clock-names = "baud", "xtal", "pclk"; clock-names = "baud", "xtal", "pclk";
}; };
......
/* SPDX-License-Identifier: GPL-2.0 */
#define DDR_CLKID_DDR_PLL_DCO 0
#define DDR_CLKID_DDR_PLL 1
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment