Files
t23x-public-dts/overlay/tegra234-p3737-0000+p3701-0000.dts
Sameer Pujar b21620ff9b generic-dts: Add interrupts bindings to RT5640
Concord board has onboard RT5640 audio codec and is connected to
10-pin HD header. Add interrupts bindings to enable jack detections
to work on the HD header.

Bug 3897326

Change-Id: Ibb3adfa200e63615ab90365c84fae2ea1dc60a28
Reviewed-on: https://git-master.nvidia.com/r/c/device/hardware/nvidia/platform/t23x/concord-generic-dts/+/2822663
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Tested-by: Sameer Pujar <spujar@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-19 18:17:43 +00:00

313 lines
6.5 KiB
Devicetree

// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
/dts-v1/;
/plugin/;
#include "overlay/tegra234-soc-overlay.dtsi"
#include "tegra234-p3737-0000.dtsi"
#include "tegra234-p3701-0000.dtsi"
#include "overlay/tegra234-audio-dai-links-overlay.dtsi"
#include "tegra234-dcb-p3737-0000-p3701-0000.dtsi"
/ {
fragment-t234-p3737-p3701@0 {
target-path = "/bpmp/i2c";
__overlay__ {
vrs@3c {
compatible = "nvidia,vrs-pseq";
reg = <0x3c>;
interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
interrupt-controller;
#interrupt-cells = <3>;
status = "okay";
vrs_rtc: rtc {
status = "okay";
};
};
};
};
fragment-t234-p3737-p3701@1 {
target-path = "/bus@0/i2c@3160000";
__overlay__ {
status = "okay";
};
};
fragment-t234-p3737-p3701@2 {
target-path = "/bus@0/i2c@c240000";
__overlay__ {
status = "okay";
};
};
fragment-t234-p3737-p3701@3 {
target-path = "/bus@0/i2c@3180000";
__overlay__ {
status = "okay";
};
};
fragment-t234-p3737-p3701@4 {
target-path = "/bus@0/i2c@3190000";
__overlay__ {
status = "okay";
};
};
fragment-t234-p3737-p3701@5 {
target-path = "/bus@0/i2c@31b0000";
__overlay__ {
nvidia,hw-instance-id = <0x5>;
status = "okay";
};
};
fragment-t234-p3737-p3701@6 {
target-path = "/bus@0/i2c@31c0000";
__overlay__ {
status = "okay";
};
};
fragment-t234-p3737-p3701@7 {
target-path = "/bus@0/i2c@c250000";
__overlay__ {
status = "okay";
};
};
fragment-t234-p3737-p3701@8 {
target-path = "/bus@0/i2c@31e0000";
__overlay__ {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
rt5640: rt5640.8-001c@1c {
compatible = "realtek,rt5640";
reg = <0x1c>;
clocks = <&bpmp TEGRA234_CLK_AUD_MCLK>;
clock-names = "mclk";
realtek,dmic1-data-pin = <0>; /* RT5659_DMIC1_NULL */
realtek,dmic2-data-pin = <0>; /* RT5659_DMIC2_NULL */
realtek,jack-detect-source = <7>;
/* Codec IRQ output */
interrupt-parent = <&gpio>;
interrupts = <TEGRA234_MAIN_GPIO(AC, 5) GPIO_ACTIVE_HIGH>;
#sound-dai-cells = <1>;
sound-name-prefix = "CVB-RT";
status = "okay";
};
};
};
fragment-t234-p3737-p3701@9 {
target-path = "/";
__overlay__ {
sound {
compatible = "nvidia,tegra186-ape";
clocks = <&bpmp TEGRA234_CLK_PLLA>,
<&bpmp TEGRA234_CLK_PLLA_OUT0>,
<&bpmp TEGRA234_CLK_AUD_MCLK>;
clock-names = "pll_a", "pll_a_out0", "extern1";
assigned-clocks = <&bpmp TEGRA234_CLK_AUD_MCLK>;
assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLA_OUT0>;
nvidia-audio-card,name = "NVIDIA Jetson AGX Orin APE";
nvidia-audio-card,widgets =
"Headphone", "CVB-RT Headphone Jack",
"Microphone", "CVB-RT Mic Jack",
"Speaker", "CVB-RT Int Spk",
"Microphone", "CVB-RT Int Mic";
nvidia-audio-card,routing =
"CVB-RT Headphone Jack", "CVB-RT HPOL",
"CVB-RT Headphone Jack", "CVB-RT HPOR",
"CVB-RT IN1P", "CVB-RT Mic Jack",
"CVB-RT IN2P", "CVB-RT Mic Jack",
"CVB-RT Int Spk", "CVB-RT SPOLP",
"CVB-RT Int Spk", "CVB-RT SPORP",
"CVB-RT DMIC1", "CVB-RT Int Mic",
"CVB-RT DMIC2", "CVB-RT Int Mic";
nvidia-audio-card,mclk-fs = <256>;
nvidia-audio-card,dai-link@76 {
link-name = "rt5640-playback";
codec {
sound-dai = <&rt5640 0>;
prefix = "CVB-RT";
};
};
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
linux,cma { /* Needed for nvgpu comptags */
compatible = "shared-dma-pool";
reusable;
size = <0x0 0x10000000>; /* 256MB */
alignment = <0x0 0x10000>;
linux,cma-default;
status = "okay";
};
};
};
};
fragment-t234-p3737-p3701@10 {
target-path = "/cpus";
__overlay__ {
cpu_core_power_states {
C1: c1 {
compatible = "arm,idle-state";
state-name = "Clock gated";
wakeup-latency-us = <1>;
min-residency-us = <1>;
status = "okay";
};
C7: c7 {
compatible = "arm,idle-state";
state-name = "Core powergate";
wakeup-latency-us = <5000>;
arm,psci-suspend-param= <0x40000007>;
min-residency-us = <30000>;
status = "okay";
};
};
};
};
fragment-t234-p3737-p3701@11 {
target-path = "/cpus/cpu@0";
__overlay__ {
cpu-idle-states = <&C7>;
};
};
fragment-t234-p3737-p3701@12 {
target-path = "/cpus/cpu@100";
__overlay__ {
cpu-idle-states = <&C7>;
};
};
fragment-t234-p3737-p3701@13 {
target-path = "/cpus/cpu@200";
__overlay__ {
cpu-idle-states = <&C7>;
};
};
fragment-t234-p3737-p3701@14 {
target-path = "/cpus/cpu@300";
__overlay__ {
cpu-idle-states = <&C7>;
};
};
fragment-t234-p3737-p3701@15 {
target-path = "/cpus/cpu@10000";
__overlay__ {
cpu-idle-states = <&C7>;
};
};
fragment-t234-p3737-p3701@16 {
target-path = "/cpus/cpu@10100";
__overlay__ {
cpu-idle-states = <&C7>;
};
};
fragment-t234-p3737-p3701@17 {
target-path = "/cpus/cpu@10200";
__overlay__ {
cpu-idle-states = <&C7>;
};
};
fragment-t234-p3737-p3701@18 {
target-path = "/cpus/cpu@10300";
__overlay__ {
cpu-idle-states = <&C7>;
};
};
fragment-t234-p3737-p3701@19 {
target-path = "/cpus/cpu@20000";
__overlay__ {
cpu-idle-states = <&C7>;
};
};
fragment-t234-p3737-p3701@20 {
target-path = "/cpus/cpu@20100";
__overlay__ {
cpu-idle-states = <&C7>;
};
};
fragment-t234-p3737-p3701@21 {
target-path = "/cpus/cpu@20200";
__overlay__ {
cpu-idle-states = <&C7>;
};
};
fragment-t234-p3737-p3701@22 {
target-path = "/cpus/cpu@20300";
__overlay__ {
cpu-idle-states = <&C7>;
};
};
fragment-t234-p3737-p3701@23 {
target-path = "/bus@0";
__overlay__ {
ethernet@6800000 {
status = "okay";
nvidia,mac-addr-idx = <0>;
nvidia,max-platform-mtu = <16383>;
/* 1=enable, 0=disable */
nvidia,pause_frames = <1>;
phy-handle = <&mgbe0_aqr113c_phy>;
phy-mode = "10gbase-r";
/* 0:XFI 10G, 1:XFI 5G, 2:USXGMII 10G, 3:USXGMII 5G */
nvidia,phy-iface-mode = <0>;
nvidia,phy-reset-gpio = <&gpio TEGRA234_MAIN_GPIO(Y, 1) 0>;
nvidia,mdio_addr = <0>;
mdio {
compatible = "nvidia,eqos-mdio";
#address-cells = <1>;
#size-cells = <0>;
mgbe0_aqr113c_phy: ethernet_phy@0 {
compatible = "ethernet-phy-ieee802.3-c45";
reg = <0x0>;
nvidia,phy-rst-pdelay-msec = <150>; /* msec */
nvidia,phy-rst-duration-usec = <221000>; /* usec */
interrupt-parent = <&gpio>;
interrupts = <TEGRA234_MAIN_GPIO(Y, 3) IRQ_TYPE_LEVEL_LOW>;
};
};
};
};
};
};