Amlogic 64-bit DT updates for v4.19

- new SoC: S805x
 - new board: S805x-based P241 board from Amlogic
 - AXG: add ADC support w/buttons, add pins for PDM, SPDIF
 - AXG: s400 board: preliminary support for audio
 - GX: nanopi-k2: add HDMI, CEC, CVBS support
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAltR/bgACgkQWTcYmtP7
 xmU66A//Zd528TID0tJ3xWkOexkfFrlscJteba/NT7ruGRXf56Kbe0pTc2z/8RuL
 ItcyLVTvPOxEro1w/imwNZXjFoXrrEmPRltjI2CKpCkEOijMp6MBJO08lSom82ti
 VN5OgWVQbtsx6XgsT5RfcJNvrBPobEuJzWirTQmrpt319rUnDIDYBa/spJCzY4TD
 jrI7Q5fY9NkxV2dVKjAsKrnjNWLFo0i6OF1eM0EyCCTYoa4vJ2Z6sAY2MZe0zXD3
 zteFJ4DriDP5VnYVTnbi/fnZEouPY7KuD8kcwxCCjmZu9jaKg7wsrSciIXKHf7AV
 zaNdFvVXPFKrRQXYaGsSAkP1QsxwE05FqnOkfKFU3CdxA+aeXDBcIRMwIxmovMS8
 Uuc1+qcINLaYRaypija9/D9SuMZz0QZz9Ga8g0oI44UEKsTKyf6DunN3UNIQVWwQ
 PFn43xRqpjEr9vGdTGas19bBtwkju16S2/xKn9wl+eaU4BEK5FL4PD3Oo2wHBsnv
 TMdWrlJ1hsmTO4ZvFS58zoQY938t4YXqAPBpcmlCsDDY857/t5J6Rke1Xhid/amT
 kV2JSWQ39Ow2fm5gf2ol3nKZ92qu6w1uCKvmA1yX370KQD48F/+eKb23QnA450Wp
 SWsOAozL77y5MHClbTfkHwKTKWBag1mAyTTcC8WruAaDhcGHHd4=
 =2Ab9
 -----END PGP SIGNATURE-----

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

Amlogic 64-bit DT updates for v4.19
- new SoC: S805x
- new board: S805x-based P241 board from Amlogic
- AXG: add ADC support w/buttons, add pins for PDM, SPDIF
- AXG: s400 board: preliminary support for audio
- GX: nanopi-k2: add HDMI, CEC, CVBS support

* tag 'amlogic-dt64-1' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic:
  ARM64: dts: meson-axg: add pdm pins
  ARM64: dts: meson-axg: add spdif input pins
  ARM64: dts: meson-axg: remove spdif out from gpio a7
  ARM64: dts: meson-axg: add adc buttons the S400
  ARM64: dts: meson-axg: remove vddio_ao18 from SoC dtsi
  ARM64: dts: meson-axg: add saradc support
  ARM64: dts: add S805X based P241 board
  dt-bindings: amlogic: Add support for GXL S805X and the P241 board
  ARM64: dts: amlogic: Add missing cooling device properties for CPUs
  ARM64: dts: meson-axg: add spdif output pins
  ARM64: dts: meson-axg: add s400 speaker amplifier
  ARM64: dts: meson-axg: add s400 main 12v supply
  ARM64: dts: meson-axg: add s400 microphone card leds
  ARM64: dts: meson-gxbb-nanopi-k2: Add HDMI, CEC and CVBS nodes
  ARM64: dts: meson-gx-p23x-q20x: move the wifi node to each board's .dts
  ARM64: dts: meson: enable the saradc node in meson-gx-p23x-q20x.dtsi

Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
Olof Johansson 2018-07-21 14:49:25 -07:00
commit 88657e9012
12 changed files with 570 additions and 25 deletions

View File

@ -41,6 +41,10 @@ Boards with the Amlogic Meson GXL S905D SoC shall have the following properties:
Required root node property:
compatible: "amlogic,s905d", "amlogic,meson-gxl";
Boards with the Amlogic Meson GXL S805X SoC shall have the following properties:
Required root node property:
compatible: "amlogic,s805x", "amlogic,meson-gxl";
Boards with the Amlogic Meson GXM S912 SoC shall have the following properties:
Required root node property:
compatible: "amlogic,s912", "amlogic,meson-gxm";
@ -79,6 +83,8 @@ Board compatible values (alphabetically, grouped by SoC):
- "amlogic,p230" (Meson gxl s905d)
- "amlogic,p231" (Meson gxl s905d)
- "amlogic,p241" (Meson gxl s805x)
- "amlogic,q200" (Meson gxm s912)
- "amlogic,q201" (Meson gxm s912)
- "khadas,vim2" (Meson gxm s912)

View File

@ -17,6 +17,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p230.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p231.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s805x-p241.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-khadas-vim2.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-nexbox-a1.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q200.dtb

View File

@ -6,16 +6,67 @@
/dts-v1/;
#include "meson-axg.dtsi"
#include <dt-bindings/input/input.h>
/ {
compatible = "amlogic,s400", "amlogic,a113d", "amlogic,meson-axg";
model = "Amlogic Meson AXG S400 Development Board";
adc_keys {
compatible = "adc-keys";
io-channels = <&saradc 0>;
io-channel-names = "buttons";
keyup-threshold-microvolt = <1800000>;
button-next {
label = "Next";
linux,code = <KEY_NEXT>;
press-threshold-microvolt = <1116000>; /* 62% */
};
button-prev {
label = "Previous";
linux,code = <KEY_PREVIOUS>;
press-threshold-microvolt = <900000>; /* 50% */
};
button-wifi {
label = "Wifi";
linux,code = <KEY_WLAN>;
press-threshold-microvolt = <684000>; /* 38% */
};
button-up {
label = "Volume Up";
linux,code = <KEY_VOLUMEUP>;
press-threshold-microvolt = <468000>; /* 26% */
};
button-down {
label = "Volume Down";
linux,code = <KEY_VOLUMEDOWN>;
press-threshold-microvolt = <252000>; /* 14% */
};
button-voice {
label = "Voice";
linux,code = <KEY_VOICECOMMAND>;
press-threshold-microvolt = <0>; /* 0% */
};
};
aliases {
serial0 = &uart_AO;
serial1 = &uart_A;
};
main_12v: regulator-main_12v {
compatible = "regulator-fixed";
regulator-name = "12V";
regulator-min-microvolt = <12000000>;
regulator-max-microvolt = <12000000>;
};
vddio_boot: regulator-vddio_boot {
compatible = "regulator-fixed";
regulator-name = "VDDIO_BOOT";
@ -62,6 +113,40 @@ wifi32k: wifi32k {
clock-frequency = <32768>;
pwms = <&pwm_ab 0 30518 0>; /* PWM_A at 32.768KHz */
};
speaker-leds {
compatible = "gpio-leds";
aled1 {
label = "speaker:aled1";
gpios = <&gpio_speaker 7 0>;
};
aled2 {
label = "speaker:aled2";
gpios = <&gpio_speaker 6 0>;
};
aled3 {
label = "speaker:aled3";
gpios = <&gpio_speaker 5 0>;
};
aled4 {
label = "speaker:aled4";
gpios = <&gpio_speaker 4 0>;
};
aled5 {
label = "speaker:aled5";
gpios = <&gpio_speaker 3 0>;
};
aled6 {
label = "speaker:aled6";
gpios = <&gpio_speaker 2 0>;
};
};
};
&ethmac {
@ -106,12 +191,33 @@ &i2c1 {
status = "okay";
pinctrl-0 = <&i2c1_z_pins>;
pinctrl-names = "default";
speaker_amp1: audio-codec@1b {
compatible = "ti,tas5707";
reg = <0x1b>;
reset-gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>;
#sound-dai-cells = <0>;
AVDD-supply = <&vcc_3v3>;
DVDD-supply = <&vcc_3v3>;
PVDD_A-supply = <&main_12v>;
PVDD_B-supply = <&main_12v>;
PVDD_C-supply = <&main_12v>;
PVDD_D-supply = <&main_12v>;
};
};
&i2c_AO {
status = "okay";
pinctrl-0 = <&i2c_ao_sck_10_pins>, <&i2c_ao_sda_11_pins>;
pinctrl-names = "default";
gpio_speaker: gpio-controller@1f {
compatible = "nxp,pca9557";
reg = <0x1f>;
gpio-controller;
#gpio-cells = <2>;
vcc-supply = <&vddao_3v3>;
};
};
&pwm_ab {
@ -166,3 +272,8 @@ brcmf: wifi@1 {
compatible = "brcm,bcm4329-fmac";
};
};
&saradc {
status = "okay";
vref-supply = <&vddio_ao18>;
};

View File

@ -477,6 +477,48 @@ mux {
};
};
pdm_dclk_a14_pins: pdm_dclk_a14 {
mux {
groups = "pdm_dclk_a14";
function = "pdm";
};
};
pdm_dclk_a19_pins: pdm_dclk_a19 {
mux {
groups = "pdm_dclk_a19";
function = "pdm";
};
};
pdm_din0_pins: pdm_din0 {
mux {
groups = "pdm_din0";
function = "pdm";
};
};
pdm_din1_pins: pdm_din1 {
mux {
groups = "pdm_din1";
function = "pdm";
};
};
pdm_din2_pins: pdm_din2 {
mux {
groups = "pdm_din2";
function = "pdm";
};
};
pdm_din3_pins: pdm_din3 {
mux {
groups = "pdm_din3";
function = "pdm";
};
};
pwm_a_a_pins: pwm_a_a {
mux {
groups = "pwm_a_a";
@ -561,6 +603,76 @@ mux {
};
};
spdif_in_z_pins: spdif_in_z {
mux {
groups = "spdif_in_z";
function = "spdif_in";
};
};
spdif_in_a1_pins: spdif_in_a1 {
mux {
groups = "spdif_in_a1";
function = "spdif_in";
};
};
spdif_in_a7_pins: spdif_in_a7 {
mux {
groups = "spdif_in_a7";
function = "spdif_in";
};
};
spdif_in_a19_pins: spdif_in_a19 {
mux {
groups = "spdif_in_a19";
function = "spdif_in";
};
};
spdif_in_a20_pins: spdif_in_a20 {
mux {
groups = "spdif_in_a20";
function = "spdif_in";
};
};
spdif_out_z_pins: spdif_out_z {
mux {
groups = "spdif_out_z";
function = "spdif_out";
};
};
spdif_out_a1_pins: spdif_out_a1 {
mux {
groups = "spdif_out_a1";
function = "spdif_out";
};
};
spdif_out_a11_pins: spdif_out_a11 {
mux {
groups = "spdif_out_a11";
function = "spdif_out";
};
};
spdif_out_a19_pins: spdif_out_a19 {
mux {
groups = "spdif_out_a19";
function = "spdif_out";
};
};
spdif_out_a20_pins: spdif_out_a20 {
mux {
groups = "spdif_out_a20";
function = "spdif_out";
};
};
spi0_pins: spi0 {
mux {
groups = "spi0_miso",
@ -1194,6 +1306,20 @@ ir: ir@8000 {
interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>;
status = "disabled";
};
saradc: adc@9000 {
compatible = "amlogic,meson-axg-saradc",
"amlogic,meson-saradc";
reg = <0x0 0x9000 0x0 0x38>;
#io-channel-cells = <1>;
interrupts = <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>;
clocks = <&xtal>,
<&clkc_AO CLKID_AO_SAR_ADC>,
<&clkc_AO CLKID_AO_SAR_ADC_CLK>,
<&clkc_AO CLKID_AO_SAR_ADC_SEL>;
clock-names = "clkin", "core", "adc_clk", "adc_sel";
status = "disabled";
};
};
};
};

View File

@ -35,6 +35,13 @@ hdmi_5v: regulator-hdmi-5v {
regulator-always-on;
};
vddio_ao18: regulator-vddio_ao18 {
compatible = "regulator-fixed";
regulator-name = "VDDIO_AO18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
vddio_boot: regulator-vddio_boot {
compatible = "regulator-fixed";
regulator-name = "VDDIO_BOOT";
@ -140,6 +147,11 @@ &pwm_ef {
clock-names = "clkin0";
};
&saradc {
status = "okay";
vref-supply = <&vddio_ao18>;
};
/* Wireless SDIO Module */
&sd_emmc_a {
status = "okay";
@ -160,11 +172,6 @@ &sd_emmc_a {
vmmc-supply = <&vddao_3v3>;
vqmmc-supply = <&vddio_boot>;
brcmf: wifi@1 {
reg = <1>;
compatible = "brcm,bcm4329-fmac";
};
};
/* SD card */

View File

@ -106,6 +106,42 @@ emmc_pwrseq: emmc-pwrseq {
compatible = "mmc-pwrseq-emmc";
reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
};
/* CVBS is available on CON1 pin 36, disabled by default */
cvbs-connector {
compatible = "composite-video-connector";
status = "disabled";
port {
cvbs_connector_in: endpoint {
remote-endpoint = <&cvbs_vdac_out>;
};
};
};
hdmi-connector {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_connector_in: endpoint {
remote-endpoint = <&hdmi_tx_tmds_out>;
};
};
};
};
&cec_AO {
status = "okay";
pinctrl-0 = <&ao_cec_pins>;
pinctrl-names = "default";
hdmi-phandle = <&hdmi_tx>;
};
&cvbs_vdac_port {
cvbs_vdac_out: endpoint {
remote-endpoint = <&cvbs_connector_in>;
};
};
&ethmac {
@ -137,6 +173,18 @@ eth_phy0: ethernet-phy@0 {
};
};
&hdmi_tx {
status = "okay";
pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
pinctrl-names = "default";
};
&hdmi_tx_tmds_port {
hdmi_tx_tmds_out: endpoint {
remote-endpoint = <&hdmi_connector_in>;
};
};
&ir {
status = "okay";
pinctrl-0 = <&remote_input_ao_pins>;

View File

@ -0,0 +1,218 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2018 BayLibre, SAS.
* Author: Neil Armstrong <narmstrong@baylibre.com>
* Author: Jerome Brunet <jbrunet@baylibre.com>
*/
/dts-v1/;
#include <dt-bindings/input/input.h>
#include "meson-gxl-s905x.dtsi"
/ {
compatible = "amlogic,p241", "amlogic,s805x", "amlogic,meson-gxl";
model = "Amlogic Meson GXL (S805X) P241 Development Board";
aliases {
serial0 = &uart_AO;
serial1 = &uart_A;
ethernet0 = &ethmac;
};
chosen {
stdout-path = "serial0:115200n8";
};
cvbs-connector {
compatible = "composite-video-connector";
port {
cvbs_connector_in: endpoint {
remote-endpoint = <&cvbs_vdac_out>;
};
};
};
emmc_pwrseq: emmc-pwrseq {
compatible = "mmc-pwrseq-emmc";
reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
};
hdmi-connector {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_connector_in: endpoint {
remote-endpoint = <&hdmi_tx_tmds_out>;
};
};
};
memory@0 {
device_type = "memory";
reg = <0x0 0x0 0x0 0x20000000>;
};
vddio_boot: regulator-vddio_boot {
compatible = "regulator-fixed";
regulator-name = "VDDIO_BOOT";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
vddao_3v3: regulator-vddao_3v3 {
compatible = "regulator-fixed";
regulator-name = "VDDAO_3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
vddio_ao18: regulator-vddio_ao18 {
compatible = "regulator-fixed";
regulator-name = "VDDIO_AO18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
vcc_3v3: regulator-vcc_3v3 {
compatible = "regulator-fixed";
regulator-name = "VCC_3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
emmc_pwrseq: emmc-pwrseq {
compatible = "mmc-pwrseq-emmc";
reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
};
wifi32k: wifi32k {
compatible = "pwm-clock";
#clock-cells = <0>;
clock-frequency = <32768>;
pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
};
sdio_pwrseq: sdio-pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
clocks = <&wifi32k>;
clock-names = "ext_clock";
};
};
&cec_AO {
status = "okay";
pinctrl-0 = <&ao_cec_pins>;
pinctrl-names = "default";
hdmi-phandle = <&hdmi_tx>;
};
&cvbs_vdac_port {
cvbs_vdac_out: endpoint {
remote-endpoint = <&cvbs_connector_in>;
};
};
&ethmac {
status = "okay";
};
&internal_phy {
pinctrl-0 = <&eth_link_led_pins>, <&eth_act_led_pins>;
pinctrl-names = "default";
};
&ir {
status = "okay";
pinctrl-0 = <&remote_input_ao_pins>;
pinctrl-names = "default";
};
&hdmi_tx {
status = "okay";
pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
pinctrl-names = "default";
};
&hdmi_tx_tmds_port {
hdmi_tx_tmds_out: endpoint {
remote-endpoint = <&hdmi_connector_in>;
};
};
&saradc {
status = "okay";
vref-supply = <&vddio_ao18>;
};
/* Wireless SDIO Module */
&sd_emmc_a {
status = "okay";
pinctrl-0 = <&sdio_pins>;
pinctrl-1 = <&sdio_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
#address-cells = <1>;
#size-cells = <0>;
bus-width = <4>;
cap-sd-highspeed;
max-frequency = <100000000>;
non-removable;
disable-wp;
mmc-pwrseq = <&sdio_pwrseq>;
vmmc-supply = <&vddao_3v3>;
vqmmc-supply = <&vddio_boot>;
};
/* eMMC */
&sd_emmc_c {
status = "okay";
pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
pinctrl-1 = <&emmc_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <8>;
cap-mmc-highspeed;
max-frequency = <200000000>;
non-removable;
disable-wp;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
mmc-pwrseq = <&emmc_pwrseq>;
vmmc-supply = <&vcc_3v3>;
vqmmc-supply = <&vddio_boot>;
};
&pwm_ef {
status = "okay";
pinctrl-0 = <&pwm_e_pins>;
pinctrl-names = "default";
clocks = <&clkc CLKID_FCLK_DIV4>;
clock-names = "clkin0";
};
/* This is connected to the Bluetooth module: */
&uart_A {
status = "okay";
pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
pinctrl-names = "default";
uart-has-rtscts;
};
&uart_AO {
status = "okay";
pinctrl-0 = <&uart_ao_a_pins>;
pinctrl-names = "default";
};
&usb0 {
status = "okay";
};

View File

@ -41,13 +41,6 @@ button@0 {
};
};
vddio_ao18: regulator-vddio_ao18 {
compatible = "regulator-fixed";
regulator-name = "VDDIO_AO18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
hdmi-connector {
compatible = "hdmi-connector";
type = "a";
@ -108,7 +101,9 @@ hdmi_tx_tmds_out: endpoint {
};
};
&saradc {
status = "okay";
vref-supply = <&vddio_ao18>;
&sd_emmc_a {
brcmf: wifi@1 {
reg = <1>;
compatible = "brcm,bcm4329-fmac";
};
};

View File

@ -19,3 +19,10 @@ &ethmac {
phy-mode = "rmii";
phy-handle = <&internal_phy>;
};
&sd_emmc_a {
brcmf: wifi@1 {
reg = <1>;
compatible = "brcm,bcm4329-fmac";
};
};

View File

@ -209,10 +209,34 @@ &cpu0 {
#cooling-cells = <2>;
};
&cpu1 {
#cooling-cells = <2>;
};
&cpu2 {
#cooling-cells = <2>;
};
&cpu3 {
#cooling-cells = <2>;
};
&cpu4 {
#cooling-cells = <2>;
};
&cpu5 {
#cooling-cells = <2>;
};
&cpu6 {
#cooling-cells = <2>;
};
&cpu7 {
#cooling-cells = <2>;
};
&ethmac {
pinctrl-0 = <&eth_pins>;
pinctrl-names = "default";

View File

@ -40,13 +40,6 @@ button@0 {
gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
};
};
vddio_ao18: regulator-vddio_ao18 {
compatible = "regulator-fixed";
regulator-name = "VDDIO_AO18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
};
/* Q200 has exclusive choice between internal or external PHY */
@ -79,7 +72,9 @@ external_phy: ethernet-phy@0 {
};
};
&saradc {
status = "okay";
vref-supply = <&vddio_ao18>;
&sd_emmc_a {
brcmf: wifi@1 {
reg = <1>;
compatible = "brcm,bcm4329-fmac";
};
};

View File

@ -19,3 +19,10 @@ &ethmac {
phy-mode = "rmii";
phy-handle = <&internal_phy>;
};
&sd_emmc_a {
brcmf: wifi@1 {
reg = <1>;
compatible = "brcm,bcm4329-fmac";
};
};