mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
meson64: current (5.10.y): ODROID N2(+) patchset rework for mainline u-boot, stability and rebootability (#3154)
- starting from Home Assistant OS (HASSOS) setup/patchset, which is stable with pure-mainline
- *huge thanks* to Stefan Agner (@agners) from Home Assistant for his work and help with this
- CONFIG_DRM_MESON=y fixes the order of shutdown callbacks, allowing it to reboot without patches
- this increases the kernel size a bit, due to some dependencies like DRM=y
- remove the shutdown revert patch, allowing other meson64 boards to mainline-reboot
- add fdt/no-map patch fixing the dreaded "SError Interrupt on CPU4" panics that plagued the N2
- move the N2 to mainline u-boot on current (rebased, already done)
- add SPI-enabling DTB variants, which allow writing to SPI NOR flash (and usage instructions in comments)
- add UBOOT_TARGET_MAP and write_uboot_platform_mtd to current, for nand-sata-install to SPI/USB goodness
- remove the UHS-enabling patch, to avoid 1.8v vs 3.3v mess. Make sure to use only A1-rated SD cards as recommended.
- change default cpufreq governor for 24h+ stability
- other patch cleanups:
- move deprecated/non-applying patch to need-check
- remove the HardKernel ODROID-specific reboot driver and DTS patches (odroid-reboot.c) which are now useless.
- remove documentation-only patches (we have enough patches in meson64 without those)
- remove duplicated SAR ADC patches
- remove multiple different and conflicting patches for DTS and emulated-PWM GPIO fan
- now using simple on/off GPIO fan at 30 celsius, unrelated to passive cooling
This commit is contained in:
@@ -6,11 +6,9 @@ FULL_DESKTOP="yes"
|
||||
FORCE_BOOTSCRIPT_UPDATE="yes"
|
||||
BOOT_LOGO="desktop"
|
||||
|
||||
# Odroid N2 requires Odroid's u-boot for stable operation for mainline kernel
|
||||
# and also for legacy booting. These vars will be handled by the family (meson-g12b.conf)
|
||||
# and possibibly in the future will be refactored into VENDOR=odroid.
|
||||
# 'edge' should use mainline, allowing for stabilizing development.
|
||||
USE_ODROID_UBOOT="legacy,current"
|
||||
# Odroid N2 requires Odroid's u-boot for legacy kernel booting.
|
||||
# These vars will be handled by the family (meson-g12b.conf)
|
||||
USE_ODROID_UBOOT="legacy"
|
||||
BOOTCONFIG="odroid-n2_defconfig" # For mainline uboot
|
||||
BOOTCONFIG_ODROID="odroidn2_config" # For odroid uboot
|
||||
BOOTSCRIPT_ODROID="boot-odroid-n2.ini:boot.ini" # For odroid uboot, default BOOTSCRIPT is boot-meson64.cmd for mainline (in meson64_common.inc)
|
||||
@@ -26,7 +24,7 @@ write_uboot_platform_mtd() {
|
||||
# MAX might be different for N2/N2+, for now use N2+'s
|
||||
CPUMIN=1000000
|
||||
CPUMAX=2400000
|
||||
GOVERNOR=ondemand # some people recommend performance to avoid random hangs after 24+ hours running.
|
||||
GOVERNOR=performance # some people recommend performance to avoid random hangs after 24+ hours running.
|
||||
|
||||
# U-boot has detection code for the ODROID boards.
|
||||
# https://github.com/u-boot/u-boot/blob/v2021.04/board/amlogic/odroid-n2/odroid-n2.c#L35-L106
|
||||
|
||||
@@ -4960,7 +4960,7 @@ CONFIG_IR_SERIAL_TRANSMITTER=y
|
||||
CONFIG_IR_SIR=m
|
||||
CONFIG_RC_XBOX_DVD=m
|
||||
CONFIG_IR_TOY=m
|
||||
CONFIG_CEC_CORE=m
|
||||
CONFIG_CEC_CORE=y
|
||||
CONFIG_CEC_NOTIFIER=y
|
||||
CONFIG_CEC_PIN=y
|
||||
# CONFIG_MEDIA_CEC_RC is not set
|
||||
@@ -5774,12 +5774,12 @@ CONFIG_DVB_DUMMY_FE=m
|
||||
#
|
||||
CONFIG_VGA_ARB=y
|
||||
CONFIG_VGA_ARB_MAX_GPUS=16
|
||||
CONFIG_DRM=m
|
||||
CONFIG_DRM=y
|
||||
CONFIG_DRM_MIPI_DBI=m
|
||||
CONFIG_DRM_MIPI_DSI=y
|
||||
# CONFIG_DRM_DP_AUX_CHARDEV is not set
|
||||
# CONFIG_DRM_DEBUG_SELFTEST is not set
|
||||
CONFIG_DRM_KMS_HELPER=m
|
||||
CONFIG_DRM_KMS_HELPER=y
|
||||
CONFIG_DRM_KMS_FB_HELPER=y
|
||||
# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set
|
||||
CONFIG_DRM_FBDEV_EMULATION=y
|
||||
@@ -5921,7 +5921,7 @@ CONFIG_DRM_ANALOGIX_ANX78XX=m
|
||||
CONFIG_DRM_ANALOGIX_DP=m
|
||||
# CONFIG_DRM_I2C_ADV7511 is not set
|
||||
CONFIG_DRM_CDNS_MHDP8546=m
|
||||
CONFIG_DRM_DW_HDMI=m
|
||||
CONFIG_DRM_DW_HDMI=y
|
||||
# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
|
||||
CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
|
||||
# CONFIG_DRM_DW_HDMI_CEC is not set
|
||||
@@ -5932,8 +5932,8 @@ CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
|
||||
# CONFIG_DRM_HISI_HIBMC is not set
|
||||
CONFIG_DRM_HISI_KIRIN=m
|
||||
# CONFIG_DRM_MXSFB is not set
|
||||
CONFIG_DRM_MESON=m
|
||||
CONFIG_DRM_MESON_DW_HDMI=m
|
||||
CONFIG_DRM_MESON=y
|
||||
CONFIG_DRM_MESON_DW_HDMI=y
|
||||
# CONFIG_DRM_CIRRUS_QEMU is not set
|
||||
CONFIG_DRM_GM12U320=m
|
||||
CONFIG_TINYDRM_HX8357D=m
|
||||
@@ -5955,7 +5955,7 @@ CONFIG_DRM_LEGACY=y
|
||||
# CONFIG_DRM_MGA is not set
|
||||
# CONFIG_DRM_VIA is not set
|
||||
# CONFIG_DRM_SAVAGE is not set
|
||||
CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=m
|
||||
CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
|
||||
|
||||
#
|
||||
# Frame buffer Devices
|
||||
@@ -7759,7 +7759,7 @@ CONFIG_RPMSG_QCOM_GLINK_RPM=y
|
||||
#
|
||||
# Amlogic SoC drivers
|
||||
#
|
||||
CONFIG_MESON_CANVAS=m
|
||||
CONFIG_MESON_CANVAS=y
|
||||
CONFIG_MESON_CLK_MEASURE=y
|
||||
CONFIG_MESON_GX_SOCINFO=y
|
||||
CONFIG_MESON_GX_PM_DOMAINS=y
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
From c7825747afd8bb975dc918f28e4afe8058a518f3 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Mon, 11 Jan 2021 13:58:31 +0000
|
||||
Subject: [PATCH 1/9] arm64: dts: meson: add i2c3/rtc nodes and rtc aliases to
|
||||
ODROID-N2 dtsi
|
||||
|
||||
Enable the onboard pcf8563 rtc hardware on ODROID N2/N2+ boards via the
|
||||
common dtsi. Also add aliases to ensure vrtc does not claim /dev/rtc0.
|
||||
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
|
||||
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
|
||||
Link: https://lore.kernel.org/r/20210111135831.2218-1-christianshewitt@gmail.com
|
||||
---
|
||||
.../boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 14 ++++++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
index 39a09661c5f6..b78be3e6974d 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
@@ -13,6 +13,8 @@ / {
|
||||
aliases {
|
||||
serial0 = &uart_AO;
|
||||
ethernet0 = ðmac;
|
||||
+ rtc0 = &rtc;
|
||||
+ rtc1 = &vrtc;
|
||||
};
|
||||
|
||||
dioo2133: audio-amplifier-0 {
|
||||
@@ -478,6 +480,18 @@ &ir {
|
||||
linux,rc-map-name = "rc-odroid";
|
||||
};
|
||||
|
||||
+&i2c3 {
|
||||
+ status = "okay";
|
||||
+ pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+
|
||||
+ rtc: rtc@51 {
|
||||
+ compatible = "nxp,pcf8563";
|
||||
+ reg = <0x51>;
|
||||
+ wakeup-source;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&pwm_ab {
|
||||
pinctrl-0 = <&pwm_a_e_pins>;
|
||||
pinctrl-names = "default";
|
||||
--
|
||||
2.32.0
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
From ec3b1240b428c5652ccb7fdadad217a2ff8ab4db Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <ec3b1240b428c5652ccb7fdadad217a2ff8ab4db.1627311993.git.stefan@agner.ch>
|
||||
In-Reply-To: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
|
||||
References: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
|
||||
From: Hyeonki Hong <hhk7734@gmail.com>
|
||||
Date: Wed, 7 Apr 2021 04:26:08 +0000
|
||||
Subject: [PATCH 2/9] arm64: dts: meson: add saradc node to ODROID N2/N2+
|
||||
|
||||
Add the meson saradc node to the ODROID N2/N2+ common dtsi.
|
||||
|
||||
Signed-off-by: Hyeonki Hong <hhk7734@gmail.com>
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
|
||||
Link: https://lore.kernel.org/r/20210407042609.9736-3-christianshewitt@gmail.com
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
index b78be3e6974d..8a5e132c4b79 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
@@ -508,6 +508,11 @@ &pwm_AO_cd {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&saradc {
|
||||
+ status = "okay";
|
||||
+ vref-supply = <&vddao_1v8>;
|
||||
+};
|
||||
+
|
||||
/* SD card */
|
||||
&sd_emmc_b {
|
||||
status = "okay";
|
||||
--
|
||||
2.32.0
|
||||
|
||||
@@ -1,18 +1,27 @@
|
||||
From abe827c2f577deecd87f04dcf06b0f26a607e79c Mon Sep 17 00:00:00 2001
|
||||
From 5ca49a58577f7e9e6f8e0b1cb7c97e756a0e921f Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <5ca49a58577f7e9e6f8e0b1cb7c97e756a0e921f.1627311993.git.stefan@agner.ch>
|
||||
In-Reply-To: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
|
||||
References: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
|
||||
From: Hyeonki Hong <hhk7734@gmail.com>
|
||||
Date: Fri, 13 Mar 2020 14:07:34 +0900
|
||||
Subject: [PATCH 05/74] ODROID-N2: arm64/dts: Add gpio-line-names
|
||||
Date: Wed, 7 Apr 2021 04:26:09 +0000
|
||||
Subject: [PATCH 3/9] arm64: dts: meson: add GPIO line names to ODROID N2/N2+
|
||||
|
||||
Change-Id: Ie5b40ea8885c324c81b4fa80a5bbe59b533b1b3a
|
||||
Add GPIO line-name identifiers to the ODROID N2/N2+ common dtsi.
|
||||
|
||||
Signed-off-by: Hyeonki Hong <hhk7734@gmail.com>
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
|
||||
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
|
||||
Link: https://lore.kernel.org/r/20210407042609.9736-4-christianshewitt@gmail.com
|
||||
---
|
||||
.../boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 45 +++++++++++++++++++
|
||||
.../dts/amlogic/meson-g12b-odroid-n2.dtsi | 45 +++++++++++++++++++
|
||||
1 file changed, 45 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
index e9d8d6bf4100..0bbd97997a42 100644
|
||||
index 8a5e132c4b79..41b2f9c96b5f 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
@@ -412,6 +412,51 @@ &frddr_c {
|
||||
@@ -446,6 +446,51 @@ &frddr_c {
|
||||
};
|
||||
|
||||
&gpio {
|
||||
@@ -65,5 +74,5 @@ index e9d8d6bf4100..0bbd97997a42 100644
|
||||
* WARNING: The USB Hub on the Odroid-N2 needs a reset signal
|
||||
* to be turned high in order to be detected by the USB Controller
|
||||
--
|
||||
2.25.1
|
||||
2.32.0
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
From 70e65f906389f7236fe9ad8e1c05dedac0d1988b Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <70e65f906389f7236fe9ad8e1c05dedac0d1988b.1627311993.git.stefan@agner.ch>
|
||||
In-Reply-To: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
|
||||
References: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Mon, 11 Jan 2021 11:20:48 +0100
|
||||
Subject: [PATCH 4/9] arm64: dts: meson: g12b: add power button support
|
||||
|
||||
Add power button support on J2 pin 11 (GPIOX_3 on the SoC side). The
|
||||
GPIO is low active, e.g. when connecting with pin 9 (GND) a power
|
||||
button press is triggered.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
index 41b2f9c96b5f..4b6bb7e74e25 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
@@ -39,6 +39,17 @@ emmc_pwrseq: emmc-pwrseq {
|
||||
reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
+ gpio-keys-polled {
|
||||
+ compatible = "gpio-keys-polled";
|
||||
+ poll-interval = <100>;
|
||||
+
|
||||
+ power-button {
|
||||
+ label = "power";
|
||||
+ linux,code = <KEY_POWER>;
|
||||
+ gpios = <&gpio GPIOX_3 GPIO_ACTIVE_LOW>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
--
|
||||
2.32.0
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
From 86d9151effff69d2a8fc2027a31dd60bd8c6eb05 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <86d9151effff69d2a8fc2027a31dd60bd8c6eb05.1627311993.git.stefan@agner.ch>
|
||||
In-Reply-To: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
|
||||
References: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Mon, 11 Jan 2021 11:38:54 +0100
|
||||
Subject: [PATCH 5/9] arm64: dts: meson: g12b: add GPIO fan support
|
||||
|
||||
Add simple GPIO fan node to support a fan on GPIO J8. Unfortunately the
|
||||
pad used to control the fan does not support real PWM, hence the RPM
|
||||
cannot be modulated.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
index 4b6bb7e74e25..e8a3ede698b5 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
@@ -39,6 +39,17 @@ emmc_pwrseq: emmc-pwrseq {
|
||||
reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
+ /*
|
||||
+ * 5V 80x80x10.8mm cooling fan from Hardkernel shop.
|
||||
+ */
|
||||
+ fan0: gpio-fan {
|
||||
+ #cooling-cells = <2>;
|
||||
+ compatible = "gpio-fan";
|
||||
+ gpio-fan,speed-map = <0 0 1600 1>;
|
||||
+ gpios = <&gpio_ao GPIOAO_10 GPIO_ACTIVE_HIGH>;
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
gpio-keys-polled {
|
||||
compatible = "gpio-keys-polled";
|
||||
poll-interval = <100>;
|
||||
--
|
||||
2.32.0
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
From f1120f132dbdf2e7f7acf328de55bbdce877d882 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <f1120f132dbdf2e7f7acf328de55bbdce877d882.1627311993.git.stefan@agner.ch>
|
||||
In-Reply-To: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
|
||||
References: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Mon, 11 Jan 2021 15:53:55 +0100
|
||||
Subject: [PATCH 6/9] arm64: dts: meson: g12b: odroid-n2: add fan as cooling
|
||||
device
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Add the GPIO fan as a cooling device for the CPU thermal zone. Since we
|
||||
have only full fan speed available with this, set the tripping point to
|
||||
30°C.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
.../dts/amlogic/meson-g12b-odroid-n2.dtsi | 38 +++++++++++++++++++
|
||||
1 file changed, 38 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
index e8a3ede698b5..dd345c6aa4b5 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
@@ -388,6 +388,44 @@ &clkc_audio {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&cpu_thermal {
|
||||
+ trips {
|
||||
+ cpu_warm: cpu_warm {
|
||||
+ hysteresis = <5000>;
|
||||
+ temperature = <30000>;
|
||||
+ type = "active";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ cooling-maps {
|
||||
+ map0 {
|
||||
+ cooling-device =
|
||||
+ <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||
+ trip = <&cpu_warm>;
|
||||
+ };
|
||||
+ map1 {
|
||||
+ trip = <&cpu_passive>;
|
||||
+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
+ <&cpu100 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
+ <&cpu101 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
+ <&cpu102 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
+ <&cpu103 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
+ <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||
+ };
|
||||
+ map2 {
|
||||
+ trip = <&cpu_hot>;
|
||||
+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
+ <&cpu100 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
+ <&cpu101 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
+ <&cpu102 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
+ <&cpu103 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
+ <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&cpu0 {
|
||||
cpu-supply = <&vddcpu_b>;
|
||||
operating-points-v2 = <&cpu_opp_table_0>;
|
||||
--
|
||||
2.32.0
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
From dcaf2dc71dd62487eb37561682934414a5795e0e Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <dcaf2dc71dd62487eb37561682934414a5795e0e.1627311993.git.stefan@agner.ch>
|
||||
In-Reply-To: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
|
||||
References: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
|
||||
From: Hyeonki Hong <hhk7734@gmail.com>
|
||||
Date: Fri, 27 Mar 2020 17:05:22 +0900
|
||||
Subject: [PATCH 7/9] arm64: dts: meson: add uart_A node
|
||||
|
||||
The UART_A is available through J3 pin 8/10 and documented to be
|
||||
available as UART by default.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
index dd345c6aa4b5..cec346178e3d 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
@@ -12,6 +12,7 @@
|
||||
/ {
|
||||
aliases {
|
||||
serial0 = &uart_AO;
|
||||
+ serial1 = &uart_A;
|
||||
ethernet0 = ðmac;
|
||||
rtc0 = &rtc;
|
||||
rtc1 = &vrtc;
|
||||
@@ -728,6 +729,12 @@ &toddr_c {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&uart_A {
|
||||
+ status = "okay";
|
||||
+ pinctrl-0 = <&uart_a_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+};
|
||||
+
|
||||
&uart_AO {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&uart_ao_a_pins>;
|
||||
--
|
||||
2.32.0
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
From d5d2d8b9eb93eab85af12f1844975903a7c5a879 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <d5d2d8b9eb93eab85af12f1844975903a7c5a879.1627311993.git.stefan@agner.ch>
|
||||
In-Reply-To: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
|
||||
References: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Thu, 29 Apr 2021 21:32:43 +0200
|
||||
Subject: [PATCH 8/9] arm64: dts: meson: add i2c2 node to ODROID N2/N2+
|
||||
|
||||
The J2 connectors pinout documents "I2C.SDA0/SCL0" on pin 3 and 5, which
|
||||
are connected to GPIOX_17/18. This GPIO allow to mux I2C to the second
|
||||
I2C instance. Enable i2c2 and use the appropriate pinmux.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
index cec346178e3d..f1c3356c78a0 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
@@ -586,6 +586,12 @@ &ir {
|
||||
linux,rc-map-name = "rc-odroid";
|
||||
};
|
||||
|
||||
+&i2c2 {
|
||||
+ status = "okay";
|
||||
+ pinctrl-0 = <&i2c2_sda_x_pins>, <&i2c2_sck_x_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+};
|
||||
+
|
||||
&i2c3 {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
|
||||
--
|
||||
2.32.0
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
From 19c34c0ceb6302b07e1017c426796c4cf7322d13 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <19c34c0ceb6302b07e1017c426796c4cf7322d13.1627311993.git.stefan@agner.ch>
|
||||
In-Reply-To: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
|
||||
References: <c7825747afd8bb975dc918f28e4afe8058a518f3.1627311993.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Mon, 26 Jul 2021 16:59:08 +0200
|
||||
Subject: [PATCH 9/9] Revert "of/fdt: Make sure no-map does not remove already
|
||||
reserved regions"
|
||||
|
||||
U-Boot on Hardkernel ODROID-N2 adds fdt "memreserve" entries alongside
|
||||
the reserved-memory nodes present in upstream Linux. This causes
|
||||
reserving memory with the no-map flag to fail:
|
||||
[ 0.000000] OF: fdt: Reserved memory: failed to reserve memory for node 'secmon@5000000': base 0x0000000005000000, size 3 MiB
|
||||
|
||||
This seems to cause kernel crashes such as:
|
||||
[129988.642342] SError Interrupt on CPU4, code 0xbf000000 -- SError
|
||||
|
||||
Restore the bahavior of Linux kernel 5.9 and older and don't fail
|
||||
updating the mapping with no-map.
|
||||
|
||||
This reverts commit 8a5a75e5e9e55de1cef5d83ca3589cb4899193ef.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
drivers/of/fdt.c | 10 +---------
|
||||
1 file changed, 1 insertion(+), 9 deletions(-)
|
||||
|
||||
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
|
||||
index 57ff31b6b1e4..7ef2246e0b1e 100644
|
||||
--- a/drivers/of/fdt.c
|
||||
+++ b/drivers/of/fdt.c
|
||||
@@ -1149,16 +1149,8 @@ int __init __weak early_init_dt_mark_hotplug_memory_arch(u64 base, u64 size)
|
||||
int __init __weak early_init_dt_reserve_memory_arch(phys_addr_t base,
|
||||
phys_addr_t size, bool nomap)
|
||||
{
|
||||
- if (nomap) {
|
||||
- /*
|
||||
- * If the memory is already reserved (by another region), we
|
||||
- * should not allow it to be marked nomap.
|
||||
- */
|
||||
- if (memblock_is_region_reserved(base, size))
|
||||
- return -EBUSY;
|
||||
-
|
||||
+ if (nomap)
|
||||
return memblock_mark_nomap(base, size);
|
||||
- }
|
||||
return memblock_reserve(base, size);
|
||||
}
|
||||
|
||||
--
|
||||
2.32.0
|
||||
|
||||
@@ -1,232 +0,0 @@
|
||||
From 8ccd5a823674a1c8542ebd84b09a78a1f0d5ad98 Mon Sep 17 00:00:00 2001
|
||||
From: ckkim <changkon12@gmail.com>
|
||||
Date: Tue, 6 Oct 2020 17:37:40 +0900
|
||||
Subject: [PATCH 73/75] ODROID-COMMON: power:reset: Add odroid support
|
||||
|
||||
Signed-off-by: ckkim <changkon12@gmail.com>
|
||||
Change-Id: I71955f76e5dbe0adb53a7cd62e747342c580209f
|
||||
---
|
||||
drivers/power/reset/Kconfig | 7 ++
|
||||
drivers/power/reset/Makefile | 1 +
|
||||
drivers/power/reset/odroid-reboot.c | 181 ++++++++++++++++++++++++++++
|
||||
3 files changed, 189 insertions(+)
|
||||
create mode 100644 drivers/power/reset/odroid-reboot.c
|
||||
|
||||
diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig
|
||||
index d55b3727e00e..e0807b456cb2 100644
|
||||
--- a/drivers/power/reset/Kconfig
|
||||
+++ b/drivers/power/reset/Kconfig
|
||||
@@ -9,6 +9,13 @@ menuconfig POWER_RESET
|
||||
|
||||
if POWER_RESET
|
||||
|
||||
+config POWER_RESET_ODROID
|
||||
+ bool "odroid reboot/power-off driver"
|
||||
+ depends on ARCH_MESON
|
||||
+ help
|
||||
+ This driver supports restart / power off board for amlogic
|
||||
+ g12a/g12b/sm1 SoCs
|
||||
+
|
||||
config POWER_RESET_AS3722
|
||||
bool "ams AS3722 power-off driver"
|
||||
depends on MFD_AS3722
|
||||
diff --git a/drivers/power/reset/Makefile b/drivers/power/reset/Makefile
|
||||
index c51eceba9ea3..c00146ac11d7 100644
|
||||
--- a/drivers/power/reset/Makefile
|
||||
+++ b/drivers/power/reset/Makefile
|
||||
@@ -1,4 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
+obj-$(CONFIG_POWER_RESET_ODROID) += odroid-reboot.o
|
||||
obj-$(CONFIG_POWER_RESET_AS3722) += as3722-poweroff.o
|
||||
obj-$(CONFIG_POWER_RESET_AT91_POWEROFF) += at91-poweroff.o
|
||||
obj-$(CONFIG_POWER_RESET_AT91_RESET) += at91-reset.o
|
||||
diff --git a/drivers/power/reset/odroid-reboot.c b/drivers/power/reset/odroid-reboot.c
|
||||
new file mode 100644
|
||||
index 000000000000..68092141fbbb
|
||||
--- /dev/null
|
||||
+++ b/drivers/power/reset/odroid-reboot.c
|
||||
@@ -0,0 +1,181 @@
|
||||
+/*
|
||||
+ * drivers/power/reset/odroid-reboot.c
|
||||
+ *
|
||||
+ * Copyright (C) 2017 Amlogic, Inc. All rights reserved.
|
||||
+ *
|
||||
+ * 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.
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#include <linux/delay.h>
|
||||
+#include <linux/err.h>
|
||||
+#include <linux/init.h>
|
||||
+#include <linux/kernel.h>
|
||||
+#include <linux/io.h>
|
||||
+#include <linux/of.h>
|
||||
+#include <linux/platform_device.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/reboot.h>
|
||||
+
|
||||
+#include <asm/system_misc.h>
|
||||
+
|
||||
+#include <asm/compiler.h>
|
||||
+#include <linux/kdebug.h>
|
||||
+#include <linux/arm-smccc.h>
|
||||
+
|
||||
+#include <linux/gpio.h>
|
||||
+#include <linux/of_gpio.h>
|
||||
+
|
||||
+int sd_vqsw;
|
||||
+int sd_vmmc;
|
||||
+int sd_vqen;
|
||||
+
|
||||
+static u32 psci_function_id_restart;
|
||||
+static u32 psci_function_id_poweroff;
|
||||
+
|
||||
+#define CHECK_RET(ret) { \
|
||||
+ if (ret) \
|
||||
+ pr_err("[%s] gpio op failed(%d) at line %d\n",\
|
||||
+ __func__, ret, __LINE__); \
|
||||
+}
|
||||
+
|
||||
+static noinline int __invoke_psci_fn_smc(u64 function_id, u64 arg0, u64 arg1,
|
||||
+ u64 arg2)
|
||||
+{
|
||||
+ struct arm_smccc_res res;
|
||||
+
|
||||
+ arm_smccc_smc((unsigned long)function_id,
|
||||
+ (unsigned long)arg0,
|
||||
+ (unsigned long)arg1,
|
||||
+ (unsigned long)arg2,
|
||||
+ 0, 0, 0, 0, &res);
|
||||
+ return res.a0;
|
||||
+}
|
||||
+
|
||||
+void odroid_card_reset(void)
|
||||
+{
|
||||
+ int ret = 0;
|
||||
+
|
||||
+ if ((sd_vqsw == 0) && (sd_vmmc == 0))
|
||||
+ return;
|
||||
+
|
||||
+ if (sd_vqen == 0) {
|
||||
+ gpio_free(sd_vqsw);
|
||||
+ gpio_free(sd_vmmc);
|
||||
+ ret = gpio_request_one(sd_vqsw,
|
||||
+ GPIOF_OUT_INIT_LOW, "REBOOT");
|
||||
+ CHECK_RET(ret);
|
||||
+ mdelay(10);
|
||||
+ ret = gpio_direction_output(sd_vqsw, 1);
|
||||
+ CHECK_RET(ret);
|
||||
+ ret = gpio_request_one(sd_vmmc,
|
||||
+ GPIOF_OUT_INIT_LOW, "REBOOT");
|
||||
+ CHECK_RET(ret);
|
||||
+ mdelay(10);
|
||||
+ ret = gpio_direction_output(sd_vqsw, 0);
|
||||
+ CHECK_RET(ret);
|
||||
+ ret = gpio_direction_output(sd_vmmc, 1);
|
||||
+ CHECK_RET(ret);
|
||||
+ mdelay(5);
|
||||
+ gpio_free(sd_vqsw);
|
||||
+ gpio_free(sd_vmmc);
|
||||
+ } else {
|
||||
+ gpio_free(sd_vqsw);
|
||||
+ gpio_free(sd_vqen);
|
||||
+ gpio_free(sd_vmmc);
|
||||
+
|
||||
+ ret = gpio_request_one(sd_vqsw,
|
||||
+ GPIOF_OUT_INIT_LOW, "REBOOT");
|
||||
+ CHECK_RET(ret);
|
||||
+ ret = gpio_request_one(sd_vqen,
|
||||
+ GPIOF_OUT_INIT_LOW, "REBOOT");
|
||||
+ CHECK_RET(ret);
|
||||
+ ret = gpio_request_one(sd_vmmc,
|
||||
+ GPIOF_OUT_INIT_LOW, "REBOOT");
|
||||
+ CHECK_RET(ret);
|
||||
+ mdelay(100);
|
||||
+ ret = gpio_direction_input(sd_vqen);
|
||||
+ CHECK_RET(ret);
|
||||
+ ret = gpio_direction_input(sd_vmmc);
|
||||
+ CHECK_RET(ret);
|
||||
+ ret = gpio_direction_input(sd_vqsw);
|
||||
+ CHECK_RET(ret);
|
||||
+ mdelay(5);
|
||||
+ gpio_free(sd_vqen);
|
||||
+ gpio_free(sd_vmmc);
|
||||
+ gpio_free(sd_vqsw);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void do_odroid_restart(enum reboot_mode reboot_mode, const char *cmd)
|
||||
+{
|
||||
+ odroid_card_reset();
|
||||
+ __invoke_psci_fn_smc(psci_function_id_restart,
|
||||
+ 0, 0, 0);
|
||||
+}
|
||||
+
|
||||
+static void do_odroid_poweroff(void)
|
||||
+{
|
||||
+ odroid_card_reset();
|
||||
+
|
||||
+ __invoke_psci_fn_smc(0x82000042, 1, 0, 0);
|
||||
+ __invoke_psci_fn_smc(psci_function_id_poweroff,
|
||||
+ 0, 0, 0);
|
||||
+}
|
||||
+
|
||||
+static int odroid_restart_probe(struct platform_device *pdev)
|
||||
+{
|
||||
+ struct device_node *of_node;
|
||||
+ u32 id;
|
||||
+
|
||||
+ if (!of_property_read_u32(pdev->dev.of_node, "sys_reset", &id)) {
|
||||
+ psci_function_id_restart = id;
|
||||
+ arm_pm_restart = do_odroid_restart;
|
||||
+ }
|
||||
+
|
||||
+ if (!of_property_read_u32(pdev->dev.of_node, "sys_poweroff", &id)) {
|
||||
+ psci_function_id_poweroff = id;
|
||||
+ pm_power_off = do_odroid_poweroff;
|
||||
+ }
|
||||
+
|
||||
+ of_node = pdev->dev.of_node;
|
||||
+
|
||||
+ sd_vqsw = of_get_named_gpio(of_node, "sd-vqsw", 0);
|
||||
+ if (!gpio_is_valid(sd_vqsw)) sd_vqsw = 0;
|
||||
+
|
||||
+ sd_vmmc = of_get_named_gpio(of_node, "sd-vmmc", 0);
|
||||
+ if (!gpio_is_valid(sd_vmmc)) sd_vmmc = 0;
|
||||
+
|
||||
+ sd_vqen = of_get_named_gpio(of_node, "sd-vqen", 0);
|
||||
+ if (!gpio_is_valid(sd_vqen)) sd_vqen = 0;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static const struct of_device_id of_odroid_restart_match[] = {
|
||||
+ { .compatible = "odroid,reboot", },
|
||||
+ {},
|
||||
+};
|
||||
+MODULE_DEVICE_TABLE(of, of_odroid_restart_match);
|
||||
+
|
||||
+static struct platform_driver odroid_restart_driver = {
|
||||
+ .probe = odroid_restart_probe,
|
||||
+ .driver = {
|
||||
+ .name = "odroid-restart",
|
||||
+ .of_match_table = of_match_ptr(of_odroid_restart_match),
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+static int __init odroid_restart_init(void)
|
||||
+{
|
||||
+ return platform_driver_register(&odroid_restart_driver);
|
||||
+}
|
||||
+device_initcall(odroid_restart_init);
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
From 090381e6bb3063bf9d9c7a4d103d03505c655559 Mon Sep 17 00:00:00 2001
|
||||
From: ckkim <changkon12@gmail.com>
|
||||
Date: Tue, 6 Oct 2020 17:49:18 +0900
|
||||
Subject: [PATCH 74/75] ODROID-C4: arm64:dts: reboot / power off support for
|
||||
ODROID-C4
|
||||
|
||||
Signed-off-by: ckkim <changkon12@gmail.com>
|
||||
Change-Id: I22316a4ab896a0d8511d2cb2c34ac00360bb44d1
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/meson64_odroidc4.dts | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson64_odroidc4.dts b/arch/arm64/boot/dts/amlogic/meson64_odroidc4.dts
|
||||
index 761702fc2170..ff1296a94be2 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts
|
||||
@@ -9,6 +9,16 @@
|
||||
/ {
|
||||
compatible = "hardkernel,odroid-c4", "amlogic,sm1";
|
||||
model = "Hardkernel ODROID-C4";
|
||||
+
|
||||
+ odroid-reboot {
|
||||
+ compatible = "odroid,reboot";
|
||||
+ sys_reset = <0x84000009>;
|
||||
+ sys_poweroff = <0x84000008>;
|
||||
+
|
||||
+ sd-vqen = <&gpio_ao GPIOE_2 GPIO_ACTIVE_HIGH>;
|
||||
+ sd-vqsw = <&gpio_ao GPIOAO_6 GPIO_ACTIVE_HIGH>;
|
||||
+ sd-vmmc = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
|
||||
+ };
|
||||
|
||||
aliases {
|
||||
ethernet0 = ðmac;
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
Index: arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2-spi.dts
|
||||
IDEA additional info:
|
||||
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
|
||||
<+>UTF-8
|
||||
===================================================================
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2-spi.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2-spi.dts
|
||||
new file mode 100644
|
||||
--- /dev/null (date 1630421486471)
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2-spi.dts (date 1630421486471)
|
||||
@@ -0,0 +1,11 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "meson-g12b-odroid-n2.dts"
|
||||
+
|
||||
+/ {
|
||||
+ model = "Hardkernel ODROID-N2 with SPI";
|
||||
+};
|
||||
+
|
||||
+#include "meson-g12b-odroid-n2-enable-spi.dtsi"
|
||||
Index: arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2-plus-spi.dts
|
||||
IDEA additional info:
|
||||
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
|
||||
<+>UTF-8
|
||||
===================================================================
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2-plus-spi.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2-plus-spi.dts
|
||||
new file mode 100644
|
||||
--- /dev/null (date 1630421477913)
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2-plus-spi.dts (date 1630421477913)
|
||||
@@ -0,0 +1,11 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "meson-g12b-odroid-n2-plus.dts"
|
||||
+
|
||||
+/ {
|
||||
+ model = "Hardkernel ODROID-N2Plus with SPI";
|
||||
+};
|
||||
+
|
||||
+#include "meson-g12b-odroid-n2-enable-spi.dtsi"
|
||||
Index: arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2-enable-spi.dtsi
|
||||
IDEA additional info:
|
||||
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
|
||||
<+>UTF-8
|
||||
===================================================================
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2-enable-spi.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2-enable-spi.dtsi
|
||||
new file mode 100644
|
||||
--- /dev/null (date 1630421525557)
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2-enable-spi.dtsi (date 1630421525557)
|
||||
@@ -0,0 +1,13 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+
|
||||
+/*
|
||||
+ * Replace emmc_data_8b_pins to emmc_data_4b_pins from sd_emmc_c pinctrl-0, and change bus-width to 4 then spifc can be enabled.
|
||||
+ */
|
||||
+&sd_emmc_c {
|
||||
+ pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_4b_pins>, <&emmc_ds_pins>;
|
||||
+ bus-width = <4>;
|
||||
+};
|
||||
+
|
||||
+&spifc {
|
||||
+ status = "okay";
|
||||
+};
|
||||
Index: arch/arm64/boot/dts/amlogic/Makefile
|
||||
IDEA additional info:
|
||||
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
|
||||
<+>UTF-8
|
||||
===================================================================
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
--- a/arch/arm64/boot/dts/amlogic/Makefile (revision b91db6a0b52e019b6bdabea3f1dbe36d85c7e52c)
|
||||
+++ b/arch/arm64/boot/dts/amlogic/Makefile (date 1630421076946)
|
||||
@@ -9,7 +9,9 @@
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-khadas-vim3.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-s922x-khadas-vim3.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2-spi.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2-plus.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2-plus-spi.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-ugoos-am6.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-kii-pro.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nanopi-k2.dtb
|
||||
@@ -1,25 +0,0 @@
|
||||
From 22ce3ced8b11ceb313dea2aab1bb8ac028320dbb Mon Sep 17 00:00:00 2001
|
||||
From: Igor Pecovnik <igor.pecovnik@gmail.com>
|
||||
Date: Tue, 15 Jun 2021 19:53:41 +0200
|
||||
Subject: [PATCH] Remove shutdown
|
||||
|
||||
Signed-off-by: Igor Pecovnik <igor.pecovnik@gmail.com>
|
||||
---
|
||||
drivers/gpu/drm/meson/meson_drv.c | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
|
||||
index 2753067c0..b591aee04 100644
|
||||
--- a/drivers/gpu/drm/meson/meson_drv.c
|
||||
+++ b/drivers/gpu/drm/meson/meson_drv.c
|
||||
@@ -564,7 +564,6 @@ static const struct dev_pm_ops meson_drv_pm_ops = {
|
||||
|
||||
static struct platform_driver meson_drm_platform_driver = {
|
||||
.probe = meson_drv_probe,
|
||||
- .shutdown = meson_drv_shutdown,
|
||||
.driver = {
|
||||
.name = "meson-drm",
|
||||
.of_match_table = dt_match,
|
||||
--
|
||||
Created with Armbian build tools https://github.com/armbian/build
|
||||
|
||||
@@ -1,20 +1,25 @@
|
||||
From d5d2d8b9eb93eab85af12f1844975903a7c5a879 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Thu, 29 Apr 2021 21:32:43 +0200
|
||||
Subject: [PATCH XXX] board-odroidc2-add-uartA-uartC
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
|
||||
index 1cc9dc6..9f48dff 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
|
||||
aliases {
|
||||
serial0 = &uart_AO;
|
||||
+ serial1 = &uart_A;
|
||||
+ serial2 = &uart_C;
|
||||
ethernet0 = ðmac;
|
||||
};
|
||||
|
||||
|
||||
@@ -290,6 +355,18 @@
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
|
||||
+&uart_A {
|
||||
+ status = "disabled";
|
||||
+ pinctrl-0 = <&uart_a_pins>;
|
||||
@@ -1,53 +0,0 @@
|
||||
From a248c9db1deae60a1d77d094599a81a1639976d1 Mon Sep 17 00:00:00 2001
|
||||
From: Boris Brezillon <boris.brezillon@collabora.com>
|
||||
Date: Tue, 22 Oct 2019 16:15:50 +0200
|
||||
Subject: [PATCH 065/101] FROMLIST: dt-bindings: display: bridge: lvds-codec:
|
||||
Add new bus-width prop
|
||||
|
||||
Add the bus-width property to describe the input bus format.
|
||||
|
||||
v10:
|
||||
* Add changelog to the commit message
|
||||
* Add Rob's R-b
|
||||
|
||||
v8 -> v9:
|
||||
* No changes
|
||||
|
||||
v7:
|
||||
* Rebase on top of lvds-codec changes
|
||||
* Drop the data-mapping property
|
||||
|
||||
v4 -> v6:
|
||||
* Not part of the series
|
||||
|
||||
v3:
|
||||
* New patch
|
||||
|
||||
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
|
||||
Reviewed-by: Rob Herring <robh@kernel.org>
|
||||
---
|
||||
.../devicetree/bindings/display/bridge/lvds-codec.yaml | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml b/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml
|
||||
index 8f373029f5d2..7c4e42f4de61 100644
|
||||
--- a/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml
|
||||
+++ b/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml
|
||||
@@ -55,6 +55,14 @@ properties:
|
||||
description: |
|
||||
For LVDS encoders, port 0 is the parallel input
|
||||
For LVDS decoders, port 0 is the LVDS input
|
||||
+ properties:
|
||||
+ bus-width:
|
||||
+ allOf:
|
||||
+ - $ref: /schemas/types.yaml#/definitions/uint32
|
||||
+ - enum: [18, 24]
|
||||
+ - default: 24
|
||||
+ description:
|
||||
+ Number of data lines used to transmit the RGB data.
|
||||
|
||||
port@1:
|
||||
type: object
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -1,173 +0,0 @@
|
||||
From a97f73e2f405892e47e27b7382b18a055c9cfec5 Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Brunet <jbrunet@baylibre.com>
|
||||
Date: Fri, 24 Jan 2020 15:40:25 +0100
|
||||
Subject: [PATCH 037/101] WIP: ASoC: meson: convert axg fifo to schema
|
||||
|
||||
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
|
||||
---
|
||||
.../bindings/sound/amlogic,axg-fifo.txt | 34 ------
|
||||
.../bindings/sound/amlogic,axg-fifo.yaml | 111 ++++++++++++++++++
|
||||
2 files changed, 111 insertions(+), 34 deletions(-)
|
||||
delete mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-fifo.txt
|
||||
create mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-fifo.yaml
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/sound/amlogic,axg-fifo.txt b/Documentation/devicetree/bindings/sound/amlogic,axg-fifo.txt
|
||||
deleted file mode 100644
|
||||
index fa4545ed81ca..000000000000
|
||||
--- a/Documentation/devicetree/bindings/sound/amlogic,axg-fifo.txt
|
||||
+++ /dev/null
|
||||
@@ -1,34 +0,0 @@
|
||||
-* Amlogic Audio FIFO controllers
|
||||
-
|
||||
-Required properties:
|
||||
-- compatible: 'amlogic,axg-toddr' or
|
||||
- 'amlogic,axg-toddr' or
|
||||
- 'amlogic,g12a-frddr' or
|
||||
- 'amlogic,g12a-toddr' or
|
||||
- 'amlogic,sm1-frddr' or
|
||||
- 'amlogic,sm1-toddr'
|
||||
-- reg: physical base address of the controller and length of memory
|
||||
- mapped region.
|
||||
-- interrupts: interrupt specifier for the fifo.
|
||||
-- clocks: phandle to the fifo peripheral clock provided by the audio
|
||||
- clock controller.
|
||||
-- resets: list of reset phandle, one for each entry reset-names.
|
||||
-- reset-names: should contain the following:
|
||||
- * "arb" : memory ARB line (required)
|
||||
- * "rst" : dedicated device reset line (optional)
|
||||
-- #sound-dai-cells: must be 0.
|
||||
-- amlogic,fifo-depth: The size of the controller's fifo in bytes. This
|
||||
- is useful for determining certain configuration such
|
||||
- as the flush threshold of the fifo
|
||||
-
|
||||
-Example of FRDDR A on the A113 SoC:
|
||||
-
|
||||
-frddr_a: audio-controller@1c0 {
|
||||
- compatible = "amlogic,axg-frddr";
|
||||
- reg = <0x0 0x1c0 0x0 0x1c>;
|
||||
- #sound-dai-cells = <0>;
|
||||
- interrupts = <GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
|
||||
- clocks = <&clkc_audio AUD_CLKID_FRDDR_A>;
|
||||
- resets = <&arb AXG_ARB_FRDDR_A>;
|
||||
- fifo-depth = <512>;
|
||||
-};
|
||||
diff --git a/Documentation/devicetree/bindings/sound/amlogic,axg-fifo.yaml b/Documentation/devicetree/bindings/sound/amlogic,axg-fifo.yaml
|
||||
new file mode 100644
|
||||
index 000000000000..d9fe4f624784
|
||||
--- /dev/null
|
||||
+++ b/Documentation/devicetree/bindings/sound/amlogic,axg-fifo.yaml
|
||||
@@ -0,0 +1,111 @@
|
||||
+# SPDX-License-Identifier: GPL-2.0
|
||||
+%YAML 1.2
|
||||
+---
|
||||
+$id: http://devicetree.org/schemas/sound/amlogic,axg-fifo.yaml#
|
||||
+$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
+
|
||||
+title: Amlogic AXG Audio FIFO controllers
|
||||
+
|
||||
+maintainers:
|
||||
+ - Jerome Brunet <jbrunet@baylibre.com>
|
||||
+
|
||||
+properties:
|
||||
+ $nodename:
|
||||
+ pattern: "^audio-controller@.*"
|
||||
+
|
||||
+ "#sound-dai-cells":
|
||||
+ const: 0
|
||||
+
|
||||
+ compatible:
|
||||
+ oneOf:
|
||||
+ - items:
|
||||
+ - const:
|
||||
+ amlogic,axg-toddr
|
||||
+ - items:
|
||||
+ - const:
|
||||
+ amlogic,axg-frddr
|
||||
+ - items:
|
||||
+ - enum:
|
||||
+ - amlogic,g12a-toddr
|
||||
+ - amlogic,sm1-toddr
|
||||
+ - const:
|
||||
+ amlogic,axg-toddr
|
||||
+ - items:
|
||||
+ - enum:
|
||||
+ - amlogic,g12a-frddr
|
||||
+ - amlogic,sm1-frddr
|
||||
+ - const:
|
||||
+ amlogic,axg-frddr
|
||||
+
|
||||
+ clocks:
|
||||
+ items:
|
||||
+ - description: Peripheral clock
|
||||
+
|
||||
+ interrupts:
|
||||
+ maxItems: 1
|
||||
+
|
||||
+ reg:
|
||||
+ maxItems: 1
|
||||
+
|
||||
+ resets:
|
||||
+ minItems: 1
|
||||
+ items:
|
||||
+ - description: Memory ARB line
|
||||
+ - description: Dedicated device reset line
|
||||
+
|
||||
+ reset-names:
|
||||
+ minItems: 1
|
||||
+ items:
|
||||
+ - const: arb
|
||||
+ - const: rst
|
||||
+
|
||||
+ amlogic,fifo-depth:
|
||||
+ $ref: /schemas/types.yaml#/definitions/uint32
|
||||
+ description: Size of the controller's fifo in bytes
|
||||
+
|
||||
+required:
|
||||
+ - "#sound-dai-cells"
|
||||
+ - compatible
|
||||
+ - interrupts
|
||||
+ - reg
|
||||
+ - clocks
|
||||
+ - resets
|
||||
+ - amlogic,fifo-depth
|
||||
+
|
||||
+if:
|
||||
+ properties:
|
||||
+ compatible:
|
||||
+ contains:
|
||||
+ enum:
|
||||
+ - amlogic,g12a-toddr
|
||||
+ - amlogic,sm1-toddr
|
||||
+ - amlogic,g12a-frddr
|
||||
+ - amlogic,sm1-frddr
|
||||
+then:
|
||||
+ properties:
|
||||
+ resets:
|
||||
+ minItems: 2
|
||||
+ reset-names:
|
||||
+ minItems: 2
|
||||
+ required:
|
||||
+ - reset-names
|
||||
+
|
||||
+examples:
|
||||
+ - |
|
||||
+ #include <dt-bindings/clock/axg-audio-clkc.h>
|
||||
+ #include <dt-bindings/interrupt-controller/irq.h>
|
||||
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
+ #include <dt-bindings/reset/amlogic,meson-axg-audio-arb.h>
|
||||
+ #include <dt-bindings/reset/amlogic,meson-g12a-audio-reset.h>
|
||||
+
|
||||
+ frddr_a: audio-controller@1c0 {
|
||||
+ compatible = "amlogic,g12a-frddr", "amlogic,axg-frddr";
|
||||
+ reg = <0x0 0x1c0 0x0 0x1c>;
|
||||
+ #sound-dai-cells = <0>;
|
||||
+ interrupts = <GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
|
||||
+ clocks = <&clkc_audio AUD_CLKID_FRDDR_A>;
|
||||
+ resets = <&arb AXG_ARB_FRDDR_A>, <&clkc_audio AUD_RESET_FRDDR_A>;
|
||||
+ reset-names = "arb", "rst";
|
||||
+ amlogic,fifo-depth = <512>;
|
||||
+ };
|
||||
+
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -1,136 +0,0 @@
|
||||
From 74524d2255deea105d57a441b266655a304b27f5 Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Brunet <jbrunet@baylibre.com>
|
||||
Date: Fri, 24 Jan 2020 12:13:40 +0100
|
||||
Subject: [PATCH 036/101] WIP: ASoC: meson: convert axg pdm to schema
|
||||
|
||||
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
|
||||
---
|
||||
.../bindings/sound/amlogic,axg-pdm.txt | 29 -------
|
||||
.../bindings/sound/amlogic,axg-pdm.yaml | 79 +++++++++++++++++++
|
||||
2 files changed, 79 insertions(+), 29 deletions(-)
|
||||
delete mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-pdm.txt
|
||||
create mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-pdm.yaml
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/sound/amlogic,axg-pdm.txt b/Documentation/devicetree/bindings/sound/amlogic,axg-pdm.txt
|
||||
deleted file mode 100644
|
||||
index 716878107a24..000000000000
|
||||
--- a/Documentation/devicetree/bindings/sound/amlogic,axg-pdm.txt
|
||||
+++ /dev/null
|
||||
@@ -1,29 +0,0 @@
|
||||
-* Amlogic Audio PDM input
|
||||
-
|
||||
-Required properties:
|
||||
-- compatible: 'amlogic,axg-pdm' or
|
||||
- 'amlogic,g12a-pdm' or
|
||||
- 'amlogic,sm1-pdm'
|
||||
-- reg: physical base address of the controller and length of memory
|
||||
- mapped region.
|
||||
-- clocks: list of clock phandle, one for each entry clock-names.
|
||||
-- clock-names: should contain the following:
|
||||
- * "pclk" : peripheral clock.
|
||||
- * "dclk" : pdm digital clock
|
||||
- * "sysclk" : dsp system clock
|
||||
-- #sound-dai-cells: must be 0.
|
||||
-
|
||||
-Optional property:
|
||||
-- resets: phandle to the dedicated reset line of the pdm input.
|
||||
-
|
||||
-Example of PDM on the A113 SoC:
|
||||
-
|
||||
-pdm: audio-controller@ff632000 {
|
||||
- compatible = "amlogic,axg-pdm";
|
||||
- reg = <0x0 0xff632000 0x0 0x34>;
|
||||
- #sound-dai-cells = <0>;
|
||||
- clocks = <&clkc_audio AUD_CLKID_PDM>,
|
||||
- <&clkc_audio AUD_CLKID_PDM_DCLK>,
|
||||
- <&clkc_audio AUD_CLKID_PDM_SYSCLK>;
|
||||
- clock-names = "pclk", "dclk", "sysclk";
|
||||
-};
|
||||
diff --git a/Documentation/devicetree/bindings/sound/amlogic,axg-pdm.yaml b/Documentation/devicetree/bindings/sound/amlogic,axg-pdm.yaml
|
||||
new file mode 100644
|
||||
index 000000000000..aa90b77e593d
|
||||
--- /dev/null
|
||||
+++ b/Documentation/devicetree/bindings/sound/amlogic,axg-pdm.yaml
|
||||
@@ -0,0 +1,79 @@
|
||||
+# SPDX-License-Identifier: GPL-2.0
|
||||
+%YAML 1.2
|
||||
+---
|
||||
+$id: http://devicetree.org/schemas/sound/amlogic,axg-pdm.yaml#
|
||||
+$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
+
|
||||
+title: Amlogic Audio AXG PDM input
|
||||
+
|
||||
+maintainers:
|
||||
+ - Jerome Brunet <jbrunet@baylibre.com>
|
||||
+
|
||||
+properties:
|
||||
+ $nodename:
|
||||
+ pattern: "^audio-controller@.*"
|
||||
+
|
||||
+ "#sound-dai-cells":
|
||||
+ const: 0
|
||||
+
|
||||
+ compatible:
|
||||
+ oneOf:
|
||||
+ - items:
|
||||
+ - enum:
|
||||
+ - amlogic,g12a-pdm
|
||||
+ - amlogic,sm1-pdm
|
||||
+ - const:
|
||||
+ amlogic,axg-pdm
|
||||
+ - items:
|
||||
+ - const:
|
||||
+ amlogic,axg-pdm
|
||||
+
|
||||
+ clocks:
|
||||
+ items:
|
||||
+ - description: Peripheral clock
|
||||
+ - description: PDM digital clock
|
||||
+ - description: DSP system clock
|
||||
+
|
||||
+ clock-names:
|
||||
+ items:
|
||||
+ - const: pclk
|
||||
+ - const: dclk
|
||||
+ - const: sysclk
|
||||
+
|
||||
+ reg:
|
||||
+ maxItems: 1
|
||||
+
|
||||
+ resets:
|
||||
+ maxItems: 1
|
||||
+
|
||||
+required:
|
||||
+ - "#sound-dai-cells"
|
||||
+ - compatible
|
||||
+ - reg
|
||||
+ - clocks
|
||||
+ - clock-names
|
||||
+
|
||||
+if:
|
||||
+ properties:
|
||||
+ compatible:
|
||||
+ contains:
|
||||
+ enum:
|
||||
+ - amlogic,g12a-pdm
|
||||
+ - amlogic,sm1-pdm
|
||||
+then:
|
||||
+ required:
|
||||
+ - resets
|
||||
+
|
||||
+examples:
|
||||
+ - |
|
||||
+ #include <dt-bindings/clock/axg-audio-clkc.h>
|
||||
+
|
||||
+ pdm: audio-controller@ff632000 {
|
||||
+ compatible = "amlogic,axg-pdm";
|
||||
+ reg = <0x0 0xff632000 0x0 0x34>;
|
||||
+ #sound-dai-cells = <0>;
|
||||
+ clocks = <&clkc_audio AUD_CLKID_PDM>,
|
||||
+ <&clkc_audio AUD_CLKID_PDM_DCLK>,
|
||||
+ <&clkc_audio AUD_CLKID_PDM_SYSCLK>;
|
||||
+ clock-names = "pclk", "dclk", "sysclk";
|
||||
+ };
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -1,334 +0,0 @@
|
||||
From 3b0d0fb9fb7faf1b00703693500a666be85209a0 Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Brunet <jbrunet@baylibre.com>
|
||||
Date: Fri, 24 Jan 2020 18:23:36 +0100
|
||||
Subject: [PATCH 041/101] WIP: ASoC: meson: convert axg sound card control to
|
||||
schema
|
||||
|
||||
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
|
||||
---
|
||||
.../bindings/sound/amlogic,axg-sound-card.txt | 124 ------------
|
||||
.../sound/amlogic,axg-sound-card.yaml | 181 ++++++++++++++++++
|
||||
2 files changed, 181 insertions(+), 124 deletions(-)
|
||||
delete mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-sound-card.txt
|
||||
create mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-sound-card.yaml
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/sound/amlogic,axg-sound-card.txt b/Documentation/devicetree/bindings/sound/amlogic,axg-sound-card.txt
|
||||
deleted file mode 100644
|
||||
index 80b411296480..000000000000
|
||||
--- a/Documentation/devicetree/bindings/sound/amlogic,axg-sound-card.txt
|
||||
+++ /dev/null
|
||||
@@ -1,124 +0,0 @@
|
||||
-Amlogic AXG sound card:
|
||||
-
|
||||
-Required properties:
|
||||
-
|
||||
-- compatible: "amlogic,axg-sound-card"
|
||||
-- model : User specified audio sound card name, one string
|
||||
-
|
||||
-Optional properties:
|
||||
-
|
||||
-- audio-aux-devs : List of phandles pointing to auxiliary devices
|
||||
-- audio-widgets : Please refer to widgets.txt.
|
||||
-- audio-routing : A list of the connections between audio components.
|
||||
-
|
||||
-Subnodes:
|
||||
-
|
||||
-- dai-link: Container for dai-link level properties and the CODEC
|
||||
- sub-nodes. There should be at least one (and probably more)
|
||||
- subnode of this type.
|
||||
-
|
||||
-Required dai-link properties:
|
||||
-
|
||||
-- sound-dai: phandle and port of the CPU DAI.
|
||||
-
|
||||
-Required TDM Backend dai-link properties:
|
||||
-- dai-format : CPU/CODEC common audio format
|
||||
-
|
||||
-Optional TDM Backend dai-link properties:
|
||||
-- dai-tdm-slot-rx-mask-{0,1,2,3}: Receive direction slot masks
|
||||
-- dai-tdm-slot-tx-mask-{0,1,2,3}: Transmit direction slot masks
|
||||
- When omitted, mask is assumed to have to no
|
||||
- slots. A valid must have at one slot, so at
|
||||
- least one these mask should be provided with
|
||||
- an enabled slot.
|
||||
-- dai-tdm-slot-num : Please refer to tdm-slot.txt.
|
||||
- If omitted, slot number is set to accommodate the largest
|
||||
- mask provided.
|
||||
-- dai-tdm-slot-width : Please refer to tdm-slot.txt. default to 32 if omitted.
|
||||
-- mclk-fs : Multiplication factor between stream rate and mclk
|
||||
-
|
||||
-Backend dai-link subnodes:
|
||||
-
|
||||
-- codec: dai-link representing backend links should have at least one subnode.
|
||||
- One subnode for each codec of the dai-link.
|
||||
- dai-link representing frontend links have no codec, therefore have no
|
||||
- subnodes
|
||||
-
|
||||
-Required codec subnodes properties:
|
||||
-
|
||||
-- sound-dai: phandle and port of the CODEC DAI.
|
||||
-
|
||||
-Optional codec subnodes properties:
|
||||
-
|
||||
-- dai-tdm-slot-tx-mask : Please refer to tdm-slot.txt.
|
||||
-- dai-tdm-slot-rx-mask : Please refer to tdm-slot.txt.
|
||||
-
|
||||
-Example:
|
||||
-
|
||||
-sound {
|
||||
- compatible = "amlogic,axg-sound-card";
|
||||
- model = "AXG-S420";
|
||||
- audio-aux-devs = <&tdmin_a>, <&tdmout_c>;
|
||||
- audio-widgets = "Line", "Lineout",
|
||||
- "Line", "Linein",
|
||||
- "Speaker", "Speaker1 Left",
|
||||
- "Speaker", "Speaker1 Right";
|
||||
- "Speaker", "Speaker2 Left",
|
||||
- "Speaker", "Speaker2 Right";
|
||||
- audio-routing = "TDMOUT_C IN 0", "FRDDR_A OUT 2",
|
||||
- "SPDIFOUT IN 0", "FRDDR_A OUT 3",
|
||||
- "TDM_C Playback", "TDMOUT_C OUT",
|
||||
- "TDMIN_A IN 2", "TDM_C Capture",
|
||||
- "TDMIN_A IN 5", "TDM_C Loopback",
|
||||
- "TODDR_A IN 0", "TDMIN_A OUT",
|
||||
- "Lineout", "Lineout AOUTL",
|
||||
- "Lineout", "Lineout AOUTR",
|
||||
- "Speaker1 Left", "SPK1 OUT_A",
|
||||
- "Speaker2 Left", "SPK2 OUT_A",
|
||||
- "Speaker1 Right", "SPK1 OUT_B",
|
||||
- "Speaker2 Right", "SPK2 OUT_B",
|
||||
- "Linein AINL", "Linein",
|
||||
- "Linein AINR", "Linein";
|
||||
-
|
||||
- dai-link@0 {
|
||||
- sound-dai = <&frddr_a>;
|
||||
- };
|
||||
-
|
||||
- dai-link@1 {
|
||||
- sound-dai = <&toddr_a>;
|
||||
- };
|
||||
-
|
||||
- dai-link@2 {
|
||||
- sound-dai = <&tdmif_c>;
|
||||
- dai-format = "i2s";
|
||||
- dai-tdm-slot-tx-mask-2 = <1 1>;
|
||||
- dai-tdm-slot-tx-mask-3 = <1 1>;
|
||||
- dai-tdm-slot-rx-mask-1 = <1 1>;
|
||||
- mclk-fs = <256>;
|
||||
-
|
||||
- codec@0 {
|
||||
- sound-dai = <&lineout>;
|
||||
- };
|
||||
-
|
||||
- codec@1 {
|
||||
- sound-dai = <&speaker_amp1>;
|
||||
- };
|
||||
-
|
||||
- codec@2 {
|
||||
- sound-dai = <&speaker_amp2>;
|
||||
- };
|
||||
-
|
||||
- codec@3 {
|
||||
- sound-dai = <&linein>;
|
||||
- };
|
||||
-
|
||||
- };
|
||||
-
|
||||
- dai-link@3 {
|
||||
- sound-dai = <&spdifout>;
|
||||
-
|
||||
- codec {
|
||||
- sound-dai = <&spdif_dit>;
|
||||
- };
|
||||
- };
|
||||
-};
|
||||
diff --git a/Documentation/devicetree/bindings/sound/amlogic,axg-sound-card.yaml b/Documentation/devicetree/bindings/sound/amlogic,axg-sound-card.yaml
|
||||
new file mode 100644
|
||||
index 000000000000..168d84b2dcb7
|
||||
--- /dev/null
|
||||
+++ b/Documentation/devicetree/bindings/sound/amlogic,axg-sound-card.yaml
|
||||
@@ -0,0 +1,181 @@
|
||||
+# SPDX-License-Identifier: GPL-2.0
|
||||
+%YAML 1.2
|
||||
+---
|
||||
+$id: http://devicetree.org/schemas/sound/amlogic,axg-sound-card.yaml#
|
||||
+$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
+
|
||||
+title: Amlogic AXG sound card
|
||||
+
|
||||
+maintainers:
|
||||
+ - Jerome Brunet <jbrunet@baylibre.com>
|
||||
+
|
||||
+properties:
|
||||
+ compatible:
|
||||
+ items:
|
||||
+ - const: amlogic,axg-sound-card
|
||||
+
|
||||
+ audio-aux-devs:
|
||||
+ $ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
+ description: list of auxiliary devices
|
||||
+
|
||||
+ audio-routing:
|
||||
+ $ref: /schemas/types.yaml#/definitions/non-unique-string-array
|
||||
+ minItems: 2
|
||||
+ description: |-
|
||||
+ A list of the connections between audio components. Each entry is a
|
||||
+ pair of strings, the first being the connection's sink, the second
|
||||
+ being the connection's source.
|
||||
+
|
||||
+ audio-widgets:
|
||||
+ $ref: /schemas/types.yaml#/definitions/non-unique-string-array
|
||||
+ minItems: 2
|
||||
+ description: |-
|
||||
+ A list off component DAPM widget. Each entry is a pair of strings,
|
||||
+ the first being the widget type, the second being the widget name
|
||||
+
|
||||
+ model:
|
||||
+ $ref: /schemas/types.yaml#/definitions/string
|
||||
+ description: User specified audio sound card name
|
||||
+
|
||||
+patternProperties:
|
||||
+ "^dai-link-[0-9]+$":
|
||||
+ type: object
|
||||
+ description: |-
|
||||
+ dai-link child nodes:
|
||||
+ Container for dai-link level properties and the CODEC sub-nodes.
|
||||
+ There should be at least one (and probably more) subnode of this type
|
||||
+
|
||||
+ properties:
|
||||
+ dai-format:
|
||||
+ $ref: /schemas/types.yaml#/definitions/string
|
||||
+ enum: [ i2s, left-j, dsp_a ]
|
||||
+
|
||||
+ dai-tdm-slot-num:
|
||||
+ $ref: /schemas/types.yaml#/definitions/uint32
|
||||
+ description: |
|
||||
+ Number of slots in use. If omitted, slot number is set to
|
||||
+ accommodate the largest mask provided.
|
||||
+ maximum: 32
|
||||
+
|
||||
+ dai-tdm-slot-width:
|
||||
+ $ref: /schemas/types.yaml#/definitions/uint32
|
||||
+ description: Width in bits for each slot
|
||||
+ enum: [ 8, 16, 20, 24, 32 ]
|
||||
+ default: 32
|
||||
+
|
||||
+ mclk-fs:
|
||||
+ $ref: /schemas/types.yaml#/definitions/uint32
|
||||
+ description: |-
|
||||
+ Multiplication factor between the frame rate and master clock
|
||||
+ rate
|
||||
+
|
||||
+ sound-dai:
|
||||
+ $ref: /schemas/types.yaml#/definitions/phandle
|
||||
+ description: phandle of the CPU DAI
|
||||
+
|
||||
+ patternProperties:
|
||||
+ "^dai-tdm-slot-(t|r)x-mask-[0-3]$":
|
||||
+ $ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
+ description: |-
|
||||
+ Transmit and receive cpu slot masks of each TDM lane
|
||||
+ When omitted, mask is assumed to have to no slots. A valid must have
|
||||
+ at one slot, so at least one these mask should be provided with
|
||||
+ an enabled slot.
|
||||
+
|
||||
+ "^codec-[0-9]+$":
|
||||
+ type: object
|
||||
+ description: |-
|
||||
+ Codecs:
|
||||
+ dai-link representing backend links should have at least one subnode.
|
||||
+ One subnode for each codec of the dai-link. dai-link representing
|
||||
+ frontend links have no codec, therefore have no subnodes
|
||||
+
|
||||
+ properties:
|
||||
+ sound-dai:
|
||||
+ $ref: /schemas/types.yaml#/definitions/phandle
|
||||
+ description: phandle of the codec DAI
|
||||
+
|
||||
+ patternProperties:
|
||||
+ "^dai-tdm-slot-(t|r)x-mask$":
|
||||
+ $ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
+ description: Transmit and receive codec slot masks
|
||||
+
|
||||
+ required:
|
||||
+ - sound-dai
|
||||
+
|
||||
+ required:
|
||||
+ - sound-dai
|
||||
+
|
||||
+required:
|
||||
+ - model
|
||||
+ - dai-link-0
|
||||
+
|
||||
+examples:
|
||||
+ - |
|
||||
+ sound {
|
||||
+ compatible = "amlogic,axg-sound-card";
|
||||
+ model = "AXG-S420";
|
||||
+ audio-aux-devs = <&tdmin_a>, <&tdmout_c>;
|
||||
+ audio-widgets = "Line", "Lineout",
|
||||
+ "Line", "Linein",
|
||||
+ "Speaker", "Speaker1 Left",
|
||||
+ "Speaker", "Speaker1 Right",
|
||||
+ "Speaker", "Speaker2 Left",
|
||||
+ "Speaker", "Speaker2 Right";
|
||||
+ audio-routing = "TDMOUT_C IN 0", "FRDDR_A OUT 2",
|
||||
+ "SPDIFOUT IN 0", "FRDDR_A OUT 3",
|
||||
+ "TDM_C Playback", "TDMOUT_C OUT",
|
||||
+ "TDMIN_A IN 2", "TDM_C Capture",
|
||||
+ "TDMIN_A IN 5", "TDM_C Loopback",
|
||||
+ "TODDR_A IN 0", "TDMIN_A OUT",
|
||||
+ "Lineout", "Lineout AOUTL",
|
||||
+ "Lineout", "Lineout AOUTR",
|
||||
+ "Speaker1 Left", "SPK1 OUT_A",
|
||||
+ "Speaker2 Left", "SPK2 OUT_A",
|
||||
+ "Speaker1 Right", "SPK1 OUT_B",
|
||||
+ "Speaker2 Right", "SPK2 OUT_B",
|
||||
+ "Linein AINL", "Linein",
|
||||
+ "Linein AINR", "Linein";
|
||||
+
|
||||
+ dai-link-0 {
|
||||
+ sound-dai = <&frddr_a>;
|
||||
+ };
|
||||
+
|
||||
+ dai-link-1 {
|
||||
+ sound-dai = <&toddr_a>;
|
||||
+ };
|
||||
+
|
||||
+ dai-link-2 {
|
||||
+ sound-dai = <&tdmif_c>;
|
||||
+ dai-format = "i2s";
|
||||
+ dai-tdm-slot-tx-mask-2 = <1 1>;
|
||||
+ dai-tdm-slot-tx-mask-3 = <1 1>;
|
||||
+ dai-tdm-slot-rx-mask-1 = <1 1>;
|
||||
+ mclk-fs = <256>;
|
||||
+
|
||||
+ codec-0 {
|
||||
+ sound-dai = <&lineout>;
|
||||
+ };
|
||||
+
|
||||
+ codec-1 {
|
||||
+ sound-dai = <&speaker_amp1>;
|
||||
+ };
|
||||
+
|
||||
+ codec-2 {
|
||||
+ sound-dai = <&speaker_amp2>;
|
||||
+ };
|
||||
+
|
||||
+ codec-3 {
|
||||
+ sound-dai = <&linein>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ dai-link@3 {
|
||||
+ sound-dai = <&spdifout>;
|
||||
+
|
||||
+ codec {
|
||||
+ sound-dai = <&spdif_dit>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -1,139 +0,0 @@
|
||||
From d44d6ce650b53d6a05279113e77634405e87e589 Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Brunet <jbrunet@baylibre.com>
|
||||
Date: Fri, 24 Jan 2020 15:52:03 +0100
|
||||
Subject: [PATCH 038/101] WIP: ASoC: meson: convert axg spdif input to schema
|
||||
|
||||
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
|
||||
---
|
||||
.../bindings/sound/amlogic,axg-spdifin.txt | 27 ------
|
||||
.../bindings/sound/amlogic,axg-spdifin.yaml | 84 +++++++++++++++++++
|
||||
2 files changed, 84 insertions(+), 27 deletions(-)
|
||||
delete mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-spdifin.txt
|
||||
create mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-spdifin.yaml
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/sound/amlogic,axg-spdifin.txt b/Documentation/devicetree/bindings/sound/amlogic,axg-spdifin.txt
|
||||
deleted file mode 100644
|
||||
index df92a4ecf288..000000000000
|
||||
--- a/Documentation/devicetree/bindings/sound/amlogic,axg-spdifin.txt
|
||||
+++ /dev/null
|
||||
@@ -1,27 +0,0 @@
|
||||
-* Amlogic Audio SPDIF Input
|
||||
-
|
||||
-Required properties:
|
||||
-- compatible: 'amlogic,axg-spdifin' or
|
||||
- 'amlogic,g12a-spdifin' or
|
||||
- 'amlogic,sm1-spdifin'
|
||||
-- interrupts: interrupt specifier for the spdif input.
|
||||
-- clocks: list of clock phandle, one for each entry clock-names.
|
||||
-- clock-names: should contain the following:
|
||||
- * "pclk" : peripheral clock.
|
||||
- * "refclk" : spdif input reference clock
|
||||
-- #sound-dai-cells: must be 0.
|
||||
-
|
||||
-Optional property:
|
||||
-- resets: phandle to the dedicated reset line of the spdif input.
|
||||
-
|
||||
-Example on the A113 SoC:
|
||||
-
|
||||
-spdifin: audio-controller@400 {
|
||||
- compatible = "amlogic,axg-spdifin";
|
||||
- reg = <0x0 0x400 0x0 0x30>;
|
||||
- #sound-dai-cells = <0>;
|
||||
- interrupts = <GIC_SPI 87 IRQ_TYPE_EDGE_RISING>;
|
||||
- clocks = <&clkc_audio AUD_CLKID_SPDIFIN>,
|
||||
- <&clkc_audio AUD_CLKID_SPDIFIN_CLK>;
|
||||
- clock-names = "pclk", "refclk";
|
||||
-};
|
||||
diff --git a/Documentation/devicetree/bindings/sound/amlogic,axg-spdifin.yaml b/Documentation/devicetree/bindings/sound/amlogic,axg-spdifin.yaml
|
||||
new file mode 100644
|
||||
index 000000000000..b9b0863c5723
|
||||
--- /dev/null
|
||||
+++ b/Documentation/devicetree/bindings/sound/amlogic,axg-spdifin.yaml
|
||||
@@ -0,0 +1,84 @@
|
||||
+# SPDX-License-Identifier: GPL-2.0
|
||||
+%YAML 1.2
|
||||
+---
|
||||
+$id: http://devicetree.org/schemas/sound/amlogic,axg-spdifin.yaml#
|
||||
+$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
+
|
||||
+title: Amlogic Audio AXG SPDIF Input
|
||||
+
|
||||
+maintainers:
|
||||
+ - Jerome Brunet <jbrunet@baylibre.com>
|
||||
+
|
||||
+properties:
|
||||
+ $nodename:
|
||||
+ pattern: "^audio-controller@.*"
|
||||
+
|
||||
+ "#sound-dai-cells":
|
||||
+ const: 0
|
||||
+
|
||||
+ compatible:
|
||||
+ oneOf:
|
||||
+ - items:
|
||||
+ - const:
|
||||
+ amlogic,axg-spdifin
|
||||
+ - items:
|
||||
+ - enum:
|
||||
+ - amlogic,g12a-spdifin
|
||||
+ - amlogic,sm1-spdifin
|
||||
+ - const:
|
||||
+ amlogic,axg-spdifin
|
||||
+
|
||||
+ clocks:
|
||||
+ items:
|
||||
+ - description: Peripheral clock
|
||||
+ - description: SPDIF input reference clock
|
||||
+
|
||||
+ clock-names:
|
||||
+ items:
|
||||
+ - const: pclk
|
||||
+ - const: refclk
|
||||
+
|
||||
+ interrupts:
|
||||
+ maxItems: 1
|
||||
+
|
||||
+ reg:
|
||||
+ maxItems: 1
|
||||
+
|
||||
+ resets:
|
||||
+ maxItems: 1
|
||||
+
|
||||
+required:
|
||||
+ - "#sound-dai-cells"
|
||||
+ - compatible
|
||||
+ - reg
|
||||
+ - interrupts
|
||||
+ - clocks
|
||||
+ - clock-names
|
||||
+
|
||||
+if:
|
||||
+ properties:
|
||||
+ compatible:
|
||||
+ contains:
|
||||
+ enum:
|
||||
+ - amlogic,g12a-spdifin
|
||||
+ - amlogic,sm1-spdifin
|
||||
+then:
|
||||
+ required:
|
||||
+ - resets
|
||||
+
|
||||
+examples:
|
||||
+ - |
|
||||
+ #include <dt-bindings/clock/axg-audio-clkc.h>
|
||||
+ #include <dt-bindings/interrupt-controller/irq.h>
|
||||
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
+
|
||||
+ spdifin: audio-controller@400 {
|
||||
+ compatible = "amlogic,axg-spdifin";
|
||||
+ reg = <0x0 0x400 0x0 0x30>;
|
||||
+ #sound-dai-cells = <0>;
|
||||
+ interrupts = <GIC_SPI 87 IRQ_TYPE_EDGE_RISING>;
|
||||
+ clocks = <&clkc_audio AUD_CLKID_SPDIFIN>,
|
||||
+ <&clkc_audio AUD_CLKID_SPDIFIN_CLK>;
|
||||
+ clock-names = "pclk", "refclk";
|
||||
+ };
|
||||
+
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -1,130 +0,0 @@
|
||||
From 4c8c6dedc0943fcc7a58ea7a41cdd46eda3a69f7 Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Brunet <jbrunet@baylibre.com>
|
||||
Date: Fri, 24 Jan 2020 15:58:18 +0100
|
||||
Subject: [PATCH 039/101] WIP: ASoC: meson: convert axg spdif output to schema
|
||||
|
||||
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
|
||||
---
|
||||
.../bindings/sound/amlogic,axg-spdifout.txt | 25 ------
|
||||
.../bindings/sound/amlogic,axg-spdifout.yaml | 77 +++++++++++++++++++
|
||||
2 files changed, 77 insertions(+), 25 deletions(-)
|
||||
delete mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-spdifout.txt
|
||||
create mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-spdifout.yaml
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/sound/amlogic,axg-spdifout.txt b/Documentation/devicetree/bindings/sound/amlogic,axg-spdifout.txt
|
||||
deleted file mode 100644
|
||||
index 28381dd1f633..000000000000
|
||||
--- a/Documentation/devicetree/bindings/sound/amlogic,axg-spdifout.txt
|
||||
+++ /dev/null
|
||||
@@ -1,25 +0,0 @@
|
||||
-* Amlogic Audio SPDIF Output
|
||||
-
|
||||
-Required properties:
|
||||
-- compatible: 'amlogic,axg-spdifout' or
|
||||
- 'amlogic,g12a-spdifout' or
|
||||
- 'amlogic,sm1-spdifout'
|
||||
-- clocks: list of clock phandle, one for each entry clock-names.
|
||||
-- clock-names: should contain the following:
|
||||
- * "pclk" : peripheral clock.
|
||||
- * "mclk" : master clock
|
||||
-- #sound-dai-cells: must be 0.
|
||||
-
|
||||
-Optional property:
|
||||
-- resets: phandle to the dedicated reset line of the spdif output.
|
||||
-
|
||||
-Example on the A113 SoC:
|
||||
-
|
||||
-spdifout: audio-controller@480 {
|
||||
- compatible = "amlogic,axg-spdifout";
|
||||
- reg = <0x0 0x480 0x0 0x50>;
|
||||
- #sound-dai-cells = <0>;
|
||||
- clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>,
|
||||
- <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>;
|
||||
- clock-names = "pclk", "mclk";
|
||||
-};
|
||||
diff --git a/Documentation/devicetree/bindings/sound/amlogic,axg-spdifout.yaml b/Documentation/devicetree/bindings/sound/amlogic,axg-spdifout.yaml
|
||||
new file mode 100644
|
||||
index 000000000000..9ac52916f88b
|
||||
--- /dev/null
|
||||
+++ b/Documentation/devicetree/bindings/sound/amlogic,axg-spdifout.yaml
|
||||
@@ -0,0 +1,77 @@
|
||||
+# SPDX-License-Identifier: GPL-2.0
|
||||
+%YAML 1.2
|
||||
+---
|
||||
+$id: http://devicetree.org/schemas/sound/amlogic,axg-spdifout.yaml#
|
||||
+$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
+
|
||||
+title: Amlogic Audio AXG SPDIF Output
|
||||
+
|
||||
+maintainers:
|
||||
+ - Jerome Brunet <jbrunet@baylibre.com>
|
||||
+
|
||||
+properties:
|
||||
+ $nodename:
|
||||
+ pattern: "^audio-controller@.*"
|
||||
+
|
||||
+ "#sound-dai-cells":
|
||||
+ const: 0
|
||||
+
|
||||
+ compatible:
|
||||
+ oneOf:
|
||||
+ - items:
|
||||
+ - const:
|
||||
+ amlogic,axg-spdifout
|
||||
+ - items:
|
||||
+ - enum:
|
||||
+ - amlogic,g12a-spdifout
|
||||
+ - amlogic,sm1-spdifout
|
||||
+ - const:
|
||||
+ amlogic,axg-spdifout
|
||||
+
|
||||
+ clocks:
|
||||
+ items:
|
||||
+ - description: Peripheral clock
|
||||
+ - description: SPDIF output master clock
|
||||
+
|
||||
+ clock-names:
|
||||
+ items:
|
||||
+ - const: pclk
|
||||
+ - const: mclk
|
||||
+
|
||||
+ reg:
|
||||
+ maxItems: 1
|
||||
+
|
||||
+ resets:
|
||||
+ items:
|
||||
+ - description: dedicated device reset line
|
||||
+
|
||||
+required:
|
||||
+ - "#sound-dai-cells"
|
||||
+ - compatible
|
||||
+ - reg
|
||||
+ - clocks
|
||||
+ - clock-names
|
||||
+
|
||||
+if:
|
||||
+ properties:
|
||||
+ compatible:
|
||||
+ contains:
|
||||
+ enum:
|
||||
+ - amlogic,g12a-spdifout
|
||||
+ - amlogic,sm1-spdifout
|
||||
+then:
|
||||
+ required:
|
||||
+ - resets
|
||||
+
|
||||
+examples:
|
||||
+ - |
|
||||
+ #include <dt-bindings/clock/axg-audio-clkc.h>
|
||||
+
|
||||
+ spdifout: audio-controller@480 {
|
||||
+ compatible = "amlogic,axg-spdifout";
|
||||
+ reg = <0x0 0x480 0x0 0x50>;
|
||||
+ #sound-dai-cells = <0>;
|
||||
+ clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>,
|
||||
+ <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>;
|
||||
+ clock-names = "pclk", "mclk";
|
||||
+ };
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -1,166 +0,0 @@
|
||||
From 222de230f3cb9c1452441001807c4ab876e0c959 Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Brunet <jbrunet@baylibre.com>
|
||||
Date: Fri, 24 Jan 2020 12:00:01 +0100
|
||||
Subject: [PATCH 035/101] WIP: ASoC: meson: convert axg tdm formatters to
|
||||
schema
|
||||
|
||||
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
|
||||
---
|
||||
.../sound/amlogic,axg-tdm-formatters.txt | 36 -------
|
||||
.../sound/amlogic,axg-tdm-formatters.yaml | 101 ++++++++++++++++++
|
||||
2 files changed, 101 insertions(+), 36 deletions(-)
|
||||
delete mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-tdm-formatters.txt
|
||||
create mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-tdm-formatters.yaml
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/sound/amlogic,axg-tdm-formatters.txt b/Documentation/devicetree/bindings/sound/amlogic,axg-tdm-formatters.txt
|
||||
deleted file mode 100644
|
||||
index 5996c0cd89c2..000000000000
|
||||
--- a/Documentation/devicetree/bindings/sound/amlogic,axg-tdm-formatters.txt
|
||||
+++ /dev/null
|
||||
@@ -1,36 +0,0 @@
|
||||
-* Amlogic Audio TDM formatters
|
||||
-
|
||||
-Required properties:
|
||||
-- compatible: 'amlogic,axg-tdmin' or
|
||||
- 'amlogic,axg-tdmout' or
|
||||
- 'amlogic,g12a-tdmin' or
|
||||
- 'amlogic,g12a-tdmout' or
|
||||
- 'amlogic,sm1-tdmin' or
|
||||
- 'amlogic,sm1-tdmout
|
||||
-- reg: physical base address of the controller and length of memory
|
||||
- mapped region.
|
||||
-- clocks: list of clock phandle, one for each entry clock-names.
|
||||
-- clock-names: should contain the following:
|
||||
- * "pclk" : peripheral clock.
|
||||
- * "sclk" : bit clock.
|
||||
- * "sclk_sel" : bit clock input multiplexer.
|
||||
- * "lrclk" : sample clock
|
||||
- * "lrclk_sel": sample clock input multiplexer
|
||||
-
|
||||
-Optional property:
|
||||
-- resets: phandle to the dedicated reset line of the tdm formatter.
|
||||
-
|
||||
-Example of TDMOUT_A on the S905X2 SoC:
|
||||
-
|
||||
-tdmout_a: audio-controller@500 {
|
||||
- compatible = "amlogic,axg-tdmout";
|
||||
- reg = <0x0 0x500 0x0 0x40>;
|
||||
- resets = <&clkc_audio AUD_RESET_TDMOUT_A>;
|
||||
- clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>,
|
||||
- <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>,
|
||||
- <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>,
|
||||
- <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>,
|
||||
- <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>;
|
||||
- clock-names = "pclk", "sclk", "sclk_sel",
|
||||
- "lrclk", "lrclk_sel";
|
||||
-};
|
||||
diff --git a/Documentation/devicetree/bindings/sound/amlogic,axg-tdm-formatters.yaml b/Documentation/devicetree/bindings/sound/amlogic,axg-tdm-formatters.yaml
|
||||
new file mode 100644
|
||||
index 000000000000..77b994df0c84
|
||||
--- /dev/null
|
||||
+++ b/Documentation/devicetree/bindings/sound/amlogic,axg-tdm-formatters.yaml
|
||||
@@ -0,0 +1,101 @@
|
||||
+# SPDX-License-Identifier: GPL-2.0
|
||||
+%YAML 1.2
|
||||
+---
|
||||
+$id: http://devicetree.org/schemas/sound/amlogic,axg-tdm-formatters.yaml#
|
||||
+$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
+
|
||||
+title: Amlogic Audio AXG TDM formatters
|
||||
+
|
||||
+maintainers:
|
||||
+ - Jerome Brunet <jbrunet@baylibre.com>
|
||||
+
|
||||
+properties:
|
||||
+ $nodename:
|
||||
+ pattern: "^audio-controller@.*"
|
||||
+
|
||||
+ "#sound-dai-cells":
|
||||
+ const: 0
|
||||
+
|
||||
+ compatible:
|
||||
+ oneOf:
|
||||
+ - items:
|
||||
+ - enum:
|
||||
+ - amlogic,g12a-tdmout
|
||||
+ - amlogic,sm1-tdmout
|
||||
+ - const:
|
||||
+ amlogic,axg-tdmout
|
||||
+ - items:
|
||||
+ - const:
|
||||
+ amlogic,axg-tdmout
|
||||
+ - items:
|
||||
+ - enum:
|
||||
+ - amlogic,g12a-tdmin
|
||||
+ - amlogic,sm1-tdmin
|
||||
+ - const:
|
||||
+ amlogic,axg-tdmin
|
||||
+ - items:
|
||||
+ - const:
|
||||
+ amlogic,axg-tdmin
|
||||
+
|
||||
+ clocks:
|
||||
+ items:
|
||||
+ - description: Peripheral clock
|
||||
+ - description: Bit clock
|
||||
+ - description: Bit clock input multiplexer
|
||||
+ - description: Sample clock
|
||||
+ - description: Sample clock input multiplexer
|
||||
+
|
||||
+ clock-names:
|
||||
+ items:
|
||||
+ - const: pclk
|
||||
+ - const: sclk
|
||||
+ - const: sclk_sel
|
||||
+ - const: lrclk
|
||||
+ - const: lrclk_sel
|
||||
+
|
||||
+ reg:
|
||||
+ maxItems: 1
|
||||
+
|
||||
+ resets:
|
||||
+ maxItems: 1
|
||||
+
|
||||
+required:
|
||||
+ - "#sound-dai-cells"
|
||||
+ - compatible
|
||||
+ - reg
|
||||
+ - clocks
|
||||
+ - clock-names
|
||||
+
|
||||
+if:
|
||||
+ properties:
|
||||
+ compatible:
|
||||
+ contains:
|
||||
+ enum:
|
||||
+ - amlogic,g12a-tdmin
|
||||
+ - amlogic,sm1-tdmin
|
||||
+ - amlogic,g12a-tdmout
|
||||
+ - amlogic,sm1-tdmout
|
||||
+then:
|
||||
+ required:
|
||||
+ - resets
|
||||
+
|
||||
+examples:
|
||||
+ - |
|
||||
+ #include <dt-bindings/clock/axg-audio-clkc.h>
|
||||
+ #include <dt-bindings/reset/amlogic,meson-g12a-audio-reset.h>
|
||||
+
|
||||
+ tdmout_a: audio-controller@500 {
|
||||
+ compatible = "amlogic,g12a-tdmout",
|
||||
+ "amlogic,axg-tdmout";
|
||||
+ #sound-dai-cells = <0>;
|
||||
+ reg = <0x0 0x500 0x0 0x40>;
|
||||
+ resets = <&clkc_audio AUD_RESET_TDMOUT_A>;
|
||||
+ clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>,
|
||||
+ <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>,
|
||||
+ <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>,
|
||||
+ <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>,
|
||||
+ <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>;
|
||||
+ clock-names = "pclk", "sclk", "sclk_sel",
|
||||
+ "lrclk", "lrclk_sel";
|
||||
+ };
|
||||
+
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -1,107 +0,0 @@
|
||||
From ea2bee83aa1bb6a88d6862756b9e1602324ca78b Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Brunet <jbrunet@baylibre.com>
|
||||
Date: Fri, 24 Jan 2020 11:08:09 +0100
|
||||
Subject: [PATCH 034/101] WIP: ASoC: meson: convert axg tdm interface to schema
|
||||
|
||||
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
|
||||
---
|
||||
.../bindings/sound/amlogic,axg-tdm-iface.txt | 22 -------
|
||||
.../bindings/sound/amlogic,axg-tdm-iface.yaml | 57 +++++++++++++++++++
|
||||
2 files changed, 57 insertions(+), 22 deletions(-)
|
||||
delete mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-tdm-iface.txt
|
||||
create mode 100644 Documentation/devicetree/bindings/sound/amlogic,axg-tdm-iface.yaml
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/sound/amlogic,axg-tdm-iface.txt b/Documentation/devicetree/bindings/sound/amlogic,axg-tdm-iface.txt
|
||||
deleted file mode 100644
|
||||
index cabfb26a5f22..000000000000
|
||||
--- a/Documentation/devicetree/bindings/sound/amlogic,axg-tdm-iface.txt
|
||||
+++ /dev/null
|
||||
@@ -1,22 +0,0 @@
|
||||
-* Amlogic Audio TDM Interfaces
|
||||
-
|
||||
-Required properties:
|
||||
-- compatible: 'amlogic,axg-tdm-iface'
|
||||
-- clocks: list of clock phandle, one for each entry clock-names.
|
||||
-- clock-names: should contain the following:
|
||||
- * "sclk" : bit clock.
|
||||
- * "lrclk": sample clock
|
||||
- * "mclk" : master clock
|
||||
- -> optional if the interface is in clock slave mode.
|
||||
-- #sound-dai-cells: must be 0.
|
||||
-
|
||||
-Example of TDM_A on the A113 SoC:
|
||||
-
|
||||
-tdmif_a: audio-controller@0 {
|
||||
- compatible = "amlogic,axg-tdm-iface";
|
||||
- #sound-dai-cells = <0>;
|
||||
- clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>,
|
||||
- <&clkc_audio AUD_CLKID_MST_A_SCLK>,
|
||||
- <&clkc_audio AUD_CLKID_MST_A_LRCLK>;
|
||||
- clock-names = "mclk", "sclk", "lrclk";
|
||||
-};
|
||||
diff --git a/Documentation/devicetree/bindings/sound/amlogic,axg-tdm-iface.yaml b/Documentation/devicetree/bindings/sound/amlogic,axg-tdm-iface.yaml
|
||||
new file mode 100644
|
||||
index 000000000000..5f04f9cf30a0
|
||||
--- /dev/null
|
||||
+++ b/Documentation/devicetree/bindings/sound/amlogic,axg-tdm-iface.yaml
|
||||
@@ -0,0 +1,57 @@
|
||||
+# SPDX-License-Identifier: GPL-2.0
|
||||
+%YAML 1.2
|
||||
+---
|
||||
+$id: http://devicetree.org/schemas/sound/amlogic,axg-tdm-iface.yaml#
|
||||
+$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
+
|
||||
+title: Amlogic Audio TDM Interfaces
|
||||
+
|
||||
+maintainers:
|
||||
+ - Jerome Brunet <jbrunet@baylibre.com>
|
||||
+
|
||||
+properties:
|
||||
+ $nodename:
|
||||
+ pattern: "^audio-controller-.*"
|
||||
+
|
||||
+ "#sound-dai-cells":
|
||||
+ const: 0
|
||||
+
|
||||
+ compatible:
|
||||
+ items:
|
||||
+ - const: 'amlogic,axg-tdm-iface'
|
||||
+
|
||||
+ clocks:
|
||||
+ minItems: 2
|
||||
+ maxItems: 3
|
||||
+ items:
|
||||
+ - description: Bit clock
|
||||
+ - description: Sample clock
|
||||
+ - description: Master clock #optional
|
||||
+
|
||||
+ clock-names:
|
||||
+ minItems: 2
|
||||
+ maxItems: 3
|
||||
+ items:
|
||||
+ - const: sclk
|
||||
+ - const: lrclk
|
||||
+ - const: mclk
|
||||
+
|
||||
+required:
|
||||
+ - "#sound-dai-cells"
|
||||
+ - compatible
|
||||
+ - clocks
|
||||
+ - clock-names
|
||||
+
|
||||
+examples:
|
||||
+ - |
|
||||
+ #include <dt-bindings/clock/axg-audio-clkc.h>
|
||||
+
|
||||
+ tdmif_a: audio-controller-0 {
|
||||
+ compatible = "amlogic,axg-tdm-iface";
|
||||
+ #sound-dai-cells = <0>;
|
||||
+ clocks = <&clkc_audio AUD_CLKID_MST_A_SCLK>,
|
||||
+ <&clkc_audio AUD_CLKID_MST_A_LRCLK>,
|
||||
+ <&clkc_audio AUD_CLKID_MST_A_MCLK>;
|
||||
+ clock-names = "sclk", "lrclk", "mclk";
|
||||
+ };
|
||||
+
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -1,140 +0,0 @@
|
||||
From 2c10c55e9061c3ebfb059a54e531c512a9d19aa3 Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Brunet <jbrunet@baylibre.com>
|
||||
Date: Fri, 24 Jan 2020 16:02:43 +0100
|
||||
Subject: [PATCH 040/101] WIP: ASoC: meson: convert g12a tohdmitx control to
|
||||
schema
|
||||
|
||||
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
|
||||
---
|
||||
.../bindings/sound/amlogic,g12a-tohdmitx.txt | 58 -------------------
|
||||
.../bindings/sound/amlogic,g12a-tohdmitx.yaml | 53 +++++++++++++++++
|
||||
2 files changed, 53 insertions(+), 58 deletions(-)
|
||||
delete mode 100644 Documentation/devicetree/bindings/sound/amlogic,g12a-tohdmitx.txt
|
||||
create mode 100644 Documentation/devicetree/bindings/sound/amlogic,g12a-tohdmitx.yaml
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/sound/amlogic,g12a-tohdmitx.txt b/Documentation/devicetree/bindings/sound/amlogic,g12a-tohdmitx.txt
|
||||
deleted file mode 100644
|
||||
index 4e8cd7eb7cec..000000000000
|
||||
--- a/Documentation/devicetree/bindings/sound/amlogic,g12a-tohdmitx.txt
|
||||
+++ /dev/null
|
||||
@@ -1,58 +0,0 @@
|
||||
-* Amlogic HDMI Tx control glue
|
||||
-
|
||||
-Required properties:
|
||||
-- compatible: "amlogic,g12a-tohdmitx" or
|
||||
- "amlogic,sm1-tohdmitx"
|
||||
-- reg: physical base address of the controller and length of memory
|
||||
- mapped region.
|
||||
-- #sound-dai-cells: should be 1.
|
||||
-- resets: phandle to the dedicated reset line of the hdmitx glue.
|
||||
-
|
||||
-Example on the S905X2 SoC:
|
||||
-
|
||||
-tohdmitx: audio-controller@744 {
|
||||
- compatible = "amlogic,g12a-tohdmitx";
|
||||
- reg = <0x0 0x744 0x0 0x4>;
|
||||
- #sound-dai-cells = <1>;
|
||||
- resets = <&clkc_audio AUD_RESET_TOHDMITX>;
|
||||
-};
|
||||
-
|
||||
-Example of an 'amlogic,axg-sound-card':
|
||||
-
|
||||
-sound {
|
||||
- compatible = "amlogic,axg-sound-card";
|
||||
-
|
||||
-[...]
|
||||
-
|
||||
- dai-link-x {
|
||||
- sound-dai = <&tdmif_a>;
|
||||
- dai-format = "i2s";
|
||||
- dai-tdm-slot-tx-mask-0 = <1 1>;
|
||||
-
|
||||
- codec-0 {
|
||||
- sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>;
|
||||
- };
|
||||
-
|
||||
- codec-1 {
|
||||
- sound-dai = <&external_dac>;
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- dai-link-y {
|
||||
- sound-dai = <&tdmif_c>;
|
||||
- dai-format = "i2s";
|
||||
- dai-tdm-slot-tx-mask-0 = <1 1>;
|
||||
-
|
||||
- codec {
|
||||
- sound-dai = <&tohdmitx TOHDMITX_I2S_IN_C>;
|
||||
- };
|
||||
- };
|
||||
-
|
||||
- dai-link-z {
|
||||
- sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
|
||||
-
|
||||
- codec {
|
||||
- sound-dai = <&hdmi_tx>;
|
||||
- };
|
||||
- };
|
||||
-};
|
||||
diff --git a/Documentation/devicetree/bindings/sound/amlogic,g12a-tohdmitx.yaml b/Documentation/devicetree/bindings/sound/amlogic,g12a-tohdmitx.yaml
|
||||
new file mode 100644
|
||||
index 000000000000..fdd64d103f33
|
||||
--- /dev/null
|
||||
+++ b/Documentation/devicetree/bindings/sound/amlogic,g12a-tohdmitx.yaml
|
||||
@@ -0,0 +1,53 @@
|
||||
+# SPDX-License-Identifier: GPL-2.0
|
||||
+%YAML 1.2
|
||||
+---
|
||||
+$id: http://devicetree.org/schemas/sound/amlogic,g12a-tohdmitx.yaml#
|
||||
+$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
+
|
||||
+title: Amlogic G12a HDMI Tx Control Glue
|
||||
+
|
||||
+maintainers:
|
||||
+ - Jerome Brunet <jbrunet@baylibre.com>
|
||||
+
|
||||
+properties:
|
||||
+ $nodename:
|
||||
+ pattern: "^audio-controller@.*"
|
||||
+
|
||||
+ "#sound-dai-cells":
|
||||
+ const: 1
|
||||
+
|
||||
+ compatible:
|
||||
+ oneOf:
|
||||
+ - items:
|
||||
+ - const:
|
||||
+ amlogic,g12a-tohdmitx
|
||||
+ - items:
|
||||
+ - enum:
|
||||
+ - amlogic,sm1-tohdmitx
|
||||
+ - const:
|
||||
+ amlogic,g12a-tohdmitx
|
||||
+
|
||||
+ reg:
|
||||
+ maxItems: 1
|
||||
+
|
||||
+ resets:
|
||||
+ maxItems: 1
|
||||
+
|
||||
+required:
|
||||
+ - "#sound-dai-cells"
|
||||
+ - compatible
|
||||
+ - reg
|
||||
+ - resets
|
||||
+
|
||||
+examples:
|
||||
+ - |
|
||||
+ #include <dt-bindings/reset/amlogic,meson-g12a-audio-reset.h>
|
||||
+
|
||||
+ tohdmitx: audio-controller@744 {
|
||||
+ compatible = "amlogic,g12a-tohdmitx";
|
||||
+ reg = <0x0 0x744 0x0 0x4>;
|
||||
+ #sound-dai-cells = <1>;
|
||||
+ resets = <&clkc_audio AUD_RESET_TOHDMITX>;
|
||||
+ };
|
||||
+
|
||||
+
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -1,22 +1,27 @@
|
||||
From d5d2d8b9eb93eab85af12f1844975903a7c5a879 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Thu, 29 Apr 2021 21:32:43 +0200
|
||||
Subject: [PATCH XXX] general-meson64-i2cX-missing-pins
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
|
||||
index 98cbba6..48ca119 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
|
||||
@@ -321,6 +322,8 @@
|
||||
|
||||
|
||||
&i2c_A {
|
||||
clocks = <&clkc CLKID_I2C>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&i2c_a_pins>;
|
||||
};
|
||||
|
||||
|
||||
&i2c_AO {
|
||||
@@ -329,6 +332,8 @@
|
||||
|
||||
|
||||
&i2c_B {
|
||||
clocks = <&clkc CLKID_I2C>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&i2c_b_pins>;
|
||||
};
|
||||
|
||||
|
||||
&i2c_C {
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
From 2a7c14cbaec2d8307fb97a0036b155ee2857f7e2 Mon Sep 17 00:00:00 2001
|
||||
From: ckkim <changkon12@gmail.com>
|
||||
Date: Tue, 3 Mar 2020 14:20:59 +0900
|
||||
Subject: [PATCH 03/74] ODROID-N2: arm64/dts: support Ulta High Speed MMC card
|
||||
|
||||
Signed-off-by: ckkim <changkon12@gmail.com>
|
||||
Change-Id: I52bbf26aaf807e96bff7665bb65a1ee5594f6449
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
index 169ea283d4ee..84236c578075 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
@@ -423,7 +423,11 @@ &sd_emmc_b {
|
||||
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
- max-frequency = <50000000>;
|
||||
+ max-frequency = <200000000>;
|
||||
+ sd-uhs-sdr12;
|
||||
+ sd-uhs-sdr25;
|
||||
+ sd-uhs-sdr50;
|
||||
+ sd-uhs-sdr104;
|
||||
disable-wp;
|
||||
|
||||
cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
From bd699b3618b708c7a184e174336dce1c451f9a16 Mon Sep 17 00:00:00 2001
|
||||
From: Hyeonki Hong <hhk7734@gmail.com>
|
||||
Date: Fri, 27 Mar 2020 17:05:22 +0900
|
||||
Subject: [PATCH 06/74] ODROID-N2: ARM64/dts: add uart_A node
|
||||
|
||||
Change-Id: I129c3d059231a7941285deffc293ee72784adcce
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 9 ++++++++-
|
||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
index 0bbd97997a42..9e29fdbf149d 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
@@ -16,8 +16,9 @@ / {
|
||||
model = "Hardkernel ODROID-N2";
|
||||
|
||||
aliases {
|
||||
- serial0 = &uart_AO;
|
||||
ethernet0 = ðmac;
|
||||
+ serial0 = &uart_AO;
|
||||
+ serial1 = &uart_A;
|
||||
};
|
||||
|
||||
chosen {
|
||||
@@ -581,6 +582,12 @@ &tohdmitx {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&uart_A {
|
||||
+ status = "okay";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart_a_pins>;
|
||||
+};
|
||||
+
|
||||
&uart_AO {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&uart_ao_a_pins>;
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -1,91 +0,0 @@
|
||||
From a0bdfa3b38982cff581f8db8573064526a210434 Mon Sep 17 00:00:00 2001
|
||||
From: Hyeonki Hong <hhk7734@gmail.com>
|
||||
Date: Fri, 27 Mar 2020 16:54:02 +0900
|
||||
Subject: [PATCH 07/74] ODROID-N2: ARM64/dts: add i2c2, i2c3 node
|
||||
|
||||
Change-Id: I00e3748a6f8474a99d05200afc60b8d794f75c96
|
||||
---
|
||||
.../boot/dts/amlogic/meson-g12b-odroid-n2.dts | 53 +++++++++++++++++++
|
||||
1 file changed, 53 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
index 9e29fdbf149d..758528f988dd 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
@@ -17,6 +17,8 @@ / {
|
||||
aliases {
|
||||
ethernet0 = ðmac;
|
||||
serial0 = &uart_AO;
|
||||
serial1 = &uart_A;
|
||||
+ i2c0 = &i2c2;
|
||||
+ i2c1 = &i2c3;
|
||||
};
|
||||
|
||||
@@ -485,6 +487,35 @@ hdmi_tx_tmds_out: endpoint {
|
||||
};
|
||||
};
|
||||
|
||||
+&i2c2 {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ /*
|
||||
+ * 40 Pin Header : SDA(GPIOX.17->3 Pin)
|
||||
+ * SCL(GPIOX.18->5 Pin)
|
||||
+ */
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&i2c2_master_pins1>;
|
||||
+
|
||||
+ /* default 400k */
|
||||
+ clock-frequency = <400000>;
|
||||
+};
|
||||
+
|
||||
+&i2c3 {
|
||||
+ /* default i2c clock-frequency is 100Khz */
|
||||
+ status = "okay";
|
||||
+
|
||||
+ /*
|
||||
+ * 40 Pin Header : SDA(GPIOA.14->27 Pin)
|
||||
+ * SCL(GPIOA.15->28 Pin)
|
||||
+ */
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&i2c3_master_pins2>;
|
||||
+
|
||||
+ /* default 100k */
|
||||
+ clock-frequency = <100000>;
|
||||
+};
|
||||
+
|
||||
&ir {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&remote_input_ao_pins>;
|
||||
@@ -492,6 +523,28 @@ &ir {
|
||||
linux,rc-map-name = "rc-odroid";
|
||||
};
|
||||
|
||||
+&periphs_pinctrl {
|
||||
+ i2c2_master_pins1:i2c2-master-pins1 {
|
||||
+ mux {
|
||||
+ groups = "i2c2_sda_x",
|
||||
+ "i2c2_sck_x";
|
||||
+ function = "i2c2";
|
||||
+ bias-pull-up;
|
||||
+ drive-strength-microamp = <3000>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ i2c3_master_pins2:i2c2-master-pins2 {
|
||||
+ mux {
|
||||
+ groups = "i2c3_sda_a",
|
||||
+ "i2c3_sck_a";
|
||||
+ function = "i2c3";
|
||||
+ bias-pull-up;
|
||||
+ drive-strength-microamp = <3000>;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&pwm_ab {
|
||||
pinctrl-0 = <&pwm_a_e_pins>;
|
||||
pinctrl-names = "default";
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
From 3b201de7e491b9686a019a936a1d04eb59c6c3c7 Mon Sep 17 00:00:00 2001
|
||||
From: Hyeonki Hong <hhk7734@gmail.com>
|
||||
Date: Fri, 27 Mar 2020 17:36:37 +0900
|
||||
Subject: [PATCH 08/74] ODROID-N2: ARM64/dts: add saradc node
|
||||
|
||||
Change-Id: Ieced434cbde791edee600832f51bd5021b4604aa
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
index 758528f988dd..63b23c84e022 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
@@ -561,6 +561,10 @@ &pwm_AO_cd {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&saradc {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
/* SD card */
|
||||
&sd_emmc_b {
|
||||
status = "okay";
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -1,367 +0,0 @@
|
||||
From 1167e0322f28f603ca30fba62e6cfbee56e512ce Mon Sep 17 00:00:00 2001
|
||||
From: Kevin Kim <ckkim@hardkernel.com>
|
||||
Date: Wed, 16 Jan 2019 14:45:10 +0900
|
||||
Subject: [PATCH 29/74] ODROID-COMMON: pwm: gpio: Add a generic gpio based PWM
|
||||
driver
|
||||
|
||||
From: Olliver Schinagl <oliver@schinagl.nl>
|
||||
|
||||
This patch adds a bit-banging gpio PWM driver. It makes use of hrtimers,
|
||||
to allow nano-second resolution, though it obviously strongly depends on
|
||||
the switching speed of the gpio pins, hrtimer and system load.
|
||||
|
||||
Each pwm node can have 1 or more "pwm-gpio" entries, which will be
|
||||
treated as pwm's as part of a pwm chip.
|
||||
|
||||
Change-Id: Idd42bf6d79f8ce52275a15965b02af470f28da7c
|
||||
Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
|
||||
---
|
||||
.../devicetree/bindings/pwm/pwm-gpio.txt | 18 ++
|
||||
MAINTAINERS | 5 +
|
||||
drivers/pwm/Kconfig | 15 ++
|
||||
drivers/pwm/Makefile | 1 +
|
||||
drivers/pwm/pwm-gpio.c | 253 ++++++++++++++++++
|
||||
5 files changed, 292 insertions(+)
|
||||
create mode 100644 Documentation/devicetree/bindings/pwm/pwm-gpio.txt
|
||||
create mode 100644 drivers/pwm/pwm-gpio.c
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/pwm/pwm-gpio.txt b/Documentation/devicetree/bindings/pwm/pwm-gpio.txt
|
||||
new file mode 100644
|
||||
index 000000000000..336f61faa446
|
||||
--- /dev/null
|
||||
+++ b/Documentation/devicetree/bindings/pwm/pwm-gpio.txt
|
||||
@@ -0,0 +1,18 @@
|
||||
+Generic GPIO bit-banged PWM driver
|
||||
+
|
||||
+Required properties:
|
||||
+ - compatible: should be "pwm-gpio"
|
||||
+ - #pwm-cells: should be 3, see pwm.txt in this directory for a general
|
||||
+ description of the cells format.
|
||||
+ - pwm-gpios: one or more gpios describing the used gpio, see the gpio
|
||||
+ bindings for the used gpio driver.
|
||||
+
|
||||
+Example:
|
||||
+#include <dt-bindings/gpio/gpio.h>
|
||||
+
|
||||
+ pwm: pwm@0 {
|
||||
+ compatible = "pwm-gpio";
|
||||
+ #pwm-cells = 3;
|
||||
+ pwm-gpios = <&pio 7 1 GPIO_ACTIVE_LOW>;
|
||||
+ pwm-gpios = <&pio 7 2 GPIO_ACTIVE_LOW>;
|
||||
+ };
|
||||
diff --git a/MAINTAINERS b/MAINTAINERS
|
||||
index 4e2698cc7e23..63e59da28c58 100644
|
||||
--- a/MAINTAINERS
|
||||
+++ b/MAINTAINERS
|
||||
@@ -7186,6 +7186,11 @@ F: Documentation/i2c/muxes/i2c-mux-gpio.rst
|
||||
F: drivers/i2c/muxes/i2c-mux-gpio.c
|
||||
F: include/linux/platform_data/i2c-mux-gpio.h
|
||||
|
||||
+GENERIC GPIO PWM DRIVER
|
||||
+M: Olliver Schinagl <oliver@schinagl.nl>
|
||||
+S: Maintained
|
||||
+F: drivers/pwm/pwm-gpio.c
|
||||
+
|
||||
GENERIC HDLC (WAN) DRIVERS
|
||||
M: Krzysztof Halasa <khc@pm.waw.pl>
|
||||
S: Maintained
|
||||
diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig
|
||||
index cb8d739067d2..609011be5aaf 100644
|
||||
--- a/drivers/pwm/Kconfig
|
||||
+++ b/drivers/pwm/Kconfig
|
||||
@@ -181,6 +181,21 @@ config PWM_FSL_FTM
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called pwm-fsl-ftm.
|
||||
|
||||
+config PWM_GPIO
|
||||
+ tristate "Generic GPIO bit-banged PWM driver"
|
||||
+ depends on OF
|
||||
+ depends on GPIOLIB
|
||||
+ help
|
||||
+ Some platforms do not offer any hardware PWM capabilities but do have
|
||||
+ General Purpose Input Output (GPIO) pins available. Using the kernels
|
||||
+ High-Resolution Timer API this driver tries to toggle GPIO using the
|
||||
+ generic kernel PWM framework. The maximum frequency and/or accuracy
|
||||
+ is dependent on several factors such as system load and the maximum
|
||||
+ speed a pin can be toggled at the hardware.
|
||||
+
|
||||
+ To compile this driver as a module, choose M here: the module
|
||||
+ will be called pwm-gpio.
|
||||
+
|
||||
config PWM_HIBVT
|
||||
tristate "HiSilicon BVT PWM support"
|
||||
depends on ARCH_HISI || COMPILE_TEST
|
||||
diff --git a/drivers/pwm/Makefile b/drivers/pwm/Makefile
|
||||
index a59c710e98c7..0d0bcce797fb 100644
|
||||
--- a/drivers/pwm/Makefile
|
||||
+++ b/drivers/pwm/Makefile
|
||||
@@ -15,6 +15,7 @@ obj-$(CONFIG_PWM_CRC) += pwm-crc.o
|
||||
obj-$(CONFIG_PWM_CROS_EC) += pwm-cros-ec.o
|
||||
obj-$(CONFIG_PWM_EP93XX) += pwm-ep93xx.o
|
||||
obj-$(CONFIG_PWM_FSL_FTM) += pwm-fsl-ftm.o
|
||||
+obj-$(CONFIG_PWM_GPIO) += pwm-gpio.o
|
||||
obj-$(CONFIG_PWM_HIBVT) += pwm-hibvt.o
|
||||
obj-$(CONFIG_PWM_IMG) += pwm-img.o
|
||||
obj-$(CONFIG_PWM_IMX1) += pwm-imx1.o
|
||||
diff --git a/drivers/pwm/pwm-gpio.c b/drivers/pwm/pwm-gpio.c
|
||||
new file mode 100644
|
||||
index 000000000000..ab421fb4b8ba
|
||||
--- /dev/null
|
||||
+++ b/drivers/pwm/pwm-gpio.c
|
||||
@@ -0,0 +1,253 @@
|
||||
+/*
|
||||
+ * Copyright (c) 2015 Olliver Schinagl <oliver@schinagl.nl>
|
||||
+ *
|
||||
+ * 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.
|
||||
+ *
|
||||
+ * This driver adds a high-resolution timer based PWM driver. Since this is a
|
||||
+ * bit-banged driver, accuracy will always depend on a lot of factors, such as
|
||||
+ * GPIO toggle speed and system load.
|
||||
+ */
|
||||
+
|
||||
+#include <linux/mod_devicetable.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/gpio/consumer.h>
|
||||
+#include <linux/of.h>
|
||||
+#include <linux/of_gpio.h>
|
||||
+#include <linux/property.h>
|
||||
+#include <linux/pwm.h>
|
||||
+#include <linux/errno.h>
|
||||
+#include <linux/err.h>
|
||||
+#include <linux/device.h>
|
||||
+#include <linux/hrtimer.h>
|
||||
+#include <linux/ktime.h>
|
||||
+#include <linux/kernel.h>
|
||||
+#include <linux/platform_device.h>
|
||||
+
|
||||
+#define DRV_NAME "pwm-gpio"
|
||||
+
|
||||
+struct gpio_pwm_data {
|
||||
+ struct hrtimer timer;
|
||||
+ struct gpio_desc *gpiod;
|
||||
+ bool polarity;
|
||||
+ bool pin_on;
|
||||
+ int on_time;
|
||||
+ int off_time;
|
||||
+ bool run;
|
||||
+};
|
||||
+
|
||||
+struct gpio_pwm_chip {
|
||||
+ struct pwm_chip chip;
|
||||
+};
|
||||
+
|
||||
+static void gpio_pwm_off(struct gpio_pwm_data *gpio_data)
|
||||
+{
|
||||
+ gpiod_set_value_cansleep(gpio_data->gpiod, gpio_data->polarity ? 0 : 1);
|
||||
+}
|
||||
+
|
||||
+static void gpio_pwm_on(struct gpio_pwm_data *gpio_data)
|
||||
+{
|
||||
+ gpiod_set_value_cansleep(gpio_data->gpiod, gpio_data->polarity ? 1 : 0);
|
||||
+}
|
||||
+
|
||||
+enum hrtimer_restart gpio_pwm_timer(struct hrtimer *timer)
|
||||
+{
|
||||
+ struct gpio_pwm_data *gpio_data = container_of(timer,
|
||||
+ struct gpio_pwm_data,
|
||||
+ timer);
|
||||
+ if (!gpio_data->run) {
|
||||
+ gpio_pwm_off(gpio_data);
|
||||
+ gpio_data->pin_on = false;
|
||||
+ return HRTIMER_NORESTART;
|
||||
+ }
|
||||
+
|
||||
+ if (!gpio_data->pin_on) {
|
||||
+ hrtimer_forward_now(&gpio_data->timer,
|
||||
+ ns_to_ktime(gpio_data->on_time));
|
||||
+ gpio_pwm_on(gpio_data);
|
||||
+ gpio_data->pin_on = true;
|
||||
+ } else {
|
||||
+ hrtimer_forward_now(&gpio_data->timer,
|
||||
+ ns_to_ktime(gpio_data->off_time));
|
||||
+ gpio_pwm_off(gpio_data);
|
||||
+ gpio_data->pin_on = false;
|
||||
+ }
|
||||
+
|
||||
+ return HRTIMER_RESTART;
|
||||
+}
|
||||
+
|
||||
+static int gpio_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,
|
||||
+ int duty_ns, int period_ns)
|
||||
+{
|
||||
+ struct gpio_pwm_data *gpio_data = pwm_get_chip_data(pwm);
|
||||
+
|
||||
+ gpio_data->on_time = duty_ns;
|
||||
+ gpio_data->off_time = period_ns - duty_ns;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int gpio_pwm_set_polarity(struct pwm_chip *chip, struct pwm_device *pwm,
|
||||
+ enum pwm_polarity polarity)
|
||||
+{
|
||||
+ struct gpio_pwm_data *gpio_data = pwm_get_chip_data(pwm);
|
||||
+
|
||||
+ gpio_data->polarity = (polarity != PWM_POLARITY_NORMAL) ? true : false;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int gpio_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm)
|
||||
+{
|
||||
+ struct gpio_pwm_data *gpio_data = pwm_get_chip_data(pwm);
|
||||
+
|
||||
+ if (gpio_data->run)
|
||||
+ return -EBUSY;
|
||||
+
|
||||
+ gpio_data->run = true;
|
||||
+ if (gpio_data->off_time) {
|
||||
+ hrtimer_start(&gpio_data->timer, ktime_set(0, 0),
|
||||
+ HRTIMER_MODE_REL);
|
||||
+ } else {
|
||||
+ if (gpio_data->on_time)
|
||||
+ gpio_pwm_on(gpio_data);
|
||||
+ else
|
||||
+ gpio_pwm_off(gpio_data);
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static void gpio_pwm_disable(struct pwm_chip *chip, struct pwm_device *pwm)
|
||||
+{
|
||||
+ struct gpio_pwm_data *gpio_data = pwm_get_chip_data(pwm);
|
||||
+
|
||||
+ gpio_data->run = false;
|
||||
+ if (!gpio_data->off_time)
|
||||
+ gpio_pwm_off(gpio_data);
|
||||
+}
|
||||
+
|
||||
+static const struct pwm_ops gpio_pwm_ops = {
|
||||
+ .config = gpio_pwm_config,
|
||||
+ .set_polarity = gpio_pwm_set_polarity,
|
||||
+ .enable = gpio_pwm_enable,
|
||||
+ .disable = gpio_pwm_disable,
|
||||
+ .owner = THIS_MODULE,
|
||||
+};
|
||||
+
|
||||
+static int gpio_pwm_probe(struct platform_device *pdev)
|
||||
+{
|
||||
+ int ret;
|
||||
+ struct gpio_pwm_chip *gpio_chip;
|
||||
+ int npwm, i;
|
||||
+ int hrtimer = 0;
|
||||
+
|
||||
+ npwm = of_gpio_named_count(pdev->dev.of_node, "pwm-gpios");
|
||||
+ if (npwm < 1)
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ gpio_chip = devm_kzalloc(&pdev->dev, sizeof(*gpio_chip), GFP_KERNEL);
|
||||
+ if (!gpio_chip)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
+ gpio_chip->chip.dev = &pdev->dev;
|
||||
+ gpio_chip->chip.ops = &gpio_pwm_ops;
|
||||
+ gpio_chip->chip.base = -1;
|
||||
+ gpio_chip->chip.npwm = npwm;
|
||||
+ gpio_chip->chip.of_xlate = of_pwm_xlate_with_flags;
|
||||
+ gpio_chip->chip.of_pwm_n_cells = 3;
|
||||
+
|
||||
+ ret = pwmchip_add(&gpio_chip->chip);
|
||||
+ if (ret < 0) {
|
||||
+ dev_err(&pdev->dev, "failed to add PWM chip: %d\n", ret);
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ for (i = 0; i < npwm; i++) {
|
||||
+ struct gpio_desc *gpiod;
|
||||
+ struct gpio_pwm_data *gpio_data;
|
||||
+
|
||||
+ gpiod = devm_gpiod_get_index(&pdev->dev, "pwm", i,
|
||||
+ GPIOD_OUT_LOW);
|
||||
+ if (IS_ERR(gpiod)) {
|
||||
+ int error;
|
||||
+
|
||||
+ error = PTR_ERR(gpiod);
|
||||
+ if (error != -EPROBE_DEFER)
|
||||
+ dev_err(&pdev->dev,
|
||||
+ "failed to get gpio flags, error: %d\n",
|
||||
+ error);
|
||||
+ return error;
|
||||
+ }
|
||||
+
|
||||
+ gpio_data = devm_kzalloc(&pdev->dev, sizeof(*gpio_data),
|
||||
+ GFP_KERNEL);
|
||||
+
|
||||
+ hrtimer_init(&gpio_data->timer,
|
||||
+ CLOCK_MONOTONIC, HRTIMER_MODE_REL);
|
||||
+ gpio_data->timer.function = &gpio_pwm_timer;
|
||||
+ gpio_data->gpiod = gpiod;
|
||||
+ gpio_data->pin_on = false;
|
||||
+ gpio_data->run = false;
|
||||
+
|
||||
+ if (hrtimer_is_hres_active(&gpio_data->timer))
|
||||
+ hrtimer++;
|
||||
+
|
||||
+ pwm_set_chip_data(&gpio_chip->chip.pwms[i], gpio_data);
|
||||
+ }
|
||||
+ if (!hrtimer) {
|
||||
+ dev_warn(&pdev->dev, "unable to use High-Resolution timer,");
|
||||
+ dev_warn(&pdev->dev, "%s is restricted to low resolution.",
|
||||
+ DRV_NAME);
|
||||
+ }
|
||||
+
|
||||
+ platform_set_drvdata(pdev, gpio_chip);
|
||||
+
|
||||
+ dev_info(&pdev->dev, "%d gpio pwms loaded\n", npwm);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int gpio_pwm_remove(struct platform_device *pdev)
|
||||
+{
|
||||
+ struct gpio_pwm_chip *gpio_chip;
|
||||
+ int i;
|
||||
+
|
||||
+ gpio_chip = platform_get_drvdata(pdev);
|
||||
+ for (i = 0; i < gpio_chip->chip.npwm; i++) {
|
||||
+ struct gpio_pwm_data *gpio_data;
|
||||
+
|
||||
+ gpio_data = pwm_get_chip_data(&gpio_chip->chip.pwms[i]);
|
||||
+
|
||||
+ hrtimer_cancel(&gpio_data->timer);
|
||||
+ }
|
||||
+
|
||||
+ return pwmchip_remove(&gpio_chip->chip);
|
||||
+}
|
||||
+
|
||||
+static const struct of_device_id gpio_pwm_of_match[] = {
|
||||
+ { .compatible = DRV_NAME, },
|
||||
+ {/* sentinel */},
|
||||
+};
|
||||
+MODULE_DEVICE_TABLE(of, gpio_pwm_of_match);
|
||||
+
|
||||
+static struct platform_driver gpio_pwm_driver = {
|
||||
+ .probe = gpio_pwm_probe,
|
||||
+ .remove = gpio_pwm_remove,
|
||||
+ .driver = {
|
||||
+ .name = DRV_NAME,
|
||||
+ .of_match_table = of_match_ptr(gpio_pwm_of_match),
|
||||
+ },
|
||||
+};
|
||||
+module_platform_driver(gpio_pwm_driver);
|
||||
+
|
||||
+MODULE_AUTHOR("Olliver Schinagl <oliver@schinagl.nl>");
|
||||
+MODULE_DESCRIPTION("Generic GPIO bit-banged PWM driver");
|
||||
+MODULE_LICENSE("GPL");
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -1,88 +0,0 @@
|
||||
From 2cf6db15ecd5d1d96158c5bba5543ba38f8387f7 Mon Sep 17 00:00:00 2001
|
||||
From: Igor Pecovnik <igor.pecovnik@gmail.com>
|
||||
Date: Tue, 4 Aug 2020 23:20:03 +0200
|
||||
Subject: [PATCH] Add fan support to Odroid N2/plus
|
||||
|
||||
Signed-off-by: Igor Pecovnik <igor.pecovnik@gmail.com>
|
||||
---
|
||||
.../boot/dts/amlogic/meson-g12b-odroid-n2.dts | 36 +++++++++++++++++++
|
||||
1 file changed, 36 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
index 65df5fb49..50bfb0dce 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
@@ -2,6 +2,7 @@
|
||||
/*
|
||||
* Copyright (c) 2019 BayLibre, SAS
|
||||
* Author: Neil Armstrong <narmstrong@baylibre.com>
|
||||
+ * Changed: Igor Pecovnik <igor@armbian.com>
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
@@ -10,6 +11,7 @@
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/gpio/meson-g12a-gpio.h>
|
||||
#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
|
||||
+#include <dt-bindings/pwm/pwm.h>
|
||||
|
||||
/ {
|
||||
compatible = "hardkernel,odroid-n2", "amlogic,s922x", "amlogic,g12b";
|
||||
@@ -27,6 +29,22 @@ chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
+ pwmgpio:pwmgpio {
|
||||
+ compatible = "pwm-gpio";
|
||||
+ #pwm-cells = <3>;
|
||||
+ pwm-gpios = <&gpio_ao GPIOAO_10 GPIO_ACTIVE_HIGH>;
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
+ pwmfan:pwm-fan {
|
||||
+ compatible = "pwm-fan";
|
||||
+ pwms = <&pwmgpio 0 40000 PWM_POLARITY_INVERTED>;
|
||||
+ cooling-min-state = <0>;
|
||||
+ cooling-max-state = <3>;
|
||||
+ #cooling-cells = <2>;
|
||||
+ cooling-levels = <0 120 170 220>;
|
||||
+ };
|
||||
+
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x0 0x0 0x40000000>;
|
||||
@@ -342,6 +360,16 @@ cpu_passive: cpu-passive {
|
||||
hysteresis = <2000>; /* millicelsius */
|
||||
type = "passive";
|
||||
};
|
||||
+ fan_0: trip-point@0 {
|
||||
+ temperature = <65000>;
|
||||
+ hysteresis = <5000>;
|
||||
+ type = "active";
|
||||
+ };
|
||||
+ fan_1: trip-point@1 {
|
||||
+ temperature = <75000>;
|
||||
+ hysteresis = <5000>;
|
||||
+ type = "active";
|
||||
+ };
|
||||
};
|
||||
cooling-maps {
|
||||
cpufreq_map0 {
|
||||
@@ -356,6 +384,14 @@ cpufreq_map1 {
|
||||
<&cpu102 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||
<&cpu103 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||
};
|
||||
+ fan_cooling_map0 {
|
||||
+ trip = <&fan_0>;
|
||||
+ cooling-device = <&pwmfan THERMAL_NO_LIMIT 2>;
|
||||
+ };
|
||||
+ fan_cooling_map1 {
|
||||
+ trip = <&fan_1>;
|
||||
+ cooling-device = <&pwmfan 2 THERMAL_NO_LIMIT>;
|
||||
+ };
|
||||
};
|
||||
};
|
||||
|
||||
--
|
||||
Created with Armbian build tools https://github.com/armbian/build
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
From 7ab821b3289f781553982e2cdc97d031e457bea0 Mon Sep 17 00:00:00 2001
|
||||
From: ckkim <changkon12@gmail.com>
|
||||
Date: Tue, 6 Oct 2020 18:37:25 +0900
|
||||
Subject: [PATCH 75/75] ODROID-N2: arm64:dts: reboot / power off support for
|
||||
ODROID-N2/N2Plus
|
||||
|
||||
Signed-off-by: ckkim <changkon12@gmail.com>
|
||||
Change-Id: I27adc0b9836823219d70a05375fa1327f830130d
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/meson64_odroidn2.dts | 9 +++++++++
|
||||
arch/arm64/boot/dts/amlogic/meson64_odroidn2_plus.dts | 4 ++++
|
||||
2 files changed, 13 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson64_odroidn2.dts b/arch/arm64/boot/dts/amlogic/meson64_odroidn2.dts
|
||||
index d7bbe52d92af..3f1a090be84c 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
|
||||
@@ -18,6 +18,15 @@
|
||||
compatible = "hardkernel,odroid-n2", "amlogic,s922x", "amlogic,g12b";
|
||||
model = "Hardkernel ODROID-N2";
|
||||
|
||||
+ reboot: odroid-reboot {
|
||||
+ compatible = "odroid,reboot";
|
||||
+ sys_reset = <0x84000009>;
|
||||
+ sys_poweroff = <0x84000008>;
|
||||
+
|
||||
+ sd-vqsw = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>;
|
||||
+ sd-vmmc = <&gpio_ao GPIOAO_8 GPIO_ACTIVE_HIGH>;
|
||||
+ };
|
||||
+
|
||||
aliases {
|
||||
ethernet0 = ðmac;
|
||||
i2c0 = &i2c2;
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson64_odroidn2_plus.dts b/arch/arm64/boot/dts/amlogic/meson64_odroidn2_plus.dts
|
||||
index 8dc68eee628d..1f3ed5f03c68 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2-plus.dts
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2-plus.dts
|
||||
@@ -12,6 +12,10 @@ / {
|
||||
model = "Hardkernel ODROID-N2Plus";
|
||||
};
|
||||
|
||||
+&reboot {
|
||||
+ sd-vqen = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
|
||||
+};
|
||||
+
|
||||
&vddcpu_a {
|
||||
regulator-min-microvolt = <680000>;
|
||||
regulator-max-microvolt = <1040000>;
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts
|
||||
index 93ba39044eb3..e2f727ffb731 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
@@ -24,6 +24,7 @@ aliases {
|
||||
serial1 = &uart_A;
|
||||
i2c0 = &i2c2;
|
||||
i2c1 = &i2c3;
|
||||
+ rtc1 = &vrtc;
|
||||
};
|
||||
|
||||
dioo2133: audio-amplifier-0 {
|
||||
@@ -632,6 +633,11 @@ &i2c3 {
|
||||
|
||||
/* default 100k */
|
||||
clock-frequency = <100000>;
|
||||
+
|
||||
+ rtc@51 {
|
||||
+ compatible = "nxp,pcf8563";
|
||||
+ reg = <0x51>;
|
||||
+ };
|
||||
};
|
||||
|
||||
&ir {
|
||||
Reference in New Issue
Block a user