mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 08:03:01 +09:00
Pull pin control updates from Linus Walleij:
"We have some patches to DTS[I] files in arm and arm64 as well, that
were merged here as DT headers were being changed.
The most interesting stuff is the Intel Tangier chip support and
AMLogic C3 in my opinion.
No core changes this time.
Drivers:
- Intel Tangier SoC pin control support
- AMLogic C3 SoC pin control support
- Texas Instruments AM654 SoC pin control support
- Qualcomm SM8350 and SM6115 LPASS (Low Power Audio Sub-System) pin
control support
- Qualcomm PMX75 and PM7550BA (Power Management) pin control support
- Qualcomm PMC8180 and PMC8180C (Power Management) pin control
support
- DROP the Oxnas driver as there is not enough of community interest
to keep carrying this ARM(11) port
Enhancements:
- Bias control in the MT7986 pin control driver
- Misc device tree binding enhancements such as the Broadcom 11351
being converted to YAML
- New macro: DEFINE_NOIRQ_DEV_PM_OPS() put to use
- Clean up some SPDX headers
- Handle non-unique devicetree subnode names in two Renesas drivers"
* tag 'pinctrl-v6.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (80 commits)
pinctrl: mlxbf3: Remove gpio_disable_free()
pinctrl: use capital "OR" for multiple licenses in SPDX
dt-bindings: pinctrl: renesas,rza2: Use 'additionalProperties' for child nodes
pinctrl: cherryview: fix address_space_handler() argument
pinctrl: intel: consolidate ACPI dependency
pinctrl: tegra: Switch to use DEFINE_NOIRQ_DEV_PM_OPS() helper
pinctrl: renesas: Switch to use DEFINE_NOIRQ_DEV_PM_OPS() helper
pinctrl: mvebu: Switch to use DEFINE_NOIRQ_DEV_PM_OPS() helper
pinctrl: at91: Switch to use DEFINE_NOIRQ_DEV_PM_OPS() helper
pinctrl: cherryview: Switch to use DEFINE_NOIRQ_DEV_PM_OPS() helper
pm: Introduce DEFINE_NOIRQ_DEV_PM_OPS() helper
pinctrl: mediatek: assign functions to configure pin bias on MT7986
pinctrl: mediatek: fix pull_type data for MT7981
dt-bindings: pinctrl: aspeed: Allow only defined pin mux node properties
dt-bindings: pinctrl: Drop 'phandle' properties
pinctrl: lynxpoint: Make use of pm_ptr()
pinctrl: baytrail: Make use of pm_ptr()
pinctrl: intel: Switch to use exported namespace
pinctrl: lynxpoint: reuse common functions from pinctrl-intel
pinctrl: cherryview: reuse common functions from pinctrl-intel
...
303 lines
6.6 KiB
Plaintext
303 lines
6.6 KiB
Plaintext
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
/*
|
|
* Copyright (c) 2019 BayLibre, SAS
|
|
* Author: Neil Armstrong <narmstrong@baylibre.com>
|
|
*/
|
|
|
|
#include "meson-g12b-odroid.dtsi"
|
|
|
|
/ {
|
|
aliases {
|
|
rtc0 = &rtc;
|
|
};
|
|
|
|
dio2133: audio-amplifier-0 {
|
|
compatible = "simple-audio-amplifier";
|
|
enable-gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
|
|
VCC-supply = <&vcc_5v>;
|
|
sound-name-prefix = "U19";
|
|
status = "okay";
|
|
};
|
|
|
|
hub_5v: regulator-hub_5v {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "HUB_5V";
|
|
regulator-min-microvolt = <5000000>;
|
|
regulator-max-microvolt = <5000000>;
|
|
vin-supply = <&vcc_5v>;
|
|
|
|
/* Connected to the Hub CHIPENABLE, LOW sets low power state */
|
|
gpio = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
|
|
enable-active-high;
|
|
};
|
|
|
|
sound {
|
|
compatible = "amlogic,axg-sound-card";
|
|
model = "ODROID-N2";
|
|
audio-widgets = "Line", "Lineout";
|
|
audio-aux-devs = <&tdmout_b>, <&tdmout_c>, <&tdmin_a>,
|
|
<&tdmin_b>, <&tdmin_c>, <&tdmin_lb>,
|
|
<&dio2133>;
|
|
audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
|
|
"TDMOUT_B IN 1", "FRDDR_B OUT 1",
|
|
"TDMOUT_B IN 2", "FRDDR_C OUT 1",
|
|
"TDM_B Playback", "TDMOUT_B OUT",
|
|
"TDMOUT_C IN 0", "FRDDR_A OUT 2",
|
|
"TDMOUT_C IN 1", "FRDDR_B OUT 2",
|
|
"TDMOUT_C IN 2", "FRDDR_C OUT 2",
|
|
"TDM_C Playback", "TDMOUT_C OUT",
|
|
"TDMIN_A IN 4", "TDM_B Loopback",
|
|
"TDMIN_B IN 4", "TDM_B Loopback",
|
|
"TDMIN_C IN 4", "TDM_B Loopback",
|
|
"TDMIN_LB IN 1", "TDM_B Loopback",
|
|
"TDMIN_A IN 5", "TDM_C Loopback",
|
|
"TDMIN_B IN 5", "TDM_C Loopback",
|
|
"TDMIN_C IN 5", "TDM_C Loopback",
|
|
"TDMIN_LB IN 2", "TDM_C Loopback",
|
|
"TODDR_A IN 0", "TDMIN_A OUT",
|
|
"TODDR_B IN 0", "TDMIN_A OUT",
|
|
"TODDR_C IN 0", "TDMIN_A OUT",
|
|
"TODDR_A IN 1", "TDMIN_B OUT",
|
|
"TODDR_B IN 1", "TDMIN_B OUT",
|
|
"TODDR_C IN 1", "TDMIN_B OUT",
|
|
"TODDR_A IN 2", "TDMIN_C OUT",
|
|
"TODDR_B IN 2", "TDMIN_C OUT",
|
|
"TODDR_C IN 2", "TDMIN_C OUT",
|
|
"TODDR_A IN 6", "TDMIN_LB OUT",
|
|
"TODDR_B IN 6", "TDMIN_LB OUT",
|
|
"TODDR_C IN 6", "TDMIN_LB OUT",
|
|
"U19 INL", "ACODEC LOLP",
|
|
"U19 INR", "ACODEC LORP",
|
|
"Lineout", "U19 OUTL",
|
|
"Lineout", "U19 OUTR";
|
|
|
|
assigned-clocks = <&clkc CLKID_MPLL2>,
|
|
<&clkc CLKID_MPLL0>,
|
|
<&clkc CLKID_MPLL1>;
|
|
assigned-clock-parents = <0>, <0>, <0>;
|
|
assigned-clock-rates = <294912000>,
|
|
<270950400>,
|
|
<393216000>;
|
|
|
|
dai-link-0 {
|
|
sound-dai = <&frddr_a>;
|
|
};
|
|
|
|
dai-link-1 {
|
|
sound-dai = <&frddr_b>;
|
|
};
|
|
|
|
dai-link-2 {
|
|
sound-dai = <&frddr_c>;
|
|
};
|
|
|
|
dai-link-3 {
|
|
sound-dai = <&toddr_a>;
|
|
};
|
|
|
|
dai-link-4 {
|
|
sound-dai = <&toddr_b>;
|
|
};
|
|
|
|
dai-link-5 {
|
|
sound-dai = <&toddr_c>;
|
|
};
|
|
|
|
/* 8ch hdmi interface */
|
|
dai-link-6 {
|
|
sound-dai = <&tdmif_b>;
|
|
dai-format = "i2s";
|
|
dai-tdm-slot-tx-mask-0 = <1 1>;
|
|
dai-tdm-slot-tx-mask-1 = <1 1>;
|
|
dai-tdm-slot-tx-mask-2 = <1 1>;
|
|
dai-tdm-slot-tx-mask-3 = <1 1>;
|
|
mclk-fs = <256>;
|
|
|
|
codec-0 {
|
|
sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
|
|
};
|
|
|
|
codec-1 {
|
|
sound-dai = <&toacodec TOACODEC_IN_B>;
|
|
};
|
|
};
|
|
|
|
/* i2s jack output interface */
|
|
dai-link-7 {
|
|
sound-dai = <&tdmif_c>;
|
|
dai-format = "i2s";
|
|
dai-tdm-slot-tx-mask-0 = <1 1>;
|
|
mclk-fs = <256>;
|
|
|
|
codec-0 {
|
|
sound-dai = <&tohdmitx TOHDMITX_I2S_IN_C>;
|
|
};
|
|
|
|
codec-1 {
|
|
sound-dai = <&toacodec TOACODEC_IN_C>;
|
|
};
|
|
};
|
|
|
|
/* hdmi glue */
|
|
dai-link-8 {
|
|
sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
|
|
|
|
codec {
|
|
sound-dai = <&hdmi_tx>;
|
|
};
|
|
};
|
|
|
|
/* acodec glue */
|
|
dai-link-9 {
|
|
sound-dai = <&toacodec TOACODEC_OUT>;
|
|
|
|
codec {
|
|
sound-dai = <&acodec>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&acodec {
|
|
AVDD-supply = <&vddao_1v8>;
|
|
status = "okay";
|
|
};
|
|
|
|
ðmac {
|
|
pinctrl-0 = <ð_pins>, <ð_rgmii_pins>;
|
|
pinctrl-names = "default";
|
|
status = "okay";
|
|
phy-mode = "rgmii";
|
|
phy-handle = <&external_phy>;
|
|
amlogic,tx-delay-ns = <2>;
|
|
};
|
|
|
|
&ext_mdio {
|
|
external_phy: ethernet-phy@0 {
|
|
/* Realtek RTL8211F (0x001cc916) */
|
|
reg = <0>;
|
|
max-speed = <1000>;
|
|
|
|
reset-assert-us = <10000>;
|
|
reset-deassert-us = <80000>;
|
|
reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
|
|
|
|
interrupt-parent = <&gpio_intc>;
|
|
/* MAC_INTR on GPIOZ_14 */
|
|
interrupts = <IRQID_GPIOZ_14 IRQ_TYPE_LEVEL_LOW>;
|
|
};
|
|
};
|
|
|
|
&gpio {
|
|
gpio-line-names =
|
|
/* GPIOZ */
|
|
"", "", "", "", "", "", "", "",
|
|
"", "", "", "", "", "", "", "",
|
|
/* GPIOH */
|
|
"", "", "", "", "", "", "", "",
|
|
"",
|
|
/* BOOT */
|
|
"", "", "", "", "", "", "", "",
|
|
"", "", "", "", "", "", "", "",
|
|
/* GPIOC */
|
|
"", "", "", "", "", "", "", "",
|
|
/* GPIOA */
|
|
"PIN_44", /* GPIOA_0 */
|
|
"PIN_46", /* GPIOA_1 */
|
|
"PIN_45", /* GPIOA_2 */
|
|
"PIN_47", /* GPIOA_3 */
|
|
"PIN_26", /* GPIOA_4 */
|
|
"", "", "", "", "", "",
|
|
"PIN_42", /* GPIOA_11 */
|
|
"PIN_32", /* GPIOA_12 */
|
|
"PIN_7", /* GPIOA_13 */
|
|
"PIN_27", /* GPIOA_14 */
|
|
"PIN_28", /* GPIOA_15 */
|
|
/* GPIOX */
|
|
"PIN_16", /* GPIOX_0 */
|
|
"PIN_18", /* GPIOX_1 */
|
|
"PIN_22", /* GPIOX_2 */
|
|
"PIN_11", /* GPIOX_3 */
|
|
"PIN_13", /* GPIOX_4 */
|
|
"PIN_33", /* GPIOX_5 */
|
|
"PIN_35", /* GPIOX_6 */
|
|
"PIN_15", /* GPIOX_7 */
|
|
"PIN_19", /* GPIOX_8 */
|
|
"PIN_21", /* GPIOX_9 */
|
|
"PIN_24", /* GPIOX_10 */
|
|
"PIN_23", /* GPIOX_11 */
|
|
"PIN_8", /* GPIOX_12 */
|
|
"PIN_10", /* GPIOX_13 */
|
|
"PIN_29", /* GPIOX_14 */
|
|
"PIN_31", /* GPIOX_15 */
|
|
"PIN_12", /* GPIOX_16 */
|
|
"PIN_3", /* GPIOX_17 */
|
|
"PIN_5", /* GPIOX_18 */
|
|
"PIN_36"; /* GPIOX_19 */
|
|
/*
|
|
* 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
|
|
* This signal should be handled by a USB specific power sequence
|
|
* in order to reset the Hub when USB bus is powered down.
|
|
*/
|
|
usb-hub-hog {
|
|
gpio-hog;
|
|
gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>;
|
|
output-high;
|
|
line-name = "usb-hub-reset";
|
|
};
|
|
};
|
|
|
|
&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;
|
|
};
|
|
};
|
|
|
|
&ir {
|
|
status = "okay";
|
|
pinctrl-0 = <&remote_input_ao_pins>;
|
|
pinctrl-names = "default";
|
|
linux,rc-map-name = "rc-odroid";
|
|
};
|
|
|
|
/*
|
|
* EMMC_D4, EMMC_D5, EMMC_D6 and EMMC_D7 pins are shared between SPI NOR pins
|
|
* and eMMC Data 4 to 7 pins.
|
|
* 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.
|
|
* The SW1 slide should also be set to the correct position.
|
|
*/
|
|
&spifc {
|
|
status = "disabled";
|
|
pinctrl-0 = <&nor_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
mx25u64: flash@0 {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "mxicy,mx25u6435f", "jedec,spi-nor";
|
|
reg = <0>;
|
|
spi-max-frequency = <104000000>;
|
|
};
|
|
};
|
|
|
|
&toacodec {
|
|
status = "okay";
|
|
};
|
|
|
|
&usb {
|
|
vbus-supply = <&usb_pwr_en>;
|
|
};
|
|
|
|
&usb2_phy1 {
|
|
/* Enable the hub which is connected to this port */
|
|
phy-supply = <&hub_5v>;
|
|
};
|