Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 18 additions & 9 deletions arch/arm/configs/nanopi3_core-qt_hdmi_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -2262,22 +2262,28 @@ CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
# CONFIG_LOGO is not set
CONFIG_SOUND=y
# CONFIG_SOUND_OSS_CORE is not set
CONFIG_SOUND_OSS_CORE=y
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_HWDEP=y
CONFIG_SND_RAWMIDI=y
CONFIG_SND_JACK=y
# CONFIG_SND_SEQUENCER is not set
# CONFIG_SND_MIXER_OSS is not set
# CONFIG_SND_PCM_OSS is not set
CONFIG_SND_SEQUENCER=y
CONFIG_SND_SEQ_DUMMY=y
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
# CONFIG_SND_HRTIMER is not set
# CONFIG_SND_DYNAMIC_MINORS is not set
# CONFIG_SND_SUPPORT_OLD_API is not set
# CONFIG_SND_VERBOSE_PROCFS is not set
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
# CONFIG_SND_RAWMIDI_SEQ is not set
CONFIG_SND_RAWMIDI_SEQ=y
# CONFIG_SND_OPL3_LIB_SEQ is not set
# CONFIG_SND_OPL4_LIB_SEQ is not set
# CONFIG_SND_SBAWE_SEQ is not set
Expand All @@ -2286,22 +2292,25 @@ CONFIG_SND_JACK=y
# CONFIG_SND_ARM is not set
# CONFIG_SND_SPI is not set
CONFIG_SND_USB=y
# CONFIG_SND_USB_AUDIO is not set
CONFIG_SND_USB_AUDIO=y
# CONFIG_SND_USB_UA101 is not set
# CONFIG_SND_USB_CAIAQ is not set
# CONFIG_SND_USB_6FIRE is not set
CONFIG_SND_SOC=y
CONFIG_SND_NXP_SOC=y
# CONFIG_SND_NXP_DFS is not set
CONFIG_SND_NXP_DFS=y
CONFIG_SND_NXP_PLL_2=y
# CONFIG_SND_NXP_PLL_3 is not set
CONFIG_SND_NXP_PLLDEV=2
CONFIG_SND_NXP_I2S=y
CONFIG_SND_NXP_I2S_CH0=y
# CONFIG_SND_NXP_I2S_CH1 is not set
CONFIG_SND_NXP_I2S_CH1=y
# CONFIG_SND_NXP_I2S_CH2 is not set
CONFIG_SND_NXP_SPDIF_TX=y
CONFIG_SND_SPDIF_TRANSCIEVER=y
# CONFIG_SND_SPDIF_RECEIVER is not set
# CONFIG_SND_PDM_REC is not set
# CONFIG_SND_CODEC_NULL is not set
CONFIG_SND_CODEC_NULL=y
# CONFIG_SND_CODEC_RT5631 is not set
CONFIG_SND_CODEC_ES8316=y
# CONFIG_SND_CODEC_ALC5623 is not set
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/mach-s5p6818/devices.c
Original file line number Diff line number Diff line change
Expand Up @@ -549,6 +549,8 @@ static unsigned long i2s_ext_mclk_set_clock(unsigned long clk, int ch)
nxp_soc_gpio_set_io_dir(PAD_GPIO_D + 13, 0);
break;
case 1:
nxp_soc_gpio_set_io_func(PAD_GPIO_A + 28, NX_GPIO_PADFUNC_0);
nxp_soc_gpio_set_io_dir(PAD_GPIO_A + 28, 0);
case 2:
nxp_soc_gpio_set_io_func(PAD_GPIO_A + 28, NX_GPIO_PADFUNC_0);
nxp_soc_gpio_set_io_dir(PAD_GPIO_A + 28, 0);
Expand Down
88 changes: 88 additions & 0 deletions arch/arm/plat-s5p6818/nanopi3/device.c
Original file line number Diff line number Diff line change
Expand Up @@ -683,6 +683,80 @@ static struct platform_device spdif_trans_dai = {
};
#endif

#if defined(CONFIG_SND_CODEC_NULL)
static struct platform_device snd_null = {
.name = "snd-null",
.id = -1,
};

struct nxp_snd_dai_plat_data snd_null_dai_data = {
.i2s_ch = 0,
#if defined(CONFIG_SND_NXP_DFS)
.sample_rate = SNDRV_PCM_RATE_8000_192000,
.pcm_format = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE,
#else
.sample_rate = 48000,
.pcm_format = SNDRV_PCM_FMTBIT_S16_LE,
#endif
};

static struct platform_device snd_null_dai = {
.name = "snd-null-card",
.id = -1,
.dev = {
.platform_data = &snd_null_dai_data,
}
};
//-------------------------------------
static struct platform_device snd_null_1 = {
.name = "snd-null",
.id = 1,
};

struct nxp_snd_dai_plat_data snd_null_dai_data_1 = {
.i2s_ch = 1,
#if defined(CONFIG_SND_NXP_DFS)
.sample_rate = SNDRV_PCM_RATE_8000_192000,
.pcm_format = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE,
#else
.sample_rate = 48000,
.pcm_format = SNDRV_PCM_FMTBIT_S16_LE,
#endif
};

static struct platform_device snd_null_dai_1 = {
.name = "snd-null-card",
.id = 1,
.dev = {
.platform_data = &snd_null_dai_data_1 ,
}
};
//-------------------------------------
static struct platform_device snd_null_2 = {
.name = "snd-null",
.id = 2,
};

struct nxp_snd_dai_plat_data snd_null_dai_data_2 = {
.i2s_ch = 2,
#if defined(CONFIG_SND_NXP_DFS)
.sample_rate = SNDRV_PCM_RATE_8000_192000,
.pcm_format = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE,
#else
.sample_rate = 48000,
.pcm_format = SNDRV_PCM_FMTBIT_S16_LE,
#endif
};

static struct platform_device snd_null_dai_2 = {
.name = "snd-null-card",
.id = 2,
.dev = {
.platform_data = &snd_null_dai_data_2 ,
}
};
#endif

#if defined(CONFIG_SND_CODEC_ES8316) || defined(CONFIG_SND_CODEC_ES8316_MODULE)
#define ES8316_I2C_BUS (0)

Expand All @@ -695,8 +769,13 @@ static struct i2c_board_info __initdata es8316_i2c_bdi = {
/* DAI */
struct nxp_snd_dai_plat_data i2s_dai_data = {
.i2s_ch = 0,
#if defined(CONFIG_SND_NXP_DFS)
.sample_rate = SNDRV_PCM_RATE_8000_192000,
.pcm_format = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE,
#else
.sample_rate = 48000,
.pcm_format = SNDRV_PCM_FMTBIT_S16_LE,
#endif
#if 1
.hp_jack = {
.support = 0,
Expand Down Expand Up @@ -1877,6 +1956,15 @@ void __init nxp_board_devs_register(void)
}
#endif

#if defined(CONFIG_SND_CODEC_NULL)
platform_device_register(&snd_null);
platform_device_register(&snd_null_dai);
platform_device_register(&snd_null_1);
platform_device_register(&snd_null_dai_1);
platform_device_register(&snd_null_2);
platform_device_register(&snd_null_dai_2);
#endif

#if defined(CONFIG_V4L2_NXP) || defined(CONFIG_V4L2_NXP_MODULE)
printk("plat: add device nxp-v4l2\n");
back_camera_power_enable(1);
Expand Down
10 changes: 5 additions & 5 deletions arch/arm/plat-s5p6818/nanopi3/include/cfg_gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,9 @@
#define PAD_GPIOA25 (PAD_MODE_ALT | PAD_FUNC_ALT1 | PAD_LEVEL_LOW | PAD_PULL_OFF | PAD_STRENGTH_0) // 0: GPIO ,1: PDVSYNC ,2:_ ,3:_ =
#define PAD_GPIOA26 (PAD_MODE_ALT | PAD_FUNC_ALT1 | PAD_LEVEL_LOW | PAD_PULL_OFF | PAD_STRENGTH_0) // 0: GPIO ,1: PDHSYNC ,2:_ ,3:_ =
#define PAD_GPIOA27 (PAD_MODE_ALT | PAD_FUNC_ALT1 | PAD_LEVEL_LOW | PAD_PULL_OFF | PAD_STRENGTH_0) // 0: GPIO ,1: PDDE ,2:_ ,3:_ =
#define PAD_GPIOA28 (PAD_MODE_ALT | PAD_FUNC_ALT1 | PAD_LEVEL_LOW | PAD_PULL_OFF | PAD_STRENGTH_0) // 0: GPIO ,1: VP0_EXTCLK ,2: I2S2_CLK ,3: I2S1_CLK =
#define PAD_GPIOA28 (PAD_MODE_ALT | PAD_FUNC_ALT3 | PAD_LEVEL_LOW | PAD_PULL_DN | PAD_STRENGTH_0) // 0: GPIO ,1: VP0_EXTCLK ,2: I2S2_CLK ,3: I2S1_CLK =
#define PAD_GPIOA29 (PAD_MODE_ALT | PAD_FUNC_ALT1 | PAD_LEVEL_LOW | PAD_PULL_OFF | PAD_STRENGTH_1) // 0: GPIO ,1: SDMMC0_CCLK ,2:_ ,3:_ =
#define PAD_GPIOA30 (PAD_MODE_ALT | PAD_FUNC_ALT1 | PAD_LEVEL_LOW | PAD_PULL_OFF | PAD_STRENGTH_0) // 0: GPIO ,1: VIP0_VD[0] ,2: SDEX[0] ,3: I2S1_BCLK =
#define PAD_GPIOA30 (PAD_MODE_ALT | PAD_FUNC_ALT3 | PAD_LEVEL_LOW | PAD_PULL_OFF | PAD_STRENGTH_0) // 0: GPIO ,1: VIP0_VD[0] ,2: SDEX[0] ,3: I2S1_BCLK =
#define PAD_GPIOA31 (PAD_MODE_ALT | PAD_FUNC_ALT1 | PAD_LEVEL_LOW | PAD_PULL_OFF | PAD_STRENGTH_1) // 0: GPIO ,1: SDMMC0_CMD ,2:_ ,3:_ =

/*------------------------------------------------------------------------------
Expand All @@ -66,16 +66,16 @@
* | PAD_MODE_XXX | PAD_FUNC_ALT(0,1,2,3) | PAD_LEVEL_XXX | PAD_PULL_UP,OFF | PAD_STRENGTH_0,1,2,3
*
-----------------------------------------------------------------------------*/
#define PAD_GPIOB0 (PAD_MODE_ALT | PAD_FUNC_ALT1 | PAD_LEVEL_LOW | PAD_PULL_DN | PAD_STRENGTH_0) // 0: GPIO ,1: VIP0_VD[1] ,2: SDEX[1] ,3: I2S1_LRCLK =
#define PAD_GPIOB0 (PAD_MODE_ALT | PAD_FUNC_ALT3 | PAD_LEVEL_LOW | PAD_PULL_OFF | PAD_STRENGTH_0) // 0: GPIO ,1: VIP0_VD[1] ,2: SDEX[1] ,3: I2S1_LRCLK =
#define PAD_GPIOB1 (PAD_MODE_ALT | PAD_FUNC_ALT1 | PAD_LEVEL_LOW | PAD_PULL_OFF | PAD_STRENGTH_1) // 0: GPIO ,1: SDMMC0_CDATA[0] ,2:_ ,3:_ =
#define PAD_GPIOB2 (PAD_MODE_ALT | PAD_FUNC_ALT1 | PAD_LEVEL_LOW | PAD_PULL_DN | PAD_STRENGTH_0) // 0: GPIO ,1: VIP0_VD[2] ,2: SDEX[2] ,3: I2S2_BCLK =
#define PAD_GPIOB3 (PAD_MODE_ALT | PAD_FUNC_ALT1 | PAD_LEVEL_LOW | PAD_PULL_OFF | PAD_STRENGTH_1) // 0: GPIO ,1: SDMMC0_CDATA[1] ,2:_ ,3:_ =
#define PAD_GPIOB4 (PAD_MODE_ALT | PAD_FUNC_ALT1 | PAD_LEVEL_LOW | PAD_PULL_DN | PAD_STRENGTH_0) // 0: GPIO ,1: VIP0_VD[3] ,2: SDEX[3] ,3: I2S2_LRCLK =
#define PAD_GPIOB5 (PAD_MODE_ALT | PAD_FUNC_ALT1 | PAD_LEVEL_LOW | PAD_PULL_OFF | PAD_STRENGTH_1) // 0: GPIO ,1: SDMMC0_CDATA[2] ,2:_ ,3:_ =
#define PAD_GPIOB6 (PAD_MODE_ALT | PAD_FUNC_ALT1 | PAD_LEVEL_LOW | PAD_PULL_DN | PAD_STRENGTH_0) // 0: GPIO ,1: VIP0_VD[4] ,2: SDEX[4] ,3: I2S1SDO =
#define PAD_GPIOB6 (PAD_MODE_ALT | PAD_FUNC_ALT3 | PAD_LEVEL_LOW | PAD_PULL_OFF | PAD_STRENGTH_0) // 0: GPIO ,1: VIP0_VD[4] ,2: SDEX[4] ,3: I2S1SDO =
#define PAD_GPIOB7 (PAD_MODE_ALT | PAD_FUNC_ALT1 | PAD_LEVEL_LOW | PAD_PULL_OFF | PAD_STRENGTH_1) // 0: GPIO ,1: SDMMC0_CDATA[3] ,2:_ ,3:_ =
#define PAD_GPIOB8 (PAD_MODE_IN | PAD_FUNC_ALT0 | PAD_LEVEL_LOW | PAD_PULL_OFF | PAD_STRENGTH_0) // 0: GPIO ,1: VIP0_VD[5] ,2: SDEX[5] ,3: I2S2SDO =
#define PAD_GPIOB9 (PAD_MODE_ALT | PAD_FUNC_ALT1 | PAD_LEVEL_LOW | PAD_PULL_DN | PAD_STRENGTH_0) // 0: GPIO ,1: VIP0_VD[6] ,2: SDEX[6] ,3: I2S1SDI =
#define PAD_GPIOB9 (PAD_MODE_ALT | PAD_FUNC_ALT3 | PAD_LEVEL_LOW | PAD_PULL_DN | PAD_STRENGTH_0) // 0: GPIO ,1: VIP0_VD[6] ,2: SDEX[6] ,3: I2S1SDI =
#define PAD_GPIOB10 (PAD_MODE_ALT | PAD_FUNC_ALT1 | PAD_LEVEL_LOW | PAD_PULL_DN | PAD_STRENGTH_0) // 0: GPIO ,1: VIP0_VD[7] ,2: SDEX[7] ,3: I2S2SDI =
#define PAD_GPIOB11 (PAD_MODE_ALT | PAD_FUNC_ALT0 | PAD_LEVEL_LOW | PAD_PULL_OFF | PAD_STRENGTH_0) // 0: CLE ,1: CLE1 ,2: GPIO ,3:_ =
#define PAD_GPIOB12 (PAD_MODE_OUT | PAD_FUNC_ALT2 | PAD_LEVEL_LOW | PAD_PULL_OFF | PAD_STRENGTH_0) // 0: ALE ,1: ALE1 ,2: GPIO ,3:_ =
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/plat-s5p6818/nanopi3/include/cfg_main.h
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@
#define CFG_AUDIO_I2S1_TRANS_MODE 0 // 0:I2S, 1:Left 2:Right justified */
#define CFG_AUDIO_I2S1_FRAME_BIT 48 // 32, 48
#define CFG_AUDIO_I2S1_SAMPLE_RATE 48000
#define CFG_AUDIO_I2S1_PRE_SUPPLY_MCLK 0
#define CFG_AUDIO_I2S1_PRE_SUPPLY_MCLK 1

#define CFG_AUDIO_I2S2_MASTER_MODE CTRUE // CTRUE
#define CFG_AUDIO_I2S2_TRANS_MODE 0 // 0:I2S, 1:Left 2:Right justified */
Expand Down
4 changes: 2 additions & 2 deletions sound/soc/nexell/nxp-i2s.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@

#include "nxp-i2s.h"

/*

#define pr_debug printk
*/


#if defined(CONFIG_SND_NXP_DFS)
#define SND_NXP_DFS_PLLNO 5 // virtual no
Expand Down
2 changes: 1 addition & 1 deletion sound/soc/nexell/nxp-null.c
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ static int snd_null_hw_params(struct snd_pcm_substream *substream,

pr_debug("%s\n", __func__);

ret = snd_soc_dai_set_sysclk(cpu_dai, 0, sample_rate, SND_SOC_CLOCK_IN);
ret = snd_soc_dai_set_sysclk(cpu_dai, 0, sample_rate, SND_SOC_CLOCK_OUT);
if (0 > ret)
return ret;
/*
Expand Down