162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2012 Texas Instruments Incorporated - https://www.ti.com/ 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#include <dt-bindings/display/tda998x.h> 762306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/irq.h> 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci&am33xx_pinmux { 1062306a36Sopenharmony_ci nxp_hdmi_bonelt_pins: nxp-hdmi-bonelt-pins { 1162306a36Sopenharmony_ci pinctrl-single,pins = < 1262306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_XDMA_EVENT_INTR0, PIN_OUTPUT_PULLDOWN, MUX_MODE3) 1362306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_LCD_DATA0, PIN_OUTPUT, MUX_MODE0) 1462306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_LCD_DATA1, PIN_OUTPUT, MUX_MODE0) 1562306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_LCD_DATA2, PIN_OUTPUT, MUX_MODE0) 1662306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_LCD_DATA3, PIN_OUTPUT, MUX_MODE0) 1762306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_LCD_DATA4, PIN_OUTPUT, MUX_MODE0) 1862306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_LCD_DATA5, PIN_OUTPUT, MUX_MODE0) 1962306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_LCD_DATA6, PIN_OUTPUT, MUX_MODE0) 2062306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_LCD_DATA7, PIN_OUTPUT, MUX_MODE0) 2162306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_LCD_DATA8, PIN_OUTPUT, MUX_MODE0) 2262306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_LCD_DATA9, PIN_OUTPUT, MUX_MODE0) 2362306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_LCD_DATA10, PIN_OUTPUT, MUX_MODE0) 2462306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_LCD_DATA11, PIN_OUTPUT, MUX_MODE0) 2562306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_LCD_DATA12, PIN_OUTPUT, MUX_MODE0) 2662306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_LCD_DATA13, PIN_OUTPUT, MUX_MODE0) 2762306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_LCD_DATA14, PIN_OUTPUT, MUX_MODE0) 2862306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_LCD_DATA15, PIN_OUTPUT, MUX_MODE0) 2962306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_LCD_VSYNC, PIN_OUTPUT_PULLDOWN, MUX_MODE0) 3062306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_LCD_HSYNC, PIN_OUTPUT_PULLDOWN, MUX_MODE0) 3162306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_LCD_PCLK, PIN_OUTPUT_PULLDOWN, MUX_MODE0) 3262306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_LCD_AC_BIAS_EN, PIN_OUTPUT_PULLDOWN, MUX_MODE0) 3362306a36Sopenharmony_ci >; 3462306a36Sopenharmony_ci }; 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci nxp_hdmi_bonelt_off_pins: nxp-hdmi-bonelt-off-pins { 3762306a36Sopenharmony_ci pinctrl-single,pins = < 3862306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_XDMA_EVENT_INTR0, PIN_OUTPUT_PULLDOWN, MUX_MODE3) 3962306a36Sopenharmony_ci >; 4062306a36Sopenharmony_ci }; 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci mcasp0_pins: mcasp0-pins { 4362306a36Sopenharmony_ci pinctrl-single,pins = < 4462306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_MCASP0_AHCLKX, PIN_INPUT_PULLUP, MUX_MODE0) /* mcasp0_ahcklx.mcasp0_ahclkx */ 4562306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_MCASP0_AHCLKR, PIN_OUTPUT_PULLDOWN, MUX_MODE2) /* mcasp0_ahclkr.mcasp0_axr2*/ 4662306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_MCASP0_FSX, PIN_OUTPUT_PULLUP, MUX_MODE0) 4762306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_MCASP0_ACLKX, PIN_OUTPUT_PULLDOWN, MUX_MODE0) 4862306a36Sopenharmony_ci AM33XX_PADCONF(AM335X_PIN_GPMC_A11, PIN_OUTPUT_PULLDOWN, MUX_MODE7) /* gpmc_a11.GPIO1_27 */ 4962306a36Sopenharmony_ci >; 5062306a36Sopenharmony_ci }; 5162306a36Sopenharmony_ci}; 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci&lcdc { 5462306a36Sopenharmony_ci status = "okay"; 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci /* If you want to get 24 bit RGB and 16 BGR mode instead of 5762306a36Sopenharmony_ci * current 16 bit RGB and 24 BGR modes, set the propety 5862306a36Sopenharmony_ci * below to "crossed" and uncomment the video-ports -property 5962306a36Sopenharmony_ci * in tda19988 node. 6062306a36Sopenharmony_ci */ 6162306a36Sopenharmony_ci blue-and-red-wiring = "straight"; 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci port { 6462306a36Sopenharmony_ci lcdc_0: endpoint@0 { 6562306a36Sopenharmony_ci remote-endpoint = <&hdmi_0>; 6662306a36Sopenharmony_ci }; 6762306a36Sopenharmony_ci }; 6862306a36Sopenharmony_ci}; 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci&i2c0 { 7162306a36Sopenharmony_ci tda19988: tda19988@70 { 7262306a36Sopenharmony_ci compatible = "nxp,tda998x"; 7362306a36Sopenharmony_ci reg = <0x70>; 7462306a36Sopenharmony_ci nxp,calib-gpios = <&gpio1 25 0>; 7562306a36Sopenharmony_ci interrupts-extended = <&gpio1 25 IRQ_TYPE_LEVEL_LOW>; 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci pinctrl-names = "default", "off"; 7862306a36Sopenharmony_ci pinctrl-0 = <&nxp_hdmi_bonelt_pins>; 7962306a36Sopenharmony_ci pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>; 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci /* Convert 24bit BGR to RGB, e.g. cross red and blue wiring */ 8262306a36Sopenharmony_ci /* video-ports = <0x234501>; */ 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci #sound-dai-cells = <0>; 8562306a36Sopenharmony_ci audio-ports = < TDA998x_I2S 0x03>; 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci ports { 8862306a36Sopenharmony_ci #address-cells = <1>; 8962306a36Sopenharmony_ci #size-cells = <0>; 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci port@0 { 9262306a36Sopenharmony_ci reg = <0>; 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci hdmi_0: endpoint { 9562306a36Sopenharmony_ci remote-endpoint = <&lcdc_0>; 9662306a36Sopenharmony_ci }; 9762306a36Sopenharmony_ci }; 9862306a36Sopenharmony_ci }; 9962306a36Sopenharmony_ci }; 10062306a36Sopenharmony_ci}; 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ci&mcasp0 { 10362306a36Sopenharmony_ci #sound-dai-cells = <0>; 10462306a36Sopenharmony_ci pinctrl-names = "default"; 10562306a36Sopenharmony_ci pinctrl-0 = <&mcasp0_pins>; 10662306a36Sopenharmony_ci status = "okay"; 10762306a36Sopenharmony_ci op-mode = <0>; /* MCASP_IIS_MODE */ 10862306a36Sopenharmony_ci tdm-slots = <2>; 10962306a36Sopenharmony_ci serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ 11062306a36Sopenharmony_ci 0 0 1 0 11162306a36Sopenharmony_ci >; 11262306a36Sopenharmony_ci tx-num-evt = <32>; 11362306a36Sopenharmony_ci rx-num-evt = <32>; 11462306a36Sopenharmony_ci}; 11562306a36Sopenharmony_ci 11662306a36Sopenharmony_ci/ { 11762306a36Sopenharmony_ci clk_mcasp0_fixed: clk_mcasp0_fixed { 11862306a36Sopenharmony_ci #clock-cells = <0>; 11962306a36Sopenharmony_ci compatible = "fixed-clock"; 12062306a36Sopenharmony_ci clock-frequency = <24576000>; 12162306a36Sopenharmony_ci }; 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_ci clk_mcasp0: clk_mcasp0 { 12462306a36Sopenharmony_ci #clock-cells = <0>; 12562306a36Sopenharmony_ci compatible = "gpio-gate-clock"; 12662306a36Sopenharmony_ci clocks = <&clk_mcasp0_fixed>; 12762306a36Sopenharmony_ci enable-gpios = <&gpio1 27 0>; /* BeagleBone Black Clk enable on GPIO1_27 */ 12862306a36Sopenharmony_ci }; 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_ci sound { 13162306a36Sopenharmony_ci compatible = "simple-audio-card"; 13262306a36Sopenharmony_ci simple-audio-card,name = "TI BeagleBone Black"; 13362306a36Sopenharmony_ci simple-audio-card,format = "i2s"; 13462306a36Sopenharmony_ci simple-audio-card,bitclock-master = <&dailink0_master>; 13562306a36Sopenharmony_ci simple-audio-card,frame-master = <&dailink0_master>; 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_ci dailink0_master: simple-audio-card,cpu { 13862306a36Sopenharmony_ci sound-dai = <&mcasp0>; 13962306a36Sopenharmony_ci clocks = <&clk_mcasp0>; 14062306a36Sopenharmony_ci }; 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ci simple-audio-card,codec { 14362306a36Sopenharmony_ci sound-dai = <&tda19988>; 14462306a36Sopenharmony_ci }; 14562306a36Sopenharmony_ci }; 14662306a36Sopenharmony_ci}; 147