150balbes fix station legacy (#2782)

* Fix Legacy Stations

Co-authored-by: balbes150 <balbes-150@yandex.ru>
This commit is contained in:
Igor Pečovnik 2021-04-18 22:48:56 +02:00 committed by GitHub
parent 780d07ea79
commit 510e348202
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 3879 additions and 7122 deletions

View file

@ -1140,12 +1140,16 @@ CONFIG_NET_FLOW_LIMIT=y
CONFIG_BT=y
CONFIG_BT_BREDR=y
CONFIG_BT_RFCOMM=y
# CONFIG_BT_RFCOMM_TTY is not set
# CONFIG_BT_BNEP is not set
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=y
CONFIG_BT_HS=y
CONFIG_BT_LE=y
# CONFIG_BT_SELFTEST is not set
CONFIG_BT_SELFTEST=y
CONFIG_BT_SELFTEST_ECDH=y
CONFIG_BT_SELFTEST_SMP=y
CONFIG_BT_DEBUGFS=y
#
@ -1154,27 +1158,28 @@ CONFIG_BT_DEBUGFS=y
CONFIG_BT_INTEL=y
CONFIG_BT_BCM=y
CONFIG_BT_RTL=y
CONFIG_BT_QCA=y
# CONFIG_BT_RTKBTUSB is not set
CONFIG_BT_HCIBTUSB=y
CONFIG_BT_HCIBTUSB_BCM=y
CONFIG_BT_HCIBTUSB_RTL=y
# CONFIG_BT_HCIBTSDIO is not set
CONFIG_BT_HCIBTSDIO=m
CONFIG_BT_HCIUART=y
CONFIG_BT_HCIUART_H4=y
# CONFIG_BT_HCIUART_BCSP is not set
CONFIG_BT_HCIUART_BCSP=y
CONFIG_BT_HCIUART_ATH3K=y
CONFIG_BT_HCIUART_LL=y
# CONFIG_BT_HCIUART_3WIRE is not set
# CONFIG_BT_HCIUART_INTEL is not set
# CONFIG_BT_HCIUART_BCM is not set
# CONFIG_BT_HCIUART_QCA is not set
# CONFIG_BT_HCIBCM203X is not set
# CONFIG_BT_HCIBPA10X is not set
CONFIG_BT_HCIUART_3WIRE=y
CONFIG_BT_HCIUART_INTEL=y
CONFIG_BT_HCIUART_BCM=y
CONFIG_BT_HCIUART_QCA=y
CONFIG_BT_HCIBCM203X=m
CONFIG_BT_HCIBPA10X=m
CONFIG_BT_HCIBFUSB=y
CONFIG_BT_HCIVHCI=y
CONFIG_BT_MRVL=y
CONFIG_BT_MRVL_SDIO=y
# CONFIG_BT_ATH3K is not set
CONFIG_BT_ATH3K=m
# CONFIG_AF_RXRPC is not set
CONFIG_FIB_RULES=y
CONFIG_WIRELESS=y
@ -1233,7 +1238,16 @@ CONFIG_RFKILL_INPUT=y
CONFIG_CEPH_LIB=m
# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
# CONFIG_NFC is not set
CONFIG_NFC=m
# CONFIG_NFC_DIGITAL is not set
# CONFIG_NFC_NCI is not set
# CONFIG_NFC_HCI is not set
#
# Near Field Communication (NFC) devices
#
# CONFIG_NFC_PN533 is not set
# CONFIG_NFC_SIM is not set
CONFIG_LWTUNNEL=y
CONFIG_DST_CACHE=y
CONFIG_HAVE_BPF_JIT=y
@ -1425,7 +1439,7 @@ CONFIG_BLK_DEV_NVME=y
#
# Misc devices
#
# CONFIG_ROCKCHIP_SCR is not set
CONFIG_ROCKCHIP_SCR=y
# CONFIG_SENSORS_LIS3LV02D is not set
# CONFIG_AD525X_DPOT is not set
# CONFIG_DUMMY_IRQ is not set
@ -1528,7 +1542,7 @@ CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=y
# CONFIG_BLK_DEV_SR_VENDOR is not set
# CONFIG_CHR_DEV_SG is not set
CONFIG_CHR_DEV_SG=y
# CONFIG_CHR_DEV_SCH is not set
# CONFIG_SCSI_CONSTANTS is not set
CONFIG_SCSI_LOGGING=y
@ -1604,7 +1618,7 @@ CONFIG_SATA_PMP=y
#
CONFIG_SATA_AHCI=y
CONFIG_SATA_AHCI_PLATFORM=y
# CONFIG_AHCI_CEVA is not set
CONFIG_AHCI_CEVA=y
# CONFIG_AHCI_QORIQ is not set
# CONFIG_SATA_INIC162X is not set
# CONFIG_SATA_ACARD_AHCI is not set
@ -1683,7 +1697,7 @@ CONFIG_ATA_BMDMA=y
#
# Generic fallback / legacy drivers
#
# CONFIG_ATA_GENERIC is not set
CONFIG_ATA_GENERIC=y
# CONFIG_PATA_LEGACY is not set
CONFIG_MD=y
CONFIG_BLK_DEV_MD=m
@ -2128,7 +2142,7 @@ CONFIG_B43_BUSES_BCMA_AND_SSB=y
# CONFIG_B43_BUSES_SSB is not set
CONFIG_B43_PCI_AUTOSELECT=y
CONFIG_B43_PCICORE_AUTOSELECT=y
# CONFIG_B43_SDIO is not set
CONFIG_B43_SDIO=y
CONFIG_B43_BCMA_PIO=y
CONFIG_B43_PIO=y
CONFIG_B43_PHY_G=y
@ -2223,11 +2237,11 @@ CONFIG_RTL8723DS=m
# CONFIG_SSV6051 is not set
# CONFIG_WL_TI is not set
CONFIG_RTL8822BS=m
# CONFIG_RTL8723DU is not set
CONFIG_RTL8723DU=m
CONFIG_RTL8822BU=m
CONFIG_RTL8821CU=m
CONFIG_88XXAU=m
# CONFIG_RTL8192EU is not set
CONFIG_RTL8192EU=m
CONFIG_ZD1211RW=m
# CONFIG_ZD1211RW_DEBUG is not set
CONFIG_MWIFIEX=m
@ -2392,6 +2406,7 @@ CONFIG_TOUCHSCREEN_ELAN=y
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
# CONFIG_TOUCHSCREEN_PIXCIR is not set
# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set
# CONFIG_TOUCHSCREEN_WM97XX is not set
CONFIG_TOUCHSCREEN_USB_COMPOSITE=y
CONFIG_TOUCHSCREEN_USB_EGALAX=y
CONFIG_TOUCHSCREEN_USB_PANJIT=y
@ -2421,7 +2436,6 @@ CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
# CONFIG_TOUCHSCREEN_SX8654 is not set
# CONFIG_TOUCHSCREEN_TPS6507X is not set
# CONFIG_TOUCHSCREEN_ZFORCE is not set
CONFIG_TOUCHSCREEN_COLIBRI_VF50=m
# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set
# CONFIG_TOUCHSCREEN_VTL_CT36X is not set
CONFIG_TOUCHSCREEN_GT1X=y
@ -3052,7 +3066,7 @@ CONFIG_SSB_PCIHOST_POSSIBLE=y
CONFIG_SSB_PCIHOST=y
CONFIG_SSB_B43_PCI_BRIDGE=y
CONFIG_SSB_SDIOHOST_POSSIBLE=y
# CONFIG_SSB_SDIOHOST is not set
CONFIG_SSB_SDIOHOST=y
# CONFIG_SSB_HOST_SOC is not set
# CONFIG_SSB_SILENT is not set
# CONFIG_SSB_DEBUG is not set
@ -3124,6 +3138,7 @@ CONFIG_MFD_CROS_EC_SPI=y
# CONFIG_MFD_VIPERBOARD is not set
# CONFIG_MFD_RETU is not set
# CONFIG_MFD_PCF50633 is not set
# CONFIG_UCB1400_CORE is not set
# CONFIG_MFD_RDC321X is not set
# CONFIG_MFD_RTSX_PCI is not set
# CONFIG_MFD_RT5033 is not set
@ -3227,7 +3242,7 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
CONFIG_MEDIA_SDR_SUPPORT=y
CONFIG_MEDIA_RC_SUPPORT=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CEC_RC is not set
CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L2_SUBDEV_API=y
@ -3434,8 +3449,8 @@ CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_SOC_CAMERA=y
# CONFIG_SOC_CAMERA_PLATFORM is not set
# CONFIG_VIDEO_XILINX is not set
# CONFIG_VIDEO_RK_CIF_ISP10 is not set
# CONFIG_VIDEO_ROCKCHIP_CIF is not set
CONFIG_VIDEO_RK_CIF_ISP10=y
CONFIG_VIDEO_ROCKCHIP_CIF=y
CONFIG_VIDEO_ROCKCHIP_ISP1=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set
@ -3545,7 +3560,7 @@ CONFIG_VIDEO_CX25840=m
#
# Camera sensor devices
#
# CONFIG_VIDEO_IMX219 is not set
CONFIG_VIDEO_IMX219=y
# CONFIG_VIDEO_IMX323 is not set
# CONFIG_VIDEO_VIRT_CAMERA is not set
# CONFIG_VIDEO_OV2659 is not set
@ -3553,7 +3568,7 @@ CONFIG_VIDEO_CX25840=m
# CONFIG_VIDEO_OV2718 is not set
# CONFIG_VIDEO_OV2735 is not set
CONFIG_VIDEO_OV4689=y
# CONFIG_VIDEO_OV5647 is not set
CONFIG_VIDEO_OV5647=y
# CONFIG_VIDEO_OV5695 is not set
# CONFIG_VIDEO_OV7251 is not set
# CONFIG_VIDEO_OV7640 is not set
@ -3636,6 +3651,16 @@ CONFIG_VIDEO_SC031GS=y
# CONFIG_SOC_CAMERA_OV9740 is not set
# CONFIG_SOC_CAMERA_RJ54N1 is not set
# CONFIG_SOC_CAMERA_TW9910 is not set
# CONFIG_VIDEO_OV8858 is not set
# CONFIG_VIDEO_OV2710 is not set
# CONFIG_VIDEO_TC358749XBG is not set
# CONFIG_VIDEO_ADV7181 is not set
# CONFIG_VIDEO_OV7675 is not set
# CONFIG_VIDEO_NT99230 is not set
# CONFIG_VIDEO_OV9281 is not set
# CONFIG_VIDEO_OV9750 is not set
# CONFIG_VIDEO_ov5640 is not set
# CONFIG_VIDEO_SC2232 is not set
#
# SPI helper chips
@ -4120,11 +4145,13 @@ CONFIG_SND_PROC_FS=y
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
CONFIG_SND_VMASTER=y
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
# CONFIG_SND_EMU10K1_SEQ is not set
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_DRIVERS=y
# CONFIG_SND_DUMMY is not set
# CONFIG_SND_ALOOP is not set
@ -4132,6 +4159,7 @@ CONFIG_SND_DRIVERS=y
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set
# CONFIG_SND_AC97_POWER_SAVE is not set
CONFIG_SND_PCI=y
# CONFIG_SND_AD1889 is not set
# CONFIG_SND_ALS300 is not set
@ -4215,6 +4243,7 @@ CONFIG_SND_USB_AUDIO=y
# CONFIG_SND_USB_TONEPORT is not set
# CONFIG_SND_USB_VARIAX is not set
CONFIG_SND_SOC=y
CONFIG_SND_SOC_AC97_BUS=y
CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
# CONFIG_SND_ATMEL_SOC is not set
# CONFIG_SND_DESIGNWARE_I2S is not set
@ -4236,18 +4265,18 @@ CONFIG_SND_SOC_ROCKCHIP=y
# CONFIG_SND_SOC_ROCKCHIP_FORCE_SRAM is not set
CONFIG_SND_SOC_ROCKCHIP_I2S=y
CONFIG_SND_SOC_ROCKCHIP_I2S_TDM=y
# CONFIG_SND_SOC_ROCKCHIP_MULTI_DAIS is not set
CONFIG_SND_SOC_ROCKCHIP_MULTI_DAIS=m
CONFIG_SND_SOC_ROCKCHIP_PDM=y
CONFIG_SND_SOC_ROCKCHIP_SPDIF=y
# CONFIG_SND_SOC_ROCKCHIP_SPDIFRX is not set
CONFIG_SND_SOC_ROCKCHIP_SPDIFRX=m
# CONFIG_SND_SOC_ROCKCHIP_VAD is not set
# CONFIG_SND_SOC_ROCKCHIP_DA7219 is not set
CONFIG_SND_SOC_ROCKCHIP_DA7219=m
CONFIG_SND_SOC_ROCKCHIP_HDMI_ANALOG=y
CONFIG_SND_SOC_ROCKCHIP_HDMI_DP=y
CONFIG_SND_SOC_ROCKCHIP_MAX98090=y
CONFIG_SND_SOC_ROCKCHIP_MULTICODECS=y
CONFIG_SND_SOC_ROCKCHIP_RT5645=y
# CONFIG_SND_SOC_ROCKCHIP_RT5651_TC358749 is not set
CONFIG_SND_SOC_ROCKCHIP_RT5651_TC358749=m
CONFIG_SND_SOC_ROCKCHIP_CDNDP=y
#
@ -4260,94 +4289,105 @@ CONFIG_SND_SOC_I2C_AND_SPI=y
#
# CODEC drivers
#
# CONFIG_SND_SOC_AC97_CODEC is not set
# CONFIG_SND_SOC_ADAU1701 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
# CONFIG_SND_SOC_AK4613 is not set
# CONFIG_SND_SOC_AK4642 is not set
# CONFIG_SND_SOC_AK5386 is not set
# CONFIG_SND_SOC_ALC5623 is not set
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS42L51_I2C is not set
# CONFIG_SND_SOC_CS42L52 is not set
# CONFIG_SND_SOC_CS42L56 is not set
# CONFIG_SND_SOC_CS42L73 is not set
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
# CONFIG_SND_SOC_CS4271_SPI is not set
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CX2072X is not set
CONFIG_SND_SOC_AC97_CODEC=m
CONFIG_SND_SOC_ADAU1701=m
CONFIG_SND_SOC_AK4104=m
CONFIG_SND_SOC_AK4554=m
CONFIG_SND_SOC_AK4613=m
CONFIG_SND_SOC_AK4642=m
CONFIG_SND_SOC_AK5386=m
CONFIG_SND_SOC_ALC5623=m
CONFIG_SND_SOC_CS35L32=m
CONFIG_SND_SOC_CS42L51=m
CONFIG_SND_SOC_CS42L51_I2C=m
CONFIG_SND_SOC_CS42L52=m
CONFIG_SND_SOC_CS42L56=m
CONFIG_SND_SOC_CS42L73=m
CONFIG_SND_SOC_CS4265=m
CONFIG_SND_SOC_CS4270=m
CONFIG_SND_SOC_CS4271=m
CONFIG_SND_SOC_CS4271_I2C=m
CONFIG_SND_SOC_CS4271_SPI=m
CONFIG_SND_SOC_CS42XX8=m
CONFIG_SND_SOC_CS42XX8_I2C=m
CONFIG_SND_SOC_CS4349=m
CONFIG_SND_SOC_CX2072X=m
# CONFIG_SND_SOC_CX20810 is not set
# CONFIG_SND_SOC_DUMMY_CODEC is not set
# CONFIG_SND_SOC_BT_SCO is not set
CONFIG_SND_SOC_DA7219=m
CONFIG_SND_SOC_DUMMY_CODEC=m
CONFIG_SND_SOC_BT_SCO=m
CONFIG_SND_SOC_ES8316=y
CONFIG_SND_SOC_ES8323=y
CONFIG_SND_SOC_HDMI_CODEC=y
CONFIG_SND_SOC_ES8328=y
CONFIG_SND_SOC_ES8328_I2C=y
# CONFIG_SND_SOC_ES8396 is not set
# CONFIG_SND_SOC_GTM601 is not set
# CONFIG_SND_SOC_GVA_CODEC is not set
# CONFIG_SND_SOC_FM1288 is not set
CONFIG_SND_SOC_ES8396=m
CONFIG_SND_SOC_GTM601=m
CONFIG_SND_SOC_GVA_CODEC=m
CONFIG_SND_SOC_FM1288=m
CONFIG_SND_SOC_MAX98090=y
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM1792A is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set
# CONFIG_SND_SOC_PCM512x_SPI is not set
# CONFIG_SND_SOC_RK312X is not set
# CONFIG_SND_SOC_RK3228 is not set
CONFIG_SND_SOC_PCM1681=m
CONFIG_SND_SOC_PCM1792A=m
CONFIG_SND_SOC_PCM512x=m
CONFIG_SND_SOC_PCM512x_I2C=m
CONFIG_SND_SOC_PCM512x_SPI=m
CONFIG_SND_SOC_RK312X=m
CONFIG_SND_SOC_RK3228=m
CONFIG_SND_SOC_RK3308=y
CONFIG_SND_SOC_RK3328=y
CONFIG_SND_SOC_RK817=y
CONFIG_SND_SOC_RL6231=y
CONFIG_SND_SOC_RT5616=y
# CONFIG_SND_SOC_RT5631 is not set
CONFIG_SND_SOC_RT5631=m
CONFIG_SND_SOC_RT5640=y
CONFIG_SND_SOC_RT5645=y
CONFIG_SND_SOC_RT5651=y
# CONFIG_SND_SOC_RT5677_SPI is not set
# CONFIG_SND_SOC_SGTL5000 is not set
# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
CONFIG_SND_SOC_SGTL5000=m
CONFIG_SND_SOC_SIGMADSP=m
CONFIG_SND_SOC_SIGMADSP_I2C=m
CONFIG_SND_SOC_SIRF_AUDIO_CODEC=m
CONFIG_SND_SOC_SPDIF=y
# CONFIG_SND_SOC_SSM2602_SPI is not set
# CONFIG_SND_SOC_SSM2602_I2C is not set
# CONFIG_SND_SOC_SSM4567 is not set
# CONFIG_SND_SOC_STA32X is not set
# CONFIG_SND_SOC_STA350 is not set
# CONFIG_SND_SOC_STI_SAS is not set
# CONFIG_SND_SOC_TAS2552 is not set
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TAS571X is not set
# CONFIG_SND_SOC_TC358749X is not set
# CONFIG_SND_SOC_TFA9879 is not set
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
# CONFIG_SND_SOC_TLV320AIC3X is not set
CONFIG_SND_SOC_SSM2602=m
CONFIG_SND_SOC_SSM2602_SPI=m
CONFIG_SND_SOC_SSM2602_I2C=m
CONFIG_SND_SOC_SSM4567=m
CONFIG_SND_SOC_STA32X=m
CONFIG_SND_SOC_STA350=m
CONFIG_SND_SOC_STI_SAS=m
CONFIG_SND_SOC_TAS2552=m
CONFIG_SND_SOC_TAS5086=m
CONFIG_SND_SOC_TAS571X=m
CONFIG_SND_SOC_TC358749X=m
CONFIG_SND_SOC_TFA9879=m
CONFIG_SND_SOC_TLV320AIC23=m
CONFIG_SND_SOC_TLV320AIC23_I2C=m
CONFIG_SND_SOC_TLV320AIC23_SPI=m
CONFIG_SND_SOC_TLV320AIC31XX=m
CONFIG_SND_SOC_TLV320AIC3X=m
CONFIG_SND_SOC_TS3A227E=y
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
# CONFIG_SND_SOC_WM8580 is not set
# CONFIG_SND_SOC_WM8711 is not set
# CONFIG_SND_SOC_WM8728 is not set
# CONFIG_SND_SOC_WM8731 is not set
# CONFIG_SND_SOC_WM8737 is not set
# CONFIG_SND_SOC_WM8741 is not set
# CONFIG_SND_SOC_WM8750 is not set
# CONFIG_SND_SOC_WM8753 is not set
# CONFIG_SND_SOC_WM8770 is not set
# CONFIG_SND_SOC_WM8776 is not set
# CONFIG_SND_SOC_WM8804_I2C is not set
# CONFIG_SND_SOC_WM8804_SPI is not set
# CONFIG_SND_SOC_WM8903 is not set
# CONFIG_SND_SOC_WM8962 is not set
# CONFIG_SND_SOC_WM8978 is not set
# CONFIG_SND_SOC_TPA6130A2 is not set
CONFIG_SND_SOC_WM8510=m
CONFIG_SND_SOC_WM8523=m
CONFIG_SND_SOC_WM8580=m
CONFIG_SND_SOC_WM8711=m
CONFIG_SND_SOC_WM8728=m
CONFIG_SND_SOC_WM8731=m
CONFIG_SND_SOC_WM8737=m
CONFIG_SND_SOC_WM8741=m
CONFIG_SND_SOC_WM8750=m
CONFIG_SND_SOC_WM8753=m
CONFIG_SND_SOC_WM8770=m
CONFIG_SND_SOC_WM8776=m
CONFIG_SND_SOC_WM8804=m
CONFIG_SND_SOC_WM8804_I2C=m
CONFIG_SND_SOC_WM8804_SPI=m
CONFIG_SND_SOC_WM8903=m
CONFIG_SND_SOC_WM8962=m
CONFIG_SND_SOC_WM8978=m
CONFIG_SND_SOC_TPA6130A2=m
CONFIG_SND_SIMPLE_CARD=y
CONFIG_SOUND_PRIME=y
CONFIG_AC97_BUS=y
#
# HID support
@ -4518,7 +4558,7 @@ CONFIG_USB_WDM=m
#
# also be needed; see USB_STORAGE Help for more info
#
CONFIG_USB_STORAGE=m
CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
CONFIG_USB_STORAGE_REALTEK=m
CONFIG_REALTEK_AUTOPM=y
@ -4683,7 +4723,7 @@ CONFIG_USB_PHY=y
CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG is not set
CONFIG_USB_GADGET_DEBUG_FILES=y
CONFIG_USB_GADGET_DEBUG_FS=y
# CONFIG_USB_GADGET_DEBUG_FS is not set
CONFIG_USB_GADGET_VBUS_DRAW=500
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
@ -5201,11 +5241,12 @@ CONFIG_COMMON_CLK_XGENE=y
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_PXA is not set
# CONFIG_COMMON_CLK_CDCE706 is not set
CONFIG_HWSPINLOCK=m
#
# Hardware Spinlock drivers
#
# CONFIG_HWSPINLOCK_ROCKCHIP is not set
CONFIG_HWSPINLOCK_ROCKCHIP=m
#
# Clock Source drivers
@ -5273,10 +5314,10 @@ CONFIG_ROCKCHIP_CPUINFO=y
# CONFIG_ROCKCHIP_DEVICEINFO is not set
CONFIG_ROCKCHIP_IPA=y
CONFIG_ROCKCHIP_OPP=y
# CONFIG_ROCKCHIP_PM_TEST is not set
CONFIG_ROCKCHIP_PM_TEST=y
CONFIG_ROCKCHIP_GRF=y
CONFIG_ROCKCHIP_PM_DOMAINS=y
# CONFIG_ROCKCHIP_PVTM is not set
CONFIG_ROCKCHIP_PVTM=y
CONFIG_ROCKCHIP_SUSPEND_MODE=y
# CONFIG_ROCKCHIP_VENDOR_STORAGE is not set
# CONFIG_SUNXI_SRAM is not set
@ -5315,57 +5356,49 @@ CONFIG_IIO=y
CONFIG_IIO_BUFFER=y
# CONFIG_IIO_BUFFER_CB is not set
CONFIG_IIO_KFIFO_BUF=y
CONFIG_IIO_TRIGGERED_BUFFER=y
CONFIG_IIO_TRIGGER=y
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
CONFIG_IIO_TRIGGERED_EVENT=m
#
# Accelerometers
#
CONFIG_BMA180=m
CONFIG_BMC150_ACCEL=m
CONFIG_BMC150_ACCEL_I2C=m
CONFIG_BMC150_ACCEL_SPI=m
CONFIG_HID_SENSOR_ACCEL_3D=m
CONFIG_IIO_ST_ACCEL_3AXIS=m
CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
CONFIG_KXSD9=m
CONFIG_KXCJK1013=m
CONFIG_MMA8452=m
CONFIG_MMA9551_CORE=m
CONFIG_MMA9551=m
CONFIG_MMA9553=m
CONFIG_MXC4005=m
CONFIG_STK8312=m
CONFIG_STK8BA50=m
# CONFIG_BMA180 is not set
# CONFIG_BMC150_ACCEL is not set
# CONFIG_HID_SENSOR_ACCEL_3D is not set
# CONFIG_IIO_ST_ACCEL_3AXIS is not set
# CONFIG_KXSD9 is not set
# CONFIG_KXCJK1013 is not set
# CONFIG_MMA8452 is not set
# CONFIG_MMA9551 is not set
# CONFIG_MMA9553 is not set
# CONFIG_MXC4005 is not set
# CONFIG_STK8312 is not set
# CONFIG_STK8BA50 is not set
#
# Analog to digital converters
#
CONFIG_AD_SIGMA_DELTA=m
CONFIG_AD7266=m
CONFIG_AD7291=m
CONFIG_AD7298=m
CONFIG_AD7476=m
CONFIG_AD7791=m
CONFIG_AD7793=m
CONFIG_AD7887=m
CONFIG_AD7923=m
CONFIG_AD799X=m
CONFIG_CC10001_ADC=m
CONFIG_GPIO_MUXADC=m
CONFIG_HI8435=m
CONFIG_MAX1027=m
CONFIG_MAX1363=m
CONFIG_MCP320X=m
CONFIG_MCP3422=m
CONFIG_NAU7802=m
CONFIG_ROCKCHIP_SARADC=m
CONFIG_TI_ADC081C=m
CONFIG_TI_ADC128S052=m
CONFIG_VF610_ADC=m
# CONFIG_AD7266 is not set
# CONFIG_AD7291 is not set
# CONFIG_AD7298 is not set
# CONFIG_AD7476 is not set
# CONFIG_AD7791 is not set
# CONFIG_AD7793 is not set
# CONFIG_AD7887 is not set
# CONFIG_AD7923 is not set
# CONFIG_AD799X is not set
# CONFIG_CC10001_ADC is not set
# CONFIG_GPIO_MUXADC is not set
# CONFIG_HI8435 is not set
# CONFIG_MAX1027 is not set
# CONFIG_MAX1363 is not set
# CONFIG_MCP320X is not set
# CONFIG_MCP3422 is not set
# CONFIG_NAU7802 is not set
CONFIG_ROCKCHIP_SARADC=y
# CONFIG_TI_ADC081C is not set
# CONFIG_TI_ADC128S052 is not set
# CONFIG_VF610_ADC is not set
#
# Amplifiers
@ -5375,44 +5408,39 @@ CONFIG_VF610_ADC=m
#
# Chemical Sensors
#
CONFIG_VZ89X=m
# CONFIG_VZ89X is not set
#
# Hid Sensor IIO Common
#
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_IIO_MS_SENSORS_I2C=m
# CONFIG_HID_SENSOR_IIO_COMMON is not set
#
# SSP Sensor Common
#
# CONFIG_IIO_SSP_SENSORHUB is not set
CONFIG_IIO_ST_SENSORS_I2C=m
CONFIG_IIO_ST_SENSORS_SPI=m
CONFIG_IIO_ST_SENSORS_CORE=m
#
# Digital to analog converters
#
CONFIG_AD5064=m
CONFIG_AD5360=m
CONFIG_AD5380=m
CONFIG_AD5421=m
CONFIG_AD5446=m
CONFIG_AD5449=m
CONFIG_AD5504=m
CONFIG_AD5624R_SPI=m
CONFIG_AD5686=m
CONFIG_AD5755=m
CONFIG_AD5764=m
CONFIG_AD5791=m
CONFIG_AD7303=m
CONFIG_M62332=m
CONFIG_MAX517=m
CONFIG_MAX5821=m
CONFIG_MCP4725=m
CONFIG_MCP4922=m
# CONFIG_AD5064 is not set
# CONFIG_AD5360 is not set
# CONFIG_AD5380 is not set
# CONFIG_AD5421 is not set
# CONFIG_AD5446 is not set
# CONFIG_AD5449 is not set
# CONFIG_AD5504 is not set
# CONFIG_AD5624R_SPI is not set
# CONFIG_AD5686 is not set
# CONFIG_AD5755 is not set
# CONFIG_AD5764 is not set
# CONFIG_AD5791 is not set
# CONFIG_AD7303 is not set
# CONFIG_M62332 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5821 is not set
# CONFIG_MCP4725 is not set
# CONFIG_MCP4922 is not set
#
# Frequency Synthesizers DDS/PLL
@ -5431,87 +5459,79 @@ CONFIG_MCP4922=m
#
# Digital gyroscope sensors
#
CONFIG_ADIS16080=m
CONFIG_ADIS16130=m
CONFIG_ADIS16136=m
CONFIG_ADIS16260=m
CONFIG_ADXRS450=m
CONFIG_BMG160=m
CONFIG_BMG160_I2C=m
CONFIG_BMG160_SPI=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_IIO_ST_GYRO_3AXIS=m
CONFIG_IIO_ST_GYRO_I2C_3AXIS=m
CONFIG_IIO_ST_GYRO_SPI_3AXIS=m
CONFIG_ITG3200=m
# CONFIG_ADIS16080 is not set
# CONFIG_ADIS16130 is not set
# CONFIG_ADIS16136 is not set
# CONFIG_ADIS16260 is not set
# CONFIG_ADXRS450 is not set
# CONFIG_BMG160 is not set
# CONFIG_HID_SENSOR_GYRO_3D is not set
# CONFIG_IIO_ST_GYRO_3AXIS is not set
# CONFIG_ITG3200 is not set
#
# Humidity sensors
#
CONFIG_DHT11=m
CONFIG_HDC100X=m
CONFIG_HTU21=m
CONFIG_SI7005=m
CONFIG_SI7020=m
# CONFIG_DHT11 is not set
# CONFIG_HDC100X is not set
# CONFIG_HTU21 is not set
# CONFIG_SI7005 is not set
# CONFIG_SI7020 is not set
#
# Inertial measurement units
#
CONFIG_ADIS16400=m
CONFIG_ADIS16480=m
CONFIG_KMX61=m
CONFIG_INV_MPU6050_IIO=m
CONFIG_IIO_ADIS_LIB=m
CONFIG_IIO_ADIS_LIB_BUFFER=y
# CONFIG_ADIS16400 is not set
# CONFIG_ADIS16480 is not set
# CONFIG_KMX61 is not set
# CONFIG_INV_MPU6050_IIO is not set
#
# Light sensors
#
CONFIG_ADJD_S311=m
CONFIG_AL3320A=m
CONFIG_APDS9300=m
CONFIG_APDS9960=m
CONFIG_BH1750=m
CONFIG_CM32181=m
CONFIG_CM3232=m
CONFIG_CM3323=m
CONFIG_CM36651=m
CONFIG_GP2AP020A00F=m
CONFIG_ISL29125=m
CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_PROX=m
CONFIG_JSA1212=m
CONFIG_RPR0521=m
CONFIG_LTR501=m
CONFIG_OPT3001=m
CONFIG_PA12203001=m
CONFIG_STK3310=m
CONFIG_TCS3414=m
CONFIG_TCS3472=m
# CONFIG_ADJD_S311 is not set
# CONFIG_AL3320A is not set
# CONFIG_APDS9300 is not set
# CONFIG_APDS9960 is not set
# CONFIG_BH1750 is not set
# CONFIG_CM32181 is not set
# CONFIG_CM3232 is not set
# CONFIG_CM3323 is not set
# CONFIG_CM36651 is not set
# CONFIG_GP2AP020A00F is not set
# CONFIG_ISL29125 is not set
# CONFIG_HID_SENSOR_ALS is not set
# CONFIG_HID_SENSOR_PROX is not set
# CONFIG_JSA1212 is not set
# CONFIG_RPR0521 is not set
# CONFIG_LTR501 is not set
# CONFIG_OPT3001 is not set
# CONFIG_PA12203001 is not set
# CONFIG_STK3310 is not set
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
CONFIG_SENSORS_TSL2563=y
CONFIG_TSL4531=m
CONFIG_US5182D=m
CONFIG_VCNL4000=m
CONFIG_VL6180=m
# CONFIG_TSL4531 is not set
# CONFIG_US5182D is not set
# CONFIG_VCNL4000 is not set
# CONFIG_VL6180 is not set
#
# Magnetometer sensors
#
CONFIG_AK8975=m
CONFIG_AK09911=m
CONFIG_BMC150_MAGN=m
CONFIG_MAG3110=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
CONFIG_MMC35240=m
CONFIG_IIO_ST_MAGN_3AXIS=m
CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
# CONFIG_AK8975 is not set
# CONFIG_AK09911 is not set
# CONFIG_BMC150_MAGN is not set
# CONFIG_MAG3110 is not set
# CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set
# CONFIG_MMC35240 is not set
# CONFIG_IIO_ST_MAGN_3AXIS is not set
#
# Inclinometer sensors
#
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
# CONFIG_HID_SENSOR_INCLINOMETER_3D is not set
# CONFIG_HID_SENSOR_DEVICE_ROTATION is not set
#
# Triggers - standalone
@ -5522,43 +5542,39 @@ CONFIG_IIO_SYSFS_TRIGGER=y
#
# Digital potentiometers
#
CONFIG_MCP4531=m
# CONFIG_MCP4531 is not set
#
# Pressure sensors
#
CONFIG_BMP280=m
CONFIG_HID_SENSOR_PRESS=m
CONFIG_MPL115=m
CONFIG_MPL3115=m
CONFIG_MS5611=m
CONFIG_MS5611_I2C=m
CONFIG_MS5611_SPI=m
CONFIG_MS5637=m
CONFIG_IIO_ST_PRESS=m
CONFIG_IIO_ST_PRESS_I2C=m
CONFIG_IIO_ST_PRESS_SPI=m
CONFIG_T5403=m
# CONFIG_BMP280 is not set
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_MPL115 is not set
# CONFIG_MPL3115 is not set
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_IIO_ST_PRESS is not set
# CONFIG_T5403 is not set
#
# Lightning sensors
#
CONFIG_AS3935=m
# CONFIG_AS3935 is not set
#
# Proximity sensors
#
CONFIG_LIDAR_LITE_V2=m
CONFIG_SRF04=m
CONFIG_SX9500=m
# CONFIG_LIDAR_LITE_V2 is not set
# CONFIG_SRF04 is not set
# CONFIG_SX9500 is not set
#
# Temperature sensors
#
CONFIG_MLX90614=m
CONFIG_TMP006=m
CONFIG_TSYS01=m
CONFIG_TSYS02D=m
# CONFIG_MLX90614 is not set
# CONFIG_TMP006 is not set
# CONFIG_TSYS01 is not set
# CONFIG_TSYS02D is not set
# CONFIG_NTB is not set
# CONFIG_VME_BUS is not set
CONFIG_PWM=y
@ -5568,7 +5584,7 @@ CONFIG_PWM_SYSFS=y
# CONFIG_PWM_GPIO is not set
# CONFIG_PWM_PCA9685 is not set
CONFIG_PWM_ROCKCHIP=y
# CONFIG_PWM_ROCKCHIP_I2S is not set
CONFIG_PWM_ROCKCHIP_I2S=m
CONFIG_IRQCHIP=y
CONFIG_ARM_GIC=y
CONFIG_ARM_GIC_V2M=y
@ -5598,7 +5614,7 @@ CONFIG_PHY_ROCKCHIP_DP=y
CONFIG_PHY_ROCKCHIP_MIPI_RX=y
CONFIG_PHY_ROCKCHIP_INNO_MIPI_DPHY=y
CONFIG_PHY_ROCKCHIP_INNO_HDMI_PHY=y
# CONFIG_PHY_ROCKCHIP_INNO_VIDEO_PHY is not set
CONFIG_PHY_ROCKCHIP_INNO_VIDEO_PHY=m
CONFIG_PHY_ROCKCHIP_INNO_VIDEO_COMBO_PHY=y
CONFIG_PHY_ROCKCHIP_TYPEC=y
CONFIG_PHY_ROCKCHIP_PCIE=y
@ -5717,7 +5733,7 @@ CONFIG_QUOTACTL=y
CONFIG_AUTOFS4_FS=m
CONFIG_FUSE_FS=y
# CONFIG_CUSE is not set
CONFIG_OVERLAY_FS=m
CONFIG_OVERLAY_FS=y
#
# Caches
@ -5789,7 +5805,7 @@ CONFIG_SQUASHFS_DECOMP_SINGLE=y
# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
# CONFIG_SQUASHFS_XATTR is not set
CONFIG_SQUASHFS_ZLIB=y
# CONFIG_SQUASHFS_LZ4 is not set
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
# CONFIG_SQUASHFS_ZSTD is not set

File diff suppressed because it is too large Load diff

View file

@ -10,12 +10,9 @@ case $BRANCH in
KERNELDIR='linux-rockchip64'
KERNELPATCHDIR='rockchip64-'$BRANCH
if [[ $BOARD == station-p1 ]]; then
LINUXCONFIG='linux-station-p1-'$BRANCH
LINUXFAMILY=station-p1
elif [[ $BOARD == station-m1 ]]; then
LINUXCONFIG='linux-station-m1-'$BRANCH
LINUXFAMILY=station-m1
if [[ $BOARD == station* ]]; then
LINUXCONFIG='linux-station-'$BRANCH
LINUXFAMILY=station
fi
;;

View file

@ -1,11 +1,12 @@
--- a/arch/arm64/boot/dts/rockchip/Makefile
+++ b/arch/arm64/boot/dts/rockchip/Makefile
@@ -86,6 +86,8 @@
@@ -84,6 +84,9 @@
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-evb-rev3-cros.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-firefly-android.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-firefly-linux.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc-mezzanine.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc-plus.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-fpga.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-gru.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-kevin-r0.dtb

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,11 @@
--- a/include/dt-bindings/clock/rk3399-cru.h
+++ b/include/dt-bindings/clock/rk3399-cru.h
@@ -31,6 +31,7 @@
/* sclk gates (special clocks) */
#define SCLK_I2SOUT_SRC 64
+#define SCLK_I2S_8CH SCLK_I2SOUT_SRC
#define SCLK_I2C1 65
#define SCLK_I2C2 66
#define SCLK_I2C3 67

View file

@ -0,0 +1,354 @@
--- a/sound/soc/codecs/es8323.c
+++ b/sound/soc/codecs/es8323.c
@@ -33,17 +33,19 @@
#include <linux/gpio.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
+#include <sound/jack.h>
#include "es8323.h"
#define INVALID_GPIO -1
#define ES8323_CODEC_SET_SPK 1
#define ES8323_CODEC_SET_HP 2
-
-#define es8323_DEF_VOL 0x1b
-
-static int es8323_set_bias_level(struct snd_soc_codec *codec,
- enum snd_soc_bias_level level);
+#define MUTED_TYPE_OFF 0
+#define MUTED_TYPE_ON 1
+
+#define es8323_DEF_VOL 0x1e
+
+#define DBG(fmt, ...) printk("%s-%d:" fmt, __FUNCTION__, __LINE__, ##__VA_ARGS__)
/*
* es8323 register cache
@@ -72,21 +74,41 @@
unsigned int sysclk;
struct clk *mclk;
struct snd_pcm_hw_constraint_list *sysclk_constraints;
+ struct snd_soc_jack hp_jack;
int spk_ctl_gpio;
+ int hp_ctl_gpio;
int hp_det_gpio;
+ int aux_det_gpio;
+ int aux_det_irq;
bool muted;
bool hp_inserted;
bool spk_gpio_level;
+ bool hp_gpio_level;
bool hp_det_level;
+ bool line_in_status;
};
static struct es8323_priv *es8323_private;
-static int es8323_set_gpio(struct es8323_priv *es8323, int gpio, bool level)
-{
+static struct snd_soc_codec *es8323_codec;
+
+static int es8323_set_bias_level(struct snd_soc_codec *codec,
+ enum snd_soc_bias_level level);
+static void aux_det_work_func(struct work_struct *work);
+static DECLARE_DELAYED_WORK(aux_det_work, aux_det_work_func);
+
+static int es8323_set_gpio(int gpio, bool level)
+{
+ struct es8323_priv *es8323 = es8323_private;
+
if (!es8323) {
return 0;
+ }
+
+ if ((gpio & ES8323_CODEC_SET_HP) && es8323
+ && es8323->hp_ctl_gpio != INVALID_GPIO) {
+ gpio_set_value(es8323->hp_ctl_gpio, level);
}
if ((gpio & ES8323_CODEC_SET_SPK) && es8323
@@ -97,29 +119,91 @@
return 0;
}
-static void es8323_get_hp_det_gpio(struct es8323_priv *es8323)
-{
- if (es8323->hp_det_gpio == INVALID_GPIO)
+static void spk_detect_do_switch(int flags)
+{
+ struct es8323_priv *es8323 = es8323_private;
+
+ switch (flags) {
+ case MUTED_TYPE_ON:
+ if (es8323->hp_det_level == es8323->hp_inserted) {
+ es8323_set_gpio(ES8323_CODEC_SET_HP, es8323->hp_gpio_level);
+ es8323_set_gpio(ES8323_CODEC_SET_SPK, !es8323->spk_gpio_level);
+ } else {
+ es8323_set_gpio(ES8323_CODEC_SET_HP, !es8323->hp_gpio_level);
+ es8323_set_gpio(ES8323_CODEC_SET_SPK, es8323->spk_gpio_level);
+ }
+ break;
+ case MUTED_TYPE_OFF:
+ es8323_set_gpio(ES8323_CODEC_SET_HP, !es8323->hp_gpio_level);
+ es8323_set_gpio(ES8323_CODEC_SET_SPK, !es8323->spk_gpio_level);
+ break;
+ default:
+ break;
+ }
+}
+
+static irqreturn_t hp_det_irq_handler(int irq, void *dev_id)
+{
+ struct es8323_priv *es8323 = es8323_private;
+
+ if (!gpio_get_value(es8323->hp_det_gpio)) {
es8323->hp_inserted = 0;
- else if (gpio_get_value(es8323->hp_det_gpio) == es8323->hp_det_level)
+ snd_soc_jack_report(&es8323->hp_jack, 0, SND_JACK_HEADPHONE);
+ } else {
es8323->hp_inserted = 1;
+ snd_soc_jack_report(&es8323->hp_jack, SND_JACK_HEADPHONE, SND_JACK_HEADPHONE);
+ }
+
+ if (!es8323->line_in_status)
+ spk_detect_do_switch(!es8323->muted);
else
- es8323->hp_inserted = 0;
-}
-
-static void es8323_set_spk_gpio(struct es8323_priv *es8323)
-{
- if (es8323->muted || es8323->hp_inserted)
- es8323_set_gpio(es8323, ES8323_CODEC_SET_SPK, !es8323->spk_gpio_level);
- else
- es8323_set_gpio(es8323, ES8323_CODEC_SET_SPK, es8323->spk_gpio_level);
-}
-
-static irqreturn_t hp_det_irq_handler(int irq, void *dev_id)
+ spk_detect_do_switch(1);
+
+ return IRQ_HANDLED;
+}
+
+static void es8323_set_linein(unsigned int flags)
{
struct es8323_priv *es8323 = es8323_private;
- es8323_get_hp_det_gpio(es8323);
- es8323_set_spk_gpio(es8323);
+
+ if (flags) {
+ printk("ES8323 enter line in mode\n");
+
+ snd_soc_write(es8323_codec, 0x26, 0x00);
+ snd_soc_write(es8323_codec, 0x27, 0x40);
+ snd_soc_write(es8323_codec, 0x2a, 0x40);
+ snd_soc_write(es8323_codec, 0x0b, 0x02);
+ snd_soc_write(es8323_codec, 0x04, 0x0c);
+
+ spk_detect_do_switch(1);
+ } else {
+ printk("ES8323 exit line in mode\n");
+
+ snd_soc_write(es8323_codec, 0x26, 0x12);
+ snd_soc_write(es8323_codec, 0x27, 0xb8);
+ snd_soc_write(es8323_codec, 0x2a, 0xb8);
+ snd_soc_write(es8323_codec, 0x0b, 0x82);
+ snd_soc_write(es8323_codec, 0x04, 0x3c);
+
+ spk_detect_do_switch(!es8323->muted);
+ }
+}
+
+static void aux_det_work_func(struct work_struct *work)
+{
+ struct es8323_priv *es8323 = es8323_private;
+
+ es8323->line_in_status = !gpio_get_value(es8323->aux_det_gpio);
+
+ es8323_set_linein(es8323->line_in_status);
+ enable_irq(es8323->aux_det_irq);
+}
+
+static irqreturn_t aux_det_isr(int irq, void *data)
+{
+ disable_irq_nosync(irq);
+ schedule_delayed_work(&aux_det_work, msecs_to_jiffies(250));
+
return IRQ_HANDLED;
}
@@ -673,7 +757,7 @@
es8323->muted = mute;
if (mute) {
- es8323_set_spk_gpio(es8323);
+ es8323_set_gpio(ES8323_CODEC_SET_SPK, !es8323->spk_gpio_level);
usleep_range(18000, 20000);
snd_soc_write(codec, ES8323_DACCONTROL3, 0x06);
} else {
@@ -681,9 +765,16 @@
snd_soc_write(codec, 0x30, es8323_DEF_VOL);
snd_soc_write(codec, 0x31, es8323_DEF_VOL);
msleep(50);
- es8323_set_spk_gpio(es8323);
+ if (!es8323->hp_inserted)
+ es8323_set_gpio(ES8323_CODEC_SET_SPK, es8323->spk_gpio_level);
usleep_range(18000, 20000);
}
+
+ if (!es8323->line_in_status)
+ spk_detect_do_switch(!es8323->muted);
+ else
+ spk_detect_do_switch(1);
+
return 0;
}
@@ -798,7 +889,31 @@
return 0;
}
-static struct snd_soc_codec *es8323_codec;
+static int es8323_hp_jack_change(struct notifier_block *nb,
+ unsigned long flags, void *data)
+{
+ if ( !(int)flags )
+ snd_soc_write(es8323_codec, 0x0b, 0x82);
+ else
+ snd_soc_write(es8323_codec, 0x0b, 0x02);
+
+ return NOTIFY_OK;
+}
+
+static struct notifier_block es8323_hp_jack_nb = {
+ .notifier_call = es8323_hp_jack_change,
+};
+
+static void es8323_jack_init(struct snd_soc_codec *codec)
+{
+ struct es8323_priv *es8323 = es8323_private;
+
+ snd_soc_card_jack_new(codec->component.card,
+ "Headphone Jack", SND_JACK_HEADPHONE,
+ &es8323->hp_jack, NULL, 0);
+ snd_soc_jack_notifier_register(&es8323->hp_jack, &es8323_hp_jack_nb);
+}
+
static int es8323_probe(struct snd_soc_codec *codec)
{
struct es8323_priv *es8323 = snd_soc_codec_get_drvdata(codec);
@@ -821,7 +936,17 @@
codec->hw_write = (hw_write_t) i2c_master_send;
codec->control_data = container_of(codec->dev, struct i2c_client, dev);
+
+ if (es8323->hp_det_gpio != INVALID_GPIO) {
+ if (gpio_get_value(es8323->hp_det_gpio) == es8323->hp_det_level)
+ es8323->hp_inserted = 1;
+ }
+
+ if (es8323->aux_det_gpio != INVALID_GPIO)
+ schedule_delayed_work(&aux_det_work, msecs_to_jiffies(500));
+
es8323_codec = codec;
+ es8323_jack_init(codec);
ret = es8323_reset(codec);
if (ret < 0) {
dev_err(codec->dev, "Failed to issue reset\n");
@@ -840,6 +965,7 @@
snd_soc_write(codec, 0x09, 0x88); /* ADC L/R PGA = +24dB */
snd_soc_write(codec, 0x0a, 0xf0); /* ADC INPUT=LIN2/RIN2 */
snd_soc_write(codec, 0x0b, 0x82); /* ADC INPUT=LIN2/RIN2 */
+ snd_soc_write(codec, 0x0b, 0x02);
snd_soc_write(codec, 0x0C, 0x4c); /* I2S-24BIT */
snd_soc_write(codec, 0x0d, 0x02); /* MCLK/LRCK=256 */
snd_soc_write(codec, 0x10, 0x00); /* ADC Left Volume=0db */
@@ -890,6 +1016,8 @@
.remove = es8323_remove,
.suspend = es8323_suspend,
.resume = es8323_resume,
+ .controls = es8323_snd_controls,
+ .num_controls = ARRAY_SIZE(es8323_snd_controls),
.set_bias_level = es8323_set_bias_level,
.reg_cache_size = ARRAY_SIZE(es8323_reg),
.reg_word_size = sizeof(u16),
@@ -930,7 +1058,7 @@
}
es8323_private = es8323;
- es8323->spk_ctl_gpio = of_get_named_gpio_flags(i2c->dev.of_node, "spk-con-gpio", 0, &flags);
+ es8323->spk_ctl_gpio = of_get_named_gpio_flags(i2c->dev.of_node, "spk-ctl-gpio", 0, &flags);
if (es8323->spk_ctl_gpio < 0) {
dev_info(&i2c->dev, "Can not read property spk_ctl_gpio\n");
es8323->spk_ctl_gpio = INVALID_GPIO;
@@ -941,6 +1069,21 @@
dev_err(&i2c->dev, "Failed to request spk_ctl_gpio\n");
return ret;
}
+ es8323_set_gpio(ES8323_CODEC_SET_SPK, !es8323->spk_gpio_level);
+ }
+
+ es8323->hp_ctl_gpio = of_get_named_gpio_flags(i2c->dev.of_node, "hp-ctl-gpio", 0, &flags);
+ if (es8323->hp_ctl_gpio < 0) {
+ dev_info(&i2c->dev, "Can not read property hp_ctl_gpio\n");
+ es8323->hp_ctl_gpio = INVALID_GPIO;
+ } else {
+ es8323->hp_gpio_level = (flags & OF_GPIO_ACTIVE_LOW) ? 0 : 1;
+ ret = devm_gpio_request_one(&i2c->dev, es8323->hp_ctl_gpio, GPIOF_DIR_OUT, "hp_ctl_gpio");
+ if (ret != 0) {
+ dev_err(&i2c->dev, "Failed to request hp_ctl_gpio\n");
+ return ret;
+ }
+ es8323_set_gpio(ES8323_CODEC_SET_HP, !es8323->hp_gpio_level);
}
es8323->hp_det_gpio = of_get_named_gpio_flags(i2c->dev.of_node, "hp-det-gpio", 0, &flags);
@@ -964,11 +1107,30 @@
return ret;
}
}
-
- es8323_get_hp_det_gpio(es8323);
- }
-
- es8323_set_spk_gpio(es8323);
+ }
+
+ es8323->aux_det_gpio = of_get_named_gpio_flags(i2c->dev.of_node, "aux-det-gpio", 0, &flags);
+ if (es8323->aux_det_gpio < 0) {
+ dev_info(&i2c->dev, "Can not read property aux_det_gpio\n");
+ es8323->aux_det_gpio = INVALID_GPIO;
+ } else {
+ ret = devm_gpio_request_one(&i2c->dev, es8323->aux_det_gpio, GPIOF_IN, NULL);
+ if (ret != 0) {
+ dev_err(&i2c->dev, "Failed to request aux_det_gpio\n");
+ return ret;
+ }
+ es8323->aux_det_irq = gpio_to_irq(es8323->aux_det_gpio);
+
+ if (es8323->aux_det_irq) {
+ ret = devm_request_threaded_irq(&i2c->dev, es8323->aux_det_irq, NULL, aux_det_isr,
+ IRQ_TYPE_EDGE_BOTH | IRQF_ONESHOT, "ES8323", NULL);
+ if (ret < 0) {
+ dev_err(&i2c->dev, "request_irq failed: %d\n", ret);
+ return ret;
+ }
+ disable_irq(es8323->aux_det_irq);
+ }
+ }
ret = snd_soc_register_codec(&i2c->dev,
&soc_codec_dev_es8323,
@@ -993,7 +1155,8 @@
{
struct es8323_priv *es8323 = es8323_private;
- es8323_set_gpio(es8323, ES8323_CODEC_SET_SPK, !es8323->spk_gpio_level);
+ es8323_set_gpio(ES8323_CODEC_SET_SPK, !es8323->spk_gpio_level);
+ es8323_set_gpio(ES8323_CODEC_SET_HP, !es8323->hp_gpio_level);
mdelay(20);
snd_soc_write(es8323_codec, ES8323_CONTROL2, 0x58);
snd_soc_write(es8323_codec, ES8323_CONTROL1, 0x32);

View file

@ -0,0 +1,13 @@
new file mode 120000
index 00000000..5a62cd6b
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3399-roc-pc.dts
@@ -0,0 +1,7 @@
+/dts-v1/;
+#include "rk3399-roc-pc.dtsi"
+
+/ {
+ model = "Firefly roc-rk3399-pc";
+ compatible = "firefly,roc-rk3399-pc", "rockchip,rk3399";
+};

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,167 @@
new file mode 120000
index 00000000..5a62cd6b
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3399-roc-pc-plus.dts
@@ -0,0 +1,161 @@
+/dts-v1/;
+#include "rk3399-roc-pc.dtsi"
+
+/ {
+ model = "Firefly roc-rk3399-pc PLUS";
+ compatible = "firefly,roc-rk3399-pc", "rockchip,rk3399";
+
+ es8388-sound {
+ status = "okay";
+ compatible = "simple-audio-card";
+ simple-audio-card,format = "i2s";
+ simple-audio-card,name = "rockchip,es8388-codec";
+ simple-audio-card,mclk-fs = <256>;
+ simple-audio-card,cpu {
+ sound-dai = <&i2s1>;
+ system-clock-frequency = <11289600>;
+ };
+ simple-audio-card,codec {
+ sound-dai = <&es8388>;
+ system-clock-frequency = <11289600>;
+ };
+ };
+ /delete-node/ vcc_hub_en-regulator;
+
+ fan_enable: fan-regulator {
+ compatible = "regulator-fixed";
+ enable-active-high;
+ gpio = <&gpio1 1 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&fan_pin>;
+ regulator-name = "fan_enable";
+ regulator-always-on;
+ };
+};
+
+/* RTC */
+
+&rk808{
+ rtc {
+ status = "disabled";
+ };
+};
+
+&i2c0 {
+ status = "okay";
+ hym8563: hym8563@51 {
+ compatible = "haoyu,hym8563";
+ reg = <0x51>;
+ interrupt-parent = <&gpio0>;
+ interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
+ pinctrl-names = "default";
+ #clock-cells = <0>;
+ clock-frequency = <32768>;
+ clock-output-names = "xin32k";
+ };
+};
+
+
+&i2c4 {
+ /delete-node/ fusb30x@22;
+};
+
+&fusb0 {
+ fusb302,role = "ROLE_MODE_DFP";
+ vbus-5v-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
+};
+
+&cdn_dp {
+ status = "disabled";
+ extcon = <&fusb0>;
+ phys = <&tcphy0_dp>;
+};
+
+&tcphy1 {
+ /delete-property/ extcon;
+};
+
+&u2phy1 {
+ /delete-property/ extcon;
+};
+
+&usbdrd3_1 {
+ /delete-property/ extcon;
+};
+
+
+
+
+
+
+
+&i2s1 {
+ status = "okay";
+};
+
+&vcc_wifi {
+ gpio = <&gpio2 4 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&vcc_wifi_h>;
+};
+
+&vcc_wifi_h {
+ rockchip,pins = <2 4 RK_FUNC_GPIO &pcfg_pull_none>;
+};
+
+&dmc {
+ status = "disabled";
+};
+
+&rk808 {
+ /delete-property/ pmic,hold-gpio;
+};
+
+&i2c1 {
+ status = "okay";
+ es8388: es8388@11 {
+ compatible = "everest,es8323";
+ status = "okay";
+ reg = <0x11>;
+ hp-det-gpio = <&gpio2 6 GPIO_ACTIVE_HIGH>;
+ hp-ctl-gpio = <&gpio0 2 GPIO_ACTIVE_HIGH>;
+ clock-names = "mclk";
+ clocks = <&cru SCLK_I2S_8CH_OUT>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2s_8ch_mclk>;
+ pinctrl-1 = <&ear_ctl_h>;
+ #sound-dai-cells = <0>;
+ };
+};
+
+
+
+
+
+
+
+&pinctrl {
+ es8388-pins {
+ ear_ctl_h: ear-ctl-h {
+ rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_down>;
+ };
+ };
+
+ fan {
+ fan_pin: fan-pin {
+ rockchip,pins =
+ <1 1 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+};
+
+/*
+&fusb0 {
+ status = "disabled";
+};
+
+
+&fusb1 {
+ status = "disabled";
+};
+*/