Message ID | 20230324122417.252491-1-j-choudhary@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: dts: ti: k3-am654: Add overlay for audio support | expand |
On 24/03/23 17:54, Jayesh Choudhary wrote: > From: Peter Ujfalusi <peter.ujfalusi@ti.com> > > The GP application board has: > ICSSG I2C0..3 connected to I2C EEPROMs > ICSSG UART0..3 headers with level shifters > ICSSG SPI0..3 connected to SPI Flash > McASP0 connected to tlv320aic3106 codec with Headset out and Line In jack > > This patch adds support for the audio on the GP application board. > > Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> > [j-choudhary@ti.com: Makefile fixups, dtso file cleanups] > Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com> > --- Please drop the patch as this board is no longer in production/supported actively. I am extremely sorry for the noise. Warm Regards, -Jayesh > > Changes are made considering Andrew's comment on another overlay patch[1] > related to Makefile and styling comments on the overlay file. > > [1]: > <https://lore.kernel.org/all/8e6442c8-e4ef-705d-1378-7d1f8b74e84d@ti.com/> > > arch/arm64/boot/dts/ti/Makefile | 3 +- > arch/arm64/boot/dts/ti/k3-am654-gp.dtso | 124 ++++++++++++++++++++++++ > 2 files changed, 126 insertions(+), 1 deletion(-) > create mode 100644 arch/arm64/boot/dts/ti/k3-am654-gp.dtso > > diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile > index 541970a8ed0a..9b70a85fbc96 100644 > --- a/arch/arm64/boot/dts/ti/Makefile > +++ b/arch/arm64/boot/dts/ti/Makefile > @@ -21,12 +21,13 @@ dtb-$(CONFIG_ARCH_K3) += k3-am642-phyboard-electra-rdk.dtb > dtb-$(CONFIG_ARCH_K3) += k3-am642-sk.dtb > > # Boards with AM65x SoC > +k3-am654-evm-dtbs := k3-am654-base-board.dtb k3-am654-gp.dtbo > dtb-$(CONFIG_ARCH_K3) += k3-am6528-iot2050-basic.dtb > dtb-$(CONFIG_ARCH_K3) += k3-am6528-iot2050-basic-pg2.dtb > dtb-$(CONFIG_ARCH_K3) += k3-am6548-iot2050-advanced.dtb > dtb-$(CONFIG_ARCH_K3) += k3-am6548-iot2050-advanced-m2.dtb > dtb-$(CONFIG_ARCH_K3) += k3-am6548-iot2050-advanced-pg2.dtb > -dtb-$(CONFIG_ARCH_K3) += k3-am654-base-board.dtb > +dtb-$(CONFIG_ARCH_K3) += k3-am654-evm.dtb > > # Boards with J7200 SoC > k3-j7200-evm-dtbs := k3-j7200-common-proc-board.dtb k3-j7200-evm-quad-port-eth-exp.dtbo > diff --git a/arch/arm64/boot/dts/ti/k3-am654-gp.dtso b/arch/arm64/boot/dts/ti/k3-am654-gp.dtso > new file mode 100644 > index 000000000000..14ceb2714677 > --- /dev/null > +++ b/arch/arm64/boot/dts/ti/k3-am654-gp.dtso > @@ -0,0 +1,124 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * DT overlay for GP application board on AM654 EVM > + * > + * Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/ > + */ > + > +/dts-v1/; > +/plugin/; > + > +#include <dt-bindings/gpio/gpio.h> > + > +#include "k3-pinctrl.h" > + > +&{/} { > + gp_vcc_5v0: fixedregulator-gp-vcc-5v0 { > + compatible = "regulator-fixed"; > + regulator-name = "gp_vcc_5v0"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + regulator-always-on; > + regulator-boot-on; > + }; > + > + codec_vcc_3v3: fixedregulator-codec-vcc-3v3 { > + /* LP5912-3.3DRVT */ > + compatible = "regulator-fixed"; > + regulator-name = "codec_vcc_3v3"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + vin-supply = <&gp_vcc_5v0>; > + regulator-always-on; > + regulator-boot-on; > + }; > + > + gp_vcc_1v8: fixedregulator-gp-vcc-1v8 { > + compatible = "regulator-fixed"; > + regulator-name = "gp_vcc_1v8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-always-on; > + regulator-boot-on; > + }; > + > + sound { > + compatible = "simple-audio-card"; > + simple-audio-card,name = "AM65x-GPEVM"; > + simple-audio-card,widgets = > + "Headphone", "Headphone Jack", > + "Line", "Line In"; > + simple-audio-card,routing = > + "Headphone Jack", "HPLOUT", > + "Headphone Jack", "HPROUT", > + "LINE1L", "Line In", > + "LINE1R", "Line In"; > + simple-audio-card,format = "dsp_b"; > + simple-audio-card,bitclock-master = <&sound_master>; > + simple-audio-card,frame-master = <&sound_master>; > + simple-audio-card,bitclock-inversion; > + > + simple-audio-card,cpu { > + sound-dai = <&mcasp0>; > + }; > + > + sound_master: simple-audio-card,codec { > + sound-dai = <&tlv320aic3106>; > + system-clock-frequency = <12000000>; > + }; > + }; > +}; > + > +&main_pmx0 { > + mcasp0_pins: mcasp0-pins { > + pinctrl-single,pins = < > + AM65X_IOPAD(0x01f4, PIN_INPUT, 5) /* (V24) PRG0_PRU0_GPO0.MCASP0_ACLKX */ > + AM65X_IOPAD(0x01f8, PIN_INPUT, 5) /* (W25) PRG0_PRU0_GPO1.MCASP0_AFSX */ > + AM65X_IOPAD(0x0204, PIN_OUTPUT, 5) /* (Y24) PRG0_PRU0_GPO4.MCASP0_AXR0 */ > + AM65X_IOPAD(0x0208, PIN_INPUT, 5) /* (V28) PRG0_PRU0_GPO5.MCASP0_AXR1 */ > + >; > + }; > + > + aic3106_pins: aic3106-pins { > + pinctrl-single,pins = < > + AM65X_IOPAD(0x011c, PIN_OUTPUT, 7) /* (AD19) PRG1_PRU0_GPO15.GPIO0_71 */ > + >; > + }; > +}; > + > +&main_i2c0 { > + #address-cells = <1>; > + #size-cells = <0>; > + > + tlv320aic3106: tlv320aic3106@1b { > + #sound-dai-cells = <0>; > + compatible = "ti,tlv320aic3106"; > + reg = <0x1b>; > + pinctrl-names = "default"; > + pinctrl-0 = <&aic3106_pins>; > + gpio-reset = <&main_gpio0 71 GPIO_ACTIVE_LOW>; /* gpio0_71 */ > + /* Regulators */ > + AVDD-supply = <&codec_vcc_3v3>; > + IOVDD-supply = <&gp_vcc_1v8>; > + DRVDD-supply = <&codec_vcc_3v3>; > + DVDD-supply = <&gp_vcc_1v8>; > + }; > +}; > + > +&mcasp0 { > + status = "okay"; > + #sound-dai-cells = <0>; > + pinctrl-names = "default"; > + pinctrl-0 = <&mcasp0_pins>; > + op-mode = <0>; /* MCASP_IIS_MODE */ > + tdm-slots = <2>; > + /* 16 serializers */ > + serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ > + 1 2 0 0 > + 0 0 0 0 > + 0 0 0 0 > + 0 0 0 0 > + >; > + tx-num-evt = <32>; > + rx-num-evt = <32>; > +};
diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile index 541970a8ed0a..9b70a85fbc96 100644 --- a/arch/arm64/boot/dts/ti/Makefile +++ b/arch/arm64/boot/dts/ti/Makefile @@ -21,12 +21,13 @@ dtb-$(CONFIG_ARCH_K3) += k3-am642-phyboard-electra-rdk.dtb dtb-$(CONFIG_ARCH_K3) += k3-am642-sk.dtb # Boards with AM65x SoC +k3-am654-evm-dtbs := k3-am654-base-board.dtb k3-am654-gp.dtbo dtb-$(CONFIG_ARCH_K3) += k3-am6528-iot2050-basic.dtb dtb-$(CONFIG_ARCH_K3) += k3-am6528-iot2050-basic-pg2.dtb dtb-$(CONFIG_ARCH_K3) += k3-am6548-iot2050-advanced.dtb dtb-$(CONFIG_ARCH_K3) += k3-am6548-iot2050-advanced-m2.dtb dtb-$(CONFIG_ARCH_K3) += k3-am6548-iot2050-advanced-pg2.dtb -dtb-$(CONFIG_ARCH_K3) += k3-am654-base-board.dtb +dtb-$(CONFIG_ARCH_K3) += k3-am654-evm.dtb # Boards with J7200 SoC k3-j7200-evm-dtbs := k3-j7200-common-proc-board.dtb k3-j7200-evm-quad-port-eth-exp.dtbo diff --git a/arch/arm64/boot/dts/ti/k3-am654-gp.dtso b/arch/arm64/boot/dts/ti/k3-am654-gp.dtso new file mode 100644 index 000000000000..14ceb2714677 --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am654-gp.dtso @@ -0,0 +1,124 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * DT overlay for GP application board on AM654 EVM + * + * Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/ + */ + +/dts-v1/; +/plugin/; + +#include <dt-bindings/gpio/gpio.h> + +#include "k3-pinctrl.h" + +&{/} { + gp_vcc_5v0: fixedregulator-gp-vcc-5v0 { + compatible = "regulator-fixed"; + regulator-name = "gp_vcc_5v0"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-always-on; + regulator-boot-on; + }; + + codec_vcc_3v3: fixedregulator-codec-vcc-3v3 { + /* LP5912-3.3DRVT */ + compatible = "regulator-fixed"; + regulator-name = "codec_vcc_3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&gp_vcc_5v0>; + regulator-always-on; + regulator-boot-on; + }; + + gp_vcc_1v8: fixedregulator-gp-vcc-1v8 { + compatible = "regulator-fixed"; + regulator-name = "gp_vcc_1v8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + sound { + compatible = "simple-audio-card"; + simple-audio-card,name = "AM65x-GPEVM"; + simple-audio-card,widgets = + "Headphone", "Headphone Jack", + "Line", "Line In"; + simple-audio-card,routing = + "Headphone Jack", "HPLOUT", + "Headphone Jack", "HPROUT", + "LINE1L", "Line In", + "LINE1R", "Line In"; + simple-audio-card,format = "dsp_b"; + simple-audio-card,bitclock-master = <&sound_master>; + simple-audio-card,frame-master = <&sound_master>; + simple-audio-card,bitclock-inversion; + + simple-audio-card,cpu { + sound-dai = <&mcasp0>; + }; + + sound_master: simple-audio-card,codec { + sound-dai = <&tlv320aic3106>; + system-clock-frequency = <12000000>; + }; + }; +}; + +&main_pmx0 { + mcasp0_pins: mcasp0-pins { + pinctrl-single,pins = < + AM65X_IOPAD(0x01f4, PIN_INPUT, 5) /* (V24) PRG0_PRU0_GPO0.MCASP0_ACLKX */ + AM65X_IOPAD(0x01f8, PIN_INPUT, 5) /* (W25) PRG0_PRU0_GPO1.MCASP0_AFSX */ + AM65X_IOPAD(0x0204, PIN_OUTPUT, 5) /* (Y24) PRG0_PRU0_GPO4.MCASP0_AXR0 */ + AM65X_IOPAD(0x0208, PIN_INPUT, 5) /* (V28) PRG0_PRU0_GPO5.MCASP0_AXR1 */ + >; + }; + + aic3106_pins: aic3106-pins { + pinctrl-single,pins = < + AM65X_IOPAD(0x011c, PIN_OUTPUT, 7) /* (AD19) PRG1_PRU0_GPO15.GPIO0_71 */ + >; + }; +}; + +&main_i2c0 { + #address-cells = <1>; + #size-cells = <0>; + + tlv320aic3106: tlv320aic3106@1b { + #sound-dai-cells = <0>; + compatible = "ti,tlv320aic3106"; + reg = <0x1b>; + pinctrl-names = "default"; + pinctrl-0 = <&aic3106_pins>; + gpio-reset = <&main_gpio0 71 GPIO_ACTIVE_LOW>; /* gpio0_71 */ + /* Regulators */ + AVDD-supply = <&codec_vcc_3v3>; + IOVDD-supply = <&gp_vcc_1v8>; + DRVDD-supply = <&codec_vcc_3v3>; + DVDD-supply = <&gp_vcc_1v8>; + }; +}; + +&mcasp0 { + status = "okay"; + #sound-dai-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&mcasp0_pins>; + op-mode = <0>; /* MCASP_IIS_MODE */ + tdm-slots = <2>; + /* 16 serializers */ + serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ + 1 2 0 0 + 0 0 0 0 + 0 0 0 0 + 0 0 0 0 + >; + tx-num-evt = <32>; + rx-num-evt = <32>; +};