mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-27 15:35:06 +07:00
05e7d622f1
The at24 driver allows to register I2C EEPROM chips using different vendor and devices, but the I2C subsystem does not take the vendor into account when matching using the I2C table since it only has device entries. But when matching using an OF table, both the vendor and device has to be taken into account so the driver defines only a set of compatible strings using the "atmel" vendor as a generic fallback for compatible I2C devices. So add this generic fallback to the device node compatible string to make the device to match the driver using the OF device ID table. Signed-off-by: Javier Martinez Canillas <javier@dowhile0.org> Signed-off-by: Tony Lindgren <tony@atomide.com>
612 lines
13 KiB
Plaintext
612 lines
13 KiB
Plaintext
/*
|
|
* Copyright (C) 2014-2016 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.
|
|
*/
|
|
/dts-v1/;
|
|
|
|
#include "dra74x.dtsi"
|
|
#include "am57xx-commercial-grade.dtsi"
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
|
|
/ {
|
|
compatible = "ti,am572x-beagle-x15", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
|
|
|
|
aliases {
|
|
rtc0 = &mcp_rtc;
|
|
rtc1 = &tps659038_rtc;
|
|
rtc2 = &rtc;
|
|
display0 = &hdmi0;
|
|
};
|
|
|
|
chosen {
|
|
stdout-path = &uart3;
|
|
};
|
|
|
|
memory@0 {
|
|
device_type = "memory";
|
|
reg = <0x0 0x80000000 0x0 0x80000000>;
|
|
};
|
|
|
|
vdd_3v3: fixedregulator-vdd_3v3 {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "vdd_3v3";
|
|
vin-supply = <®en1>;
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
aic_dvdd: fixedregulator-aic_dvdd {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "aic_dvdd_fixed";
|
|
vin-supply = <&vdd_3v3>;
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
};
|
|
|
|
vtt_fixed: fixedregulator-vtt {
|
|
/* TPS51200 */
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "vtt_fixed";
|
|
vin-supply = <&smps3_reg>;
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
enable-active-high;
|
|
gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
leds {
|
|
compatible = "gpio-leds";
|
|
|
|
led0 {
|
|
label = "beagle-x15:usr0";
|
|
gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
|
|
linux,default-trigger = "heartbeat";
|
|
default-state = "off";
|
|
};
|
|
|
|
led1 {
|
|
label = "beagle-x15:usr1";
|
|
gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
|
|
linux,default-trigger = "cpu0";
|
|
default-state = "off";
|
|
};
|
|
|
|
led2 {
|
|
label = "beagle-x15:usr2";
|
|
gpios = <&gpio7 14 GPIO_ACTIVE_HIGH>;
|
|
linux,default-trigger = "mmc0";
|
|
default-state = "off";
|
|
};
|
|
|
|
led3 {
|
|
label = "beagle-x15:usr3";
|
|
gpios = <&gpio7 15 GPIO_ACTIVE_HIGH>;
|
|
linux,default-trigger = "disk-activity";
|
|
default-state = "off";
|
|
};
|
|
};
|
|
|
|
gpio_fan: gpio_fan {
|
|
/* Based on 5v 500mA AFB02505HHB */
|
|
compatible = "gpio-fan";
|
|
gpios = <&tps659038_gpio 2 GPIO_ACTIVE_HIGH>;
|
|
gpio-fan,speed-map = <0 0>,
|
|
<13000 1>;
|
|
#cooling-cells = <2>;
|
|
};
|
|
|
|
hdmi0: connector {
|
|
compatible = "hdmi-connector";
|
|
label = "hdmi";
|
|
|
|
type = "a";
|
|
|
|
port {
|
|
hdmi_connector_in: endpoint {
|
|
remote-endpoint = <&tpd12s015_out>;
|
|
};
|
|
};
|
|
};
|
|
|
|
tpd12s015: encoder {
|
|
compatible = "ti,tpd12s015";
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
|
|
tpd12s015_in: endpoint {
|
|
remote-endpoint = <&hdmi_out>;
|
|
};
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
|
|
tpd12s015_out: endpoint {
|
|
remote-endpoint = <&hdmi_connector_in>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
sound0: sound0 {
|
|
compatible = "simple-audio-card";
|
|
simple-audio-card,name = "BeagleBoard-X15";
|
|
simple-audio-card,widgets =
|
|
"Line", "Line Out",
|
|
"Line", "Line In";
|
|
simple-audio-card,routing =
|
|
"Line Out", "LLOUT",
|
|
"Line Out", "RLOUT",
|
|
"MIC2L", "Line In",
|
|
"MIC2R", "Line In";
|
|
simple-audio-card,format = "dsp_b";
|
|
simple-audio-card,bitclock-master = <&sound0_master>;
|
|
simple-audio-card,frame-master = <&sound0_master>;
|
|
simple-audio-card,bitclock-inversion;
|
|
|
|
simple-audio-card,cpu {
|
|
sound-dai = <&mcasp3>;
|
|
};
|
|
|
|
sound0_master: simple-audio-card,codec {
|
|
sound-dai = <&tlv320aic3104>;
|
|
clocks = <&clkout2_clk>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&dra7_pmx_core {
|
|
mmc1_pins_default: mmc1_pins_default {
|
|
pinctrl-single,pins = <
|
|
DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14) /* mmc1sdcd.gpio219 */
|
|
DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
|
|
DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
|
|
DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
|
|
DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
|
|
DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
|
|
DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
|
|
>;
|
|
};
|
|
|
|
mmc2_pins_default: mmc2_pins_default {
|
|
pinctrl-single,pins = <
|
|
DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
|
|
DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
|
|
DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
|
|
DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
|
|
DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
|
|
DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
|
|
DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
|
|
DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
|
|
DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
|
|
DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
|
|
>;
|
|
};
|
|
};
|
|
&i2c1 {
|
|
status = "okay";
|
|
clock-frequency = <400000>;
|
|
|
|
tps659038: tps659038@58 {
|
|
compatible = "ti,tps659038";
|
|
reg = <0x58>;
|
|
interrupt-parent = <&gpio1>;
|
|
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
|
|
|
#interrupt-cells = <2>;
|
|
interrupt-controller;
|
|
|
|
ti,system-power-controller;
|
|
ti,palmas-override-powerhold;
|
|
|
|
tps659038_pmic {
|
|
compatible = "ti,tps659038-pmic";
|
|
|
|
regulators {
|
|
smps12_reg: smps12 {
|
|
/* VDD_MPU */
|
|
regulator-name = "smps12";
|
|
regulator-min-microvolt = < 850000>;
|
|
regulator-max-microvolt = <1250000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
smps3_reg: smps3 {
|
|
/* VDD_DDR */
|
|
regulator-name = "smps3";
|
|
regulator-min-microvolt = <1350000>;
|
|
regulator-max-microvolt = <1350000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
smps45_reg: smps45 {
|
|
/* VDD_DSPEVE, VDD_IVA, VDD_GPU */
|
|
regulator-name = "smps45";
|
|
regulator-min-microvolt = < 850000>;
|
|
regulator-max-microvolt = <1250000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
smps6_reg: smps6 {
|
|
/* VDD_CORE */
|
|
regulator-name = "smps6";
|
|
regulator-min-microvolt = <850000>;
|
|
regulator-max-microvolt = <1150000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
/* SMPS7 unused */
|
|
|
|
smps8_reg: smps8 {
|
|
/* VDD_1V8 */
|
|
regulator-name = "smps8";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
/* SMPS9 unused */
|
|
|
|
ldo1_reg: ldo1 {
|
|
/* VDD_SD / VDDSHV8 */
|
|
regulator-name = "ldo1";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
|
|
ldo2_reg: ldo2 {
|
|
/* VDD_SHV5 */
|
|
regulator-name = "ldo2";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
ldo3_reg: ldo3 {
|
|
/* VDDA_1V8_PHYA */
|
|
regulator-name = "ldo3";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
ldo4_reg: ldo4 {
|
|
/* VDDA_1V8_PHYB */
|
|
regulator-name = "ldo4";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
ldo9_reg: ldo9 {
|
|
/* VDD_RTC */
|
|
regulator-name = "ldo9";
|
|
regulator-min-microvolt = <1050000>;
|
|
regulator-max-microvolt = <1050000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
ldoln_reg: ldoln {
|
|
/* VDDA_1V8_PLL */
|
|
regulator-name = "ldoln";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
ldousb_reg: ldousb {
|
|
/* VDDA_3V_USB: VDDA_USBHS33 */
|
|
regulator-name = "ldousb";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
regen1: regen1 {
|
|
/* VDD_3V3_ON */
|
|
regulator-name = "regen1";
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
};
|
|
};
|
|
|
|
tps659038_rtc: tps659038_rtc {
|
|
compatible = "ti,palmas-rtc";
|
|
interrupt-parent = <&tps659038>;
|
|
interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
|
|
wakeup-source;
|
|
};
|
|
|
|
tps659038_pwr_button: tps659038_pwr_button {
|
|
compatible = "ti,palmas-pwrbutton";
|
|
interrupt-parent = <&tps659038>;
|
|
interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
|
|
wakeup-source;
|
|
ti,palmas-long-press-seconds = <12>;
|
|
};
|
|
|
|
tps659038_gpio: tps659038_gpio {
|
|
compatible = "ti,palmas-gpio";
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
};
|
|
|
|
extcon_usb2: tps659038_usb {
|
|
compatible = "ti,palmas-usb-vid";
|
|
ti,enable-vbus-detection;
|
|
vbus-gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
};
|
|
|
|
tmp102: tmp102@48 {
|
|
compatible = "ti,tmp102";
|
|
reg = <0x48>;
|
|
interrupt-parent = <&gpio7>;
|
|
interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
|
|
#thermal-sensor-cells = <1>;
|
|
};
|
|
|
|
tlv320aic3104: tlv320aic3104@18 {
|
|
#sound-dai-cells = <0>;
|
|
compatible = "ti,tlv320aic3104";
|
|
reg = <0x18>;
|
|
assigned-clocks = <&clkoutmux2_clk_mux>;
|
|
assigned-clock-parents = <&sys_clk2_dclk_div>;
|
|
|
|
status = "okay";
|
|
adc-settle-ms = <40>;
|
|
|
|
AVDD-supply = <&vdd_3v3>;
|
|
IOVDD-supply = <&vdd_3v3>;
|
|
DRVDD-supply = <&vdd_3v3>;
|
|
DVDD-supply = <&aic_dvdd>;
|
|
};
|
|
|
|
eeprom: eeprom@50 {
|
|
compatible = "atmel,24c32";
|
|
reg = <0x50>;
|
|
};
|
|
};
|
|
|
|
&i2c3 {
|
|
status = "okay";
|
|
clock-frequency = <400000>;
|
|
|
|
mcp_rtc: rtc@6f {
|
|
compatible = "microchip,mcp7941x";
|
|
reg = <0x6f>;
|
|
interrupts-extended = <&crossbar_mpu GIC_SPI 2 IRQ_TYPE_EDGE_RISING>,
|
|
<&dra7_pmx_core 0x424>;
|
|
interrupt-names = "irq", "wakeup";
|
|
|
|
vcc-supply = <&vdd_3v3>;
|
|
wakeup-source;
|
|
};
|
|
};
|
|
|
|
&gpio7 {
|
|
ti,no-reset-on-init;
|
|
ti,no-idle-on-init;
|
|
};
|
|
|
|
&cpu0 {
|
|
cpu0-supply = <&smps12_reg>;
|
|
voltage-tolerance = <1>;
|
|
};
|
|
|
|
&uart3 {
|
|
status = "okay";
|
|
interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
|
|
<&dra7_pmx_core 0x3f8>;
|
|
};
|
|
|
|
&davinci_mdio {
|
|
phy0: ethernet-phy@1 {
|
|
reg = <1>;
|
|
};
|
|
|
|
phy1: ethernet-phy@2 {
|
|
reg = <2>;
|
|
};
|
|
};
|
|
|
|
&mac {
|
|
status = "okay";
|
|
dual_emac;
|
|
};
|
|
|
|
&cpsw_emac0 {
|
|
phy-handle = <&phy0>;
|
|
phy-mode = "rgmii";
|
|
dual_emac_res_vlan = <1>;
|
|
};
|
|
|
|
&cpsw_emac1 {
|
|
phy-handle = <&phy1>;
|
|
phy-mode = "rgmii";
|
|
dual_emac_res_vlan = <2>;
|
|
};
|
|
|
|
&mmc1 {
|
|
status = "okay";
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&mmc1_pins_default>;
|
|
|
|
bus-width = <4>;
|
|
cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
|
|
};
|
|
|
|
&mmc2 {
|
|
status = "okay";
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&mmc2_pins_default>;
|
|
|
|
vmmc-supply = <&vdd_3v3>;
|
|
bus-width = <8>;
|
|
ti,non-removable;
|
|
cap-mmc-dual-data-rate;
|
|
};
|
|
|
|
&sata {
|
|
status = "okay";
|
|
};
|
|
|
|
&usb2_phy1 {
|
|
phy-supply = <&ldousb_reg>;
|
|
};
|
|
|
|
&usb2_phy2 {
|
|
phy-supply = <&ldousb_reg>;
|
|
};
|
|
|
|
&usb1 {
|
|
dr_mode = "host";
|
|
};
|
|
|
|
&omap_dwc3_2 {
|
|
extcon = <&extcon_usb2>;
|
|
};
|
|
|
|
&usb2 {
|
|
/*
|
|
* Stand alone usage is peripheral only.
|
|
* However, with some resistor modifications
|
|
* this port can be used via expansion connectors
|
|
* as "host" or "dual-role". If so, provide
|
|
* the necessary dr_mode override in the expansion
|
|
* board's DT.
|
|
*/
|
|
dr_mode = "peripheral";
|
|
};
|
|
|
|
&cpu_trips {
|
|
cpu_alert1: cpu_alert1 {
|
|
temperature = <50000>; /* millicelsius */
|
|
hysteresis = <2000>; /* millicelsius */
|
|
type = "active";
|
|
};
|
|
};
|
|
|
|
&cpu_cooling_maps {
|
|
map1 {
|
|
trip = <&cpu_alert1>;
|
|
cooling-device = <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
|
};
|
|
};
|
|
|
|
&thermal_zones {
|
|
board_thermal: board_thermal {
|
|
polling-delay-passive = <1250>; /* milliseconds */
|
|
polling-delay = <1500>; /* milliseconds */
|
|
|
|
/* sensor ID */
|
|
thermal-sensors = <&tmp102 0>;
|
|
|
|
board_trips: trips {
|
|
board_alert0: board_alert {
|
|
temperature = <40000>; /* millicelsius */
|
|
hysteresis = <2000>; /* millicelsius */
|
|
type = "active";
|
|
};
|
|
|
|
board_crit: board_crit {
|
|
temperature = <105000>; /* millicelsius */
|
|
hysteresis = <0>; /* millicelsius */
|
|
type = "critical";
|
|
};
|
|
};
|
|
|
|
board_cooling_maps: cooling-maps {
|
|
map0 {
|
|
trip = <&board_alert0>;
|
|
cooling-device =
|
|
<&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&dss {
|
|
status = "ok";
|
|
|
|
vdda_video-supply = <&ldoln_reg>;
|
|
};
|
|
|
|
&hdmi {
|
|
status = "ok";
|
|
vdda-supply = <&ldo4_reg>;
|
|
|
|
port {
|
|
hdmi_out: endpoint {
|
|
remote-endpoint = <&tpd12s015_in>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&pcie1 {
|
|
gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
&mcasp3 {
|
|
#sound-dai-cells = <0>;
|
|
assigned-clocks = <&mcasp3_ahclkx_mux>;
|
|
assigned-clock-parents = <&sys_clkin2>;
|
|
status = "okay";
|
|
|
|
op-mode = <0>; /* MCASP_IIS_MODE */
|
|
tdm-slots = <2>;
|
|
/* 4 serializers */
|
|
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
|
|
1 2 0 0
|
|
>;
|
|
tx-num-evt = <32>;
|
|
rx-num-evt = <32>;
|
|
};
|
|
|
|
&mailbox5 {
|
|
status = "okay";
|
|
mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
|
|
status = "okay";
|
|
};
|
|
mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
|
|
status = "okay";
|
|
};
|
|
};
|
|
|
|
&mailbox6 {
|
|
status = "okay";
|
|
mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
|
|
status = "okay";
|
|
};
|
|
mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
|
|
status = "okay";
|
|
};
|
|
};
|