/* * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * Modified by RZ * v1.3 12/07/2016 added pinmuxing for CAN support. RZ * v1.4 01/11/2017 added pinmuxing for 24-bit LCD. RZ * v1.5 01/13/2017 added code to keep LCD control signals high after u-boot. RZ * v1.6 01/20/2017 added bindings for tilcdc DRM generic panel output driver and back light driver. RZ * v1.7 01/31/2017 fix pwm backlight frequency. RZ * v1.8 02/09/2017 adds touch screen. RZ * */ /dts-v1/; #include "am33xx.dtsi" #include "am335x-bone-common.dtsi" #include #include /* added v1.6 RZ ... */ / { model = "TI AM335x BeagleBone Black"; compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; /* added v1.6 RZ ... */ /* Backlight entry */ backlight { compatible = "pwm-backlight"; pwms = <&ecap0 0 10000000 PWM_POLARITY_INVERTED>; /* v1.7 was <&ecap0 0 50000 0> RZ ... */ brightness-levels = <0 51 53 56 62 75 101 152 255>; default-brightness-level = <7>; /* range from 0 to 8 */ }; /* Settings for LCD: */ /* Densitron LCD Module 84-0266-000T Product Specification */ panel { compatible = "ti,tilcdc,panel"; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&lcdc_pins>; panel-info { ac-bias = <255>; ac-bias-intrpt = <0>; dma-burst-sz = <16>; bpp = <24>; /* bits per pixel */ fdd = <0x80>; sync-edge = <1>; /* v1.6, was <0>, 0=rising 1=falling */ sync-ctrl = <1>; raster-order = <0>; fifo-th = <0>; }; display-timings { native-mode = <&timing0>; timing0: 1280x800 { hactive = <1280>; /* Horizontal display area */ vactive = <800>; /* Vertical display area */ hback-porch = <80>; /* Horizontal Back Porch */ hfront-porch = <60>; /* Horizontal Front Porch */ hsync-len = <20>; /* Horizontal sync pulse width */ vback-porch = <10>; /* Vertical Back Porch */ vfront-porch = <10>; /* Vertical Front Porch */ vsync-len = <3>; /* Vertical sync pulse width */ clock-frequency = <71100000>; /* Clock Frequency 71.1 MHh */ hsync-active = <0>; vsync-active = <0>; }; }; }; /* ... end add */ }; &ldo3_reg { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; }; &mmc1 { vmmc-supply = <&vmmcsd_fixed>; }; &mmc2 { vmmc-supply = <&vmmcsd_fixed>; pinctrl-names = "default"; pinctrl-0 = <&emmc_pins>; bus-width = <8>; status = "okay"; }; &cpu0_opp_table { /* * All PG 2.0 silicon may not support 1GHz but some of the early * BeagleBone Blacks have PG 2.0 silicon which is guaranteed * to support 1GHz OPP so enable it for PG 2.0 on this board. */ oppnitro@1000000000 { opp-supported-hw = <0x06 0x0100>; }; }; &am33xx_pinmux { lcdc_pins: lcdc_pins { pinctrl-single,pins = < 0x1b0 0x03 /* xdma_event_intr0, OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT */ 0xa0 0x08 /* lcd_data0.lcd_data0, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 0xa4 0x08 /* lcd_data1.lcd_data1, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 0xa8 0x08 /* lcd_data2.lcd_data2, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 0xac 0x08 /* lcd_data3.lcd_data3, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 0xb0 0x08 /* lcd_data4.lcd_data4, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 0xb4 0x08 /* lcd_data5.lcd_data5, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 0xb8 0x08 /* lcd_data6.lcd_data6, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 0xbc 0x08 /* lcd_data7.lcd_data7, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 0xc0 0x08 /* lcd_data8.lcd_data8, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 0xc4 0x08 /* lcd_data9.lcd_data9, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 0xc8 0x08 /* lcd_data10.lcd_data10, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 0xcc 0x08 /* lcd_data11.lcd_data11, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 0xd0 0x08 /* lcd_data12.lcd_data12, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 0xd4 0x08 /* lcd_data13.lcd_data13, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 0xd8 0x08 /* lcd_data14.lcd_data14, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ 0xdc 0x08 /* lcd_data15.lcd_data15, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ /* added v1.4 RZ ... */ 0x3c ( PIN_OUTPUT | MUX_MODE1 ) /* (U13) gpmc_ad15.lcd_data16 */ 0x38 ( PIN_OUTPUT | MUX_MODE1 ) /* (V13) gpmc_ad14.lcd_data17 */ 0x34 ( PIN_OUTPUT | MUX_MODE1 ) /* (R12) gpmc_ad13.lcd_data18 */ 0x30 ( PIN_OUTPUT | MUX_MODE1 ) /* (T12) gpmc_ad12.lcd_data19 */ 0x2c ( PIN_OUTPUT | MUX_MODE1 ) /* (U12) gpmc_ad11.lcd_data20 */ 0x28 ( PIN_OUTPUT | MUX_MODE1 ) /* (T11) gpmc_ad10.lcd_data21 */ 0x24 ( PIN_OUTPUT | MUX_MODE1 ) /* (T10) gpmc_ad9.lcd_data22 */ 0x20 ( PIN_OUTPUT | MUX_MODE1 ) /* (U10) gpmc_ad8.lcd_data23 */ /* ... MAGicALL end add */ 0xe0 0x00 /* lcd_vsync.lcd_vsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ 0xe4 0x00 /* lcd_hsync.lcd_hsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ 0xe8 0x00 /* lcd_pclk.lcd_pclk, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ 0xec 0x00 /* lcd_ac_bias_en.lcd_ac_bias_en, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ >; }; nxp_hdmi_bonelt_off_pins: nxp_hdmi_bonelt_off_pins { pinctrl-single,pins = < 0x1b0 0x03 /* xdma_event_intr0, OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT */ >; }; /* added v1.4 RZ ... */ lcd_cntrl_pins_default: lcd_cntrl_pins_default { pinctrl-single,pins = < 0x90 ( PIN_OUTPUT | MUX_MODE7 ) /* (R7) gpmc_advn_ale.gpio2[2] (BL_EN) */ 0x94 ( PIN_OUTPUT | MUX_MODE7 ) /* (T7) gpmc_oen_ren.gpio2[3] (LCD_EN)*/ 0x98 ( PIN_OUTPUT | MUX_MODE7 ) /* (U6) gpmc_wen.gpio2[4] (R_FB)*/ 0x9c ( PIN_OUTPUT | MUX_MODE7 ) /* (T6) gpmc_be0n_cle.gpio2[5] (NOT_PWR_DN)*/ >; }; /* ... end add */ /* added v1.6 RZ ... */ /* LCD Backlight */ ecap0_pins: backlight_pins { pinctrl-single,pins = < 0x164 ( PIN_OUTPUT | MUX_MODE0 ) /* (C18) eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */ >; }; /* ... end add */ mcasp0_pins: mcasp0_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x9ac, PIN_INPUT_PULLUP | MUX_MODE0) /* mcasp0_ahcklx.mcasp0_ahclkx */ AM33XX_IOPAD(0x99c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mcasp0_ahclkr.mcasp0_axr2*/ AM33XX_IOPAD(0x994, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mcasp0_fsx.mcasp0_fsx */ AM33XX_IOPAD(0x990, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp0_aclkx.mcasp0_aclkx */ AM33XX_IOPAD(0x86c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a11.GPIO1_27 */ >; }; /* added v1.3 RZ ... */ dcan1_pins_default: dcan1_pins_default { pinctrl-single,pins = < 0x180 0x12 /* (D16) uart1_rxd.d_can1_tx, SLEWCTRL_FAST | INPUT_PULLUP | MODE2 */ 0x184 0x32 /* (D15) uart1_txd.d_can1_rx, SLEWCTRL_FAST | RECV_ENABLE | INPUT_PULLUP | MODE2 */ >; }; /* ... end add */ }; /* added v1.3 RZ ... */ &dcan1 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&dcan1_pins_default>; }; /* end add */ /* modified v1.6 RZ ... */ &lcdc { status = "okay"; /* port { lcdc_0: endpoint@0 { remote-endpoint = <&hdmi_0>; }; }; */ }; /* end modify */ /* added v1.8 RZ ... */ /* Set up for 5-wire touch screen */ &tscadc { status = "okay"; tsc { ti,wires = <5>; ti,x-plate-resistance = <129>; /* measured between pins UL & UR, and between pins LL & LR. */ ti,coordinate-readouts = <5>; ti,wire-config = <0x00 0x11 0x22 0x33>; ti,charge-delay = <0x400>; }; /*adc { ti,adc-channels = <5 6 7>; };*/ }; /* ... end add */ /* added v1.5 RZ ... */ &gpio2 { status = "okay"; compatible = "ti,omap4-gpio"; gpio-controller; #gpio-cells = <2>; lcd_cntrl_bl_en { gpios = <2 GPIO_ACTIVE_HIGH>; output-high; }; lcd_cntrl_lcd_en { gpios = <3 GPIO_ACTIVE_HIGH>; output-high; }; lcd_cntrl_r_fb { gpios = <4 GPIO_ACTIVE_HIGH>; output-high; }; lcd_cntrl_not_pwr_dn { gpios = <5 GPIO_ACTIVE_HIGH>; output-high; }; }; /* ... end add */ /* removed v1.6 ... &i2c0 { tda19988: tda19988 { compatible = "nxp,tda998x"; reg = <0x70>; pinctrl-names = "default", "off"; pinctrl-0 = <&lcdc_pins>; pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>; #sound-dai-cells = <0>; audio-ports = < AFMT_I2S 0x03>; ports { port@0 { hdmi_0: endpoint@0 { remote-endpoint = <&lcdc_0>; }; }; }; }; } ... end remove */ &rtc { system-power-controller; }; &mcasp0 { #sound-dai-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&mcasp0_pins>; status = "okay"; op-mode = <0>; /* MCASP_IIS_MODE */ tdm-slots = <2>; serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ 0 0 1 0 >; tx-num-evt = <32>; rx-num-evt = <32>; }; &sgx { status = "okay"; }; /* added v1.6 RZ ... */ /* Set up PWM for backlight */ &epwmss0 { status = "okay"; ecap0: ecap@48300100 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&ecap0_pins>; }; }; /* ... end add */ / { clk_mcasp0_fixed: clk_mcasp0_fixed { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <24576000>; }; clk_mcasp0: clk_mcasp0 { #clock-cells = <0>; compatible = "gpio-gate-clock"; clocks = <&clk_mcasp0_fixed>; enable-gpios = <&gpio1 27 0>; /* BeagleBone Black Clk enable on GPIO1_27 */ }; /* removed v1.6 RZ ... sound { compatible = "simple-audio-card"; simple-audio-card,name = "TI BeagleBone Black"; simple-audio-card,format = "i2s"; simple-audio-card,bitclock-master = <&dailink0_master>; simple-audio-card,frame-master = <&dailink0_master>; dailink0_master: simple-audio-card,cpu { sound-dai = <&mcasp0>; clocks = <&clk_mcasp0>; }; simple-audio-card,codec { sound-dai = <&tda19988>; }; }; ... end remove */ };