Module Name:    src
Committed By:   jmcneill
Date:           Wed Sep 27 10:50:06 UTC 2017

Modified Files:
        src/sys/arch/arm/nvidia: tegra210_car.c tegra_hdaudio.c

Log Message:
Tegra210 HDA support.


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/sys/arch/arm/nvidia/tegra210_car.c
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/nvidia/tegra_hdaudio.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/nvidia/tegra210_car.c
diff -u src/sys/arch/arm/nvidia/tegra210_car.c:1.15 src/sys/arch/arm/nvidia/tegra210_car.c:1.16
--- src/sys/arch/arm/nvidia/tegra210_car.c:1.15	Wed Sep 27 10:19:48 2017
+++ src/sys/arch/arm/nvidia/tegra210_car.c	Wed Sep 27 10:50:06 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: tegra210_car.c,v 1.15 2017/09/27 10:19:48 jmcneill Exp $ */
+/* $NetBSD: tegra210_car.c,v 1.16 2017/09/27 10:50:06 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2015-2017 Jared McNeill <[email protected]>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tegra210_car.c,v 1.15 2017/09/27 10:19:48 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tegra210_car.c,v 1.16 2017/09/27 10:50:06 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -448,6 +448,14 @@ static const char *mux_soc_therm_p[] =
 	{ "CLK_M", "PLL_C", "PLL_P", "PLL_A",
 	  "PLL_C2", "PLL_C4_OUT0", "PLL_C4_OUT1", "PLL_C4_OUT2" };
 
+static const char *mux_hda2codec_2x_p[] =
+	{ "PLL_P", "PLL_C2", "PLL_C4_OUT0", "PLL_A",
+	  "PLL_A", "PLL_C4_OUT1", "CLK_M", "PLL_C4_OUT2" };
+
+static const char *mux_hda_p[] =
+	{ "PLL_P", "PLL_C2", "PLL_C", "PLL_C4_OUT0",
+	  NULL, "PLL_C4_OUT1", "CLK_M", "PLL_C4_OUT2" };
+
 static struct tegra_clk tegra210_car_clocks[] = {
 	CLK_FIXED("CLK_M", TEGRA210_REF_FREQ),
 
@@ -520,6 +528,13 @@ static struct tegra_clk tegra210_car_clo
 		CAR_CLKSRC_SOC_THERM_REG, CAR_CLKSRC_SOC_THERM_SRC,
 		mux_soc_therm_p),
 
+	CLK_MUX("MUX_HDA2CODEC_2X",
+		CAR_CLKSRC_HDA2CODEC_2X_REG, CAR_CLKSRC_HDA2CODEC_2X_SRC,
+		mux_hda2codec_2x_p),
+	CLK_MUX("MUX_HDA",
+		CAR_CLKSRC_HDA_REG, CAR_CLKSRC_HDA_SRC,
+		mux_hda_p),
+
 	CLK_DIV("DIV_UARTA", "MUX_UARTA",
 		CAR_CLKSRC_UARTA_REG, CAR_CLKSRC_UART_DIV),
 	CLK_DIV("DIV_UARTB", "MUX_UARTB",
@@ -574,6 +589,11 @@ static struct tegra_clk tegra210_car_clo
 	CLK_DIV("DIV_SOC_THERM", "MUX_SOC_THERM",
 		CAR_CLKSRC_SOC_THERM_REG, CAR_CLKSRC_SOC_THERM_DIV),
 
+	CLK_DIV("DIV_HDA2CODEC_2X", "MUX_HDA2CODEC_2X",
+		CAR_CLKSRC_HDA2CODEC_2X_REG, CAR_CLKSRC_HDA2CODEC_2X_DIV),
+	CLK_DIV("DIV_HDA", "MUX_HDA",
+		CAR_CLKSRC_HDA_REG, CAR_CLKSRC_HDA_DIV),
+
 	CLK_GATE("PLL_U_OUT1", "DIV_PLL_U_OUT1",
 		 CAR_PLLU_OUTA_REG, CAR_PLLU_OUTA_REG, CAR_PLLU_OUTA_OUT1_CLKEN),
 	CLK_GATE("PLL_U_OUT2", "DIV_PLL_U_OUT2",
@@ -612,6 +632,9 @@ static struct tegra_clk tegra210_car_clo
 	CLK_GATE_U("AFI", "MSELECT", CAR_DEV_U_AFI),
 	CLK_GATE_V("TSENSOR", "DIV_TSENSOR", CAR_DEV_V_TSENSOR),
 	CLK_GATE_U("SOC_THERM", "DIV_SOC_THERM", CAR_DEV_U_SOC_THERM),
+	CLK_GATE_W("HDA2HDMI", "CLK_M", CAR_DEV_W_HDA2HDMICODEC),
+	CLK_GATE_V("HDA2CODEC_2X", "DIV_HDA2CODEC_2X", CAR_DEV_V_HDA2CODEC_2X),
+	CLK_GATE_V("HDA", "DIV_HDA", CAR_DEV_V_HDA),
 };
 
 struct tegra210_init_parent {

Index: src/sys/arch/arm/nvidia/tegra_hdaudio.c
diff -u src/sys/arch/arm/nvidia/tegra_hdaudio.c:1.8 src/sys/arch/arm/nvidia/tegra_hdaudio.c:1.9
--- src/sys/arch/arm/nvidia/tegra_hdaudio.c:1.8	Sun Apr 16 12:28:21 2017
+++ src/sys/arch/arm/nvidia/tegra_hdaudio.c	Wed Sep 27 10:50:06 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: tegra_hdaudio.c,v 1.8 2017/04/16 12:28:21 jmcneill Exp $ */
+/* $NetBSD: tegra_hdaudio.c,v 1.9 2017/09/27 10:50:06 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2015 Jared D. McNeill <[email protected]>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tegra_hdaudio.c,v 1.8 2017/04/16 12:28:21 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tegra_hdaudio.c,v 1.9 2017/09/27 10:50:06 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -85,7 +85,11 @@ CFATTACH_DECL2_NEW(tegra_hdaudio, sizeof
 static int
 tegra_hdaudio_match(device_t parent, cfdata_t cf, void *aux)
 {
-	const char * const compatible[] = { "nvidia,tegra124-hda", NULL };
+	const char * const compatible[] = {
+		"nvidia,tegra210-hda",
+		"nvidia,tegra124-hda",
+		NULL
+	};
 	struct fdt_attach_args * const faa = aux;
 
 	return of_match_compatible(faa->faa_phandle, compatible);

Reply via email to