Commit 1fac5db3 authored by Sebastian Reichel's avatar Sebastian Reichel Committed by Shawn Guo

ARM: dts: imx6: Add GE B1x5v2

This adds device tree files for the General Electric Healthcare
(GEHC) B1x5v2 series. All models make use of Congatec's QMX6
system on module, which is described in its own device tree include,
so that it can also be used by other boards.
Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
Signed-off-by: default avatarShawn Guo <shawnguo@kernel.org>
parent f4ab3f28
......@@ -516,6 +516,11 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
imx6q-ds.dtb \
imx6q-emcon-avari.dtb \
imx6q-evi.dtb \
imx6dl-b105pv2.dtb \
imx6dl-b105v2.dtb \
imx6dl-b125v2.dtb \
imx6dl-b125pv2.dtb \
imx6dl-b155v2.dtb \
imx6q-gk802.dtb \
imx6q-gw51xx.dtb \
imx6q-gw52xx.dtb \
......
// SPDX-License-Identifier: GPL-2.0 or MIT
//
// Device Tree Source for General Electric B105Pv2
//
// Copyright 2018-2021 General Electric Company
// Copyright 2018-2021 Collabora
/dts-v1/;
#include "imx6dl-b1x5pv2.dtsi"
/ {
model = "General Electric B105Pv2";
compatible = "ge,imx6dl-b105pv2", "congatec,qmx6", "fsl,imx6dl";
panel {
compatible = "auo,g101evn010";
};
};
&i2c3 {
touchscreen@41 {
compatible = "ilitek,ili251x";
reg = <0x41>;
pinctrl-names = "default";
pinctrl-0 =<&pinctrl_q7_gpio0>;
interrupt-parent = <&gpio5>;
interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&tca6424a 21 GPIO_ACTIVE_LOW>;
touchscreen-size-x = <1280>;
touchscreen-size-y = <800>;
};
};
// SPDX-License-Identifier: GPL-2.0 or MIT
//
// Device Tree Source for General Electric B105v2
//
// Copyright 2018-2021 General Electric Company
// Copyright 2018-2021 Collabora
/dts-v1/;
#include "imx6dl-b1x5v2.dtsi"
/ {
model = "General Electric B105v2";
compatible = "ge,imx6dl-b105v2", "congatec,qmx6", "fsl,imx6dl";
panel {
compatible = "auo,g101evn010";
};
};
&i2c3 {
touchscreen@41 {
compatible = "ilitek,ili251x";
reg = <0x41>;
pinctrl-names = "default";
pinctrl-0 =<&pinctrl_q7_gpio0>;
interrupt-parent = <&gpio5>;
interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&tca6424a 21 GPIO_ACTIVE_LOW>;
touchscreen-size-x = <1280>;
touchscreen-size-y = <800>;
};
};
// SPDX-License-Identifier: GPL-2.0 or MIT
//
// Device Tree Source for General Electric B125Pv2
//
// Copyright 2018-2021 General Electric Company
// Copyright 2018-2021 Collabora
/dts-v1/;
#include "imx6dl-b1x5pv2.dtsi"
/ {
model = "General Electric B125Pv2";
compatible = "ge,imx6dl-b125pv2", "congatec,qmx6", "fsl,imx6dl";
panel {
compatible = "auo,g121ean01";
};
};
&i2c3 {
touchscreen@2a {
compatible = "eeti,exc80h60";
reg = <0x2a>;
pinctrl-names = "default";
pinctrl-0 =<&pinctrl_q7_gpio0>;
interrupt-parent = <&gpio5>;
interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
reset-gpios = <&tca6424a 21 GPIO_ACTIVE_HIGH>;
};
};
// SPDX-License-Identifier: GPL-2.0 or MIT
//
// Device Tree Source for General Electric B125v2
//
// Copyright 2018-2021 General Electric Company
// Copyright 2018-2021 Collabora
/dts-v1/;
#include "imx6dl-b1x5v2.dtsi"
/ {
model = "General Electric B125v2";
compatible = "ge,imx6dl-b125v2", "congatec,qmx6", "fsl,imx6dl";
panel {
compatible = "auo,g121ean01";
};
};
&i2c3 {
touchscreen@2a {
compatible = "eeti,exc80h60";
reg = <0x2a>;
pinctrl-names = "default";
pinctrl-0 =<&pinctrl_q7_gpio0>;
interrupt-parent = <&gpio5>;
interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
reset-gpios = <&tca6424a 21 GPIO_ACTIVE_HIGH>;
};
};
// SPDX-License-Identifier: GPL-2.0 or MIT
//
// Device Tree Source for General Electric B155v2
//
// Copyright 2018-2021 General Electric Company
// Copyright 2018-2021 Collabora
/dts-v1/;
#include "imx6dl-b1x5v2.dtsi"
/ {
model = "General Electric B155v2";
compatible = "ge,imx6dl-b155v2", "congatec,qmx6", "fsl,imx6dl";
panel {
compatible = "auo,g156xtn01";
};
};
&i2c3 {
touchscreen@2a {
compatible = "eeti,exc80h84";
reg = <0x2a>;
pinctrl-names = "default";
pinctrl-0 =<&pinctrl_q7_gpio0>;
interrupt-parent = <&gpio5>;
interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
touchscreen-inverted-x;
touchscreen-inverted-y;
reset-gpios = <&tca6424a 21 GPIO_ACTIVE_HIGH>;
};
};
// SPDX-License-Identifier: GPL-2.0 or MIT
//
// Device Tree Source for General Electric B1x5Pv2
// patient monitor series
//
// Copyright 2018-2021 General Electric Company
// Copyright 2018-2021 Collabora
#include <dt-bindings/input/input.h>
#include "imx6dl-qmx6.dtsi"
/ {
chosen {
stdout-path = &uart3;
};
/* Do not allow frequencies above 800MHz */
cpus {
cpu@0 {
operating-points = <
/* kHz uV */
792000 1175000
396000 1150000
>;
fsl,soc-operating-points = <
/* ARM kHz SOC-PU uV */
792000 1175000
396000 1175000
>;
};
cpu@1 {
operating-points = <
/* kHz uV */
792000 1175000
396000 1150000
>;
fsl,soc-operating-points = <
/* ARM kHz SOC-PU uV */
792000 1175000
396000 1175000
>;
};
};
reg_syspwr: regulator-12v {
compatible = "regulator-fixed";
regulator-name = "SYS_PWR";
regulator-min-microvolt = <12000000>;
regulator-max-microvolt = <12000000>;
};
reg_5v_pmc: regulator-5v-pmc {
compatible = "regulator-fixed";
regulator-name = "5V PMC";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&reg_syspwr>;
};
reg_5v: regulator-5v {
compatible = "regulator-fixed";
regulator-name = "5V";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&reg_syspwr>;
};
reg_3v3: regulator-3v3 {
compatible = "regulator-fixed";
regulator-name = "3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
vin-supply = <&reg_syspwr>;
};
reg_5v0_audio: regulator-5v0-audio {
compatible = "regulator-fixed";
regulator-name = "5V0_AUDIO";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&reg_5v>;
gpio = <&tca6424a 16 GPIO_ACTIVE_HIGH>;
enable-active-high;
/*
* This must be always-on for da7212, which has some not
* properly documented dependencies for it's speaker supply
* pin. The issue manifests as speaker volume being very low.
*/
regulator-always-on;
};
reg_3v3_audio: regulator-3v3-audio {
compatible = "regulator-fixed";
regulator-name = "3V3_AUDIO";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
vin-supply = <&reg_3v3>;
pinctrl-0 = <&pinctrl_q7_hda_reset>;
pinctrl-names = "default";
gpio = <&gpio6 8 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
reg_2v5_audio: regulator-2v5-audio {
compatible = "regulator-fixed";
regulator-name = "2V5_AUDIO";
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <2500000>;
regulator-always-on;
vin-supply = <&reg_3v3_audio>;
};
reg_wlan: regulator-wlan {
compatible = "regulator-fixed";
regulator-name = "WLAN";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
vin-supply = <&reg_3v3>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_q7_sdio_power>;
gpio = <&gpio4 30 GPIO_ACTIVE_HIGH>;
enable-active-high;
startup-delay-us = <70000>;
};
reg_bl: regulator-backlight {
compatible = "regulator-fixed";
regulator-name = "LED_VCC";
regulator-min-microvolt = <12000000>;
regulator-max-microvolt = <12000000>;
vin-supply = <&reg_syspwr>;
pinctrl-0 = <&pinctrl_q7_lcd_power>;
pinctrl-names = "default";
gpio = <&gpio1 7 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
reg_lcd: regulator-lcd {
compatible = "regulator-fixed";
regulator-name = "LCD_5V";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&reg_5v>;
};
usb_power: regulator-usb-power {
compatible = "regulator-fixed";
regulator-name = "USB POWER";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&reg_5v>;
};
charger: battery-charger {
compatible = "gpio-charger"; /* ti,bq24172 */
charger-type = "mains";
gpios = <&tca6424a 3 GPIO_ACTIVE_LOW>;
charge-current-limit-gpios = <&tca6424a 11 GPIO_ACTIVE_HIGH>,
<&tca6424a 12 GPIO_ACTIVE_HIGH>;
charge-current-limit-mapping = <1300000 0x0>,
<700000 0x1>,
<0 0x2>;
charge-status-gpios = <&tca6424a 6 GPIO_ACTIVE_HIGH>;
};
poweroff {
compatible = "gpio-poweroff";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_q7_spi_cs1>;
gpios = <&gpio4 25 GPIO_ACTIVE_LOW>;
};
power-button-key {
compatible = "gpio-keys";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_q7_sleep_button>;
power-button {
label = "power button";
gpios = <&gpio4 7 GPIO_ACTIVE_LOW>;
linux,code = <KEY_POWER>;
};
};
rotary-encoder-key {
compatible = "gpio-keys";
rotary-encoder-press {
label = "rotary-encoder press";
gpios = <&tca6424a 0 GPIO_ACTIVE_HIGH>;
linux,code = <KEY_ENTER>;
linux,can-disable;
};
};
rotary-encoder {
compatible = "rotary-encoder";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_q7_gpio2 &pinctrl_q7_gpio4>;
gpios = <&gpio4 26 GPIO_ACTIVE_LOW>, <&gpio1 0 GPIO_ACTIVE_LOW>;
rotary-encoder,relative-axis;
rotary-encoder,steps-per-period = <2>;
wakeup-source;
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_q7_gpio1 &pinctrl_q7_gpio3 &pinctrl_q7_gpio5>;
alarm1 {
label = "alarm:red";
gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
};
alarm2 {
label = "alarm:yellow";
gpios = <&gpio4 27 GPIO_ACTIVE_HIGH>;
};
alarm3 {
label = "alarm:blue";
gpios = <&gpio4 15 GPIO_ACTIVE_HIGH>;
};
};
backlight: backlight {
compatible = "pwm-backlight";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_q7_backlight_enable>;
power-supply = <&reg_bl>;
pwms = <&pwm4 0 5000000 0>;
brightness-levels = <0 255>;
num-interpolated-steps = <255>;
default-brightness-level = <179>;
enable-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
};
panel {
backlight = <&backlight>;
power-supply = <&reg_lcd>;
port {
panel_in: endpoint {
remote-endpoint = <&lvds0_out>;
};
};
};
sound {
compatible = "simple-audio-card";
simple-audio-card,name = "audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-master = <&dailink_master>;
simple-audio-card,frame-master = <&dailink_master>;
simple-audio-card,widgets = "Speaker", "Ext Spk";
simple-audio-card,audio-routing = "Ext Spk", "LINE";
simple-audio-card,cpu {
sound-dai = <&ssi1>;
};
dailink_master: simple-audio-card,codec {
sound-dai = <&codec>;
};
};
clk_ext_audio_codec: clock-codec {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <12288000>;
};
};
&audmux {
status = "okay";
};
&fec {
status = "okay";
};
&hdmi {
status = "okay";
};
&i2c1 {
battery: battery@b {
compatible = "ti,bq20z65", "sbs,sbs-battery";
reg = <0x0b>;
sbs,battery-detect-gpios = <&tca6424a 5 GPIO_ACTIVE_LOW>;
sbs,i2c-retry-count = <5>;
power-supplies = <&charger>;
};
codec: audio-codec@1a {
compatible = "dlg,da7212";
reg = <0x1a>;
#sound-dai-cells = <0>;
VDDA-supply = <&reg_2v5_audio>;
VDDSP-supply = <&reg_5v0_audio>;
VDDMIC-supply = <&reg_3v3_audio>;
VDDIO-supply = <&reg_3v3_audio>;
clocks = <&clk_ext_audio_codec>;
clock-names = "mclk";
};
};
&i2c5 {
tca6424a: gpio-controller@22 {
compatible = "ti,tca6424";
reg = <0x22>;
gpio-controller;
#gpio-cells = <2>;
vcc-supply = <&reg_3v3>;
interrupt-parent = <&gpio7>;
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_q7_gpio6>;
interrupt-controller;
#interrupt-cells = <2>;
gpio-line-names = "GPIO_ROTOR#", "ACM_IO_INT", "TMP_SENSOR_IRQ", "AC_IN",
"TF_S", "BATT_T", "LED_INC_CHAR", "ACM1_OCF",
"ACM2_OCF", "ACM_IO_RST", "USB1_POWER_EN", "EGPIO_CC_CTL0",
"EGPIO_CC_CTL1", "12V_OEMNBP_EN", "CP2105_RST", "",
"SPEAKER_PA_EN", "ARM7_UPI_RESET", "ARM7_PWR_RST", "NURSE_CALL",
"MARKER_EN", "EGPIO_TOUCH_RST", "PRESSURE_INT1", "PRESSURE_INT2";
};
tmp75: temperature-sensor@48 {
compatible = "ti,tmp75";
reg = <0x48>;
vs-supply = <&reg_3v3>;
interrupt-parent = <&tca6424a>;
interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
};
};
&ldb {
status = "okay";
lvds0: lvds-channel@0 {
status = "okay";
fsl,data-mapping = "spwg";
fsl,data-width = <24>;
port@4 {
reg = <4>;
lvds0_out: endpoint {
remote-endpoint = <&panel_in>;
};
};
};
};
&pwm4 {
status = "okay";
};
&ssi1 {
fsl,mode = "i2s-slave";
status = "okay";
};
&usbotg {
vbus-supply = <&usb_power>;
disable-over-current;
dr_mode = "host";
status = "okay";
/*
* TPS2051BDGN fault-gpio is connected to Q7[86] USB_0_1_OC_N.
* On QMX6 this is not connceted to the i.MX6, but to the USB Hub
* from &usbh1. This means, that we cannot easily detect and handle
* over-current events. Fortunately the regulator limits the current
* automatically, so the hardware is still protected.
*/
};
&usdhc4 {
/* WiFi module */
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc4>;
bus-width = <4>;
no-1-8-v;
non-removable;
wakeup-source;
keep-power-in-suspend;
cap-power-off-card;
max-frequency = <25000000>;
vmmc-supply = <&reg_wlan>;
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
wlcore: wlcore@2 {
compatible = "ti,wl1837";
reg = <2>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_q7_gpio7>;
interrupt-parent = <&gpio4>;
interrupts = <14 IRQ_TYPE_LEVEL_HIGH>;
tcxo-clock-frequency = <26000000>;
};
};
// SPDX-License-Identifier: GPL-2.0 or MIT
//
// Device Tree Source for General Electric B1x5v2
// patient monitor series
//
// Copyright 2018-2021 General Electric Company
// Copyright 2018-2021 Collabora
#include <dt-bindings/input/input.h>
#include "imx6dl-b1x5pv2.dtsi"
/ {
reg_3v3_acm: regulator-3v3-acm {
compatible = "regulator-fixed";
regulator-name = "3V3 ACM";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
vin-supply = <&reg_3v3>;
};
};
&i2c1 {
tca6416: gpio-controller@21 {
compatible = "ti,tca6416";
reg = <0x21>;
gpio-controller;
#gpio-cells = <2>;
reset-gpios = <&tca6424a 9 GPIO_ACTIVE_LOW>;
vcc-supply = <&reg_3v3_acm>;
gpio-line-names = "ACM1_EN", "ACM1_CL0", "ACM1_CL1", "ACM1_CL2",
"", "ACM2_EN", "ACM2_CL0", "ACM2_CL1",
"ACM2_CL2", "", "", "",
"", "", "", "";
/*
* The interrupt pin is connected to &tca6424a pin 1, but the Linux
* TCA6424 driver cannot handle low type interrupts at the moment
* (and support cannot be added without some ugly hacks). Since this
* controller does not have any input type GPIOs, just pretend
* that the interrupt pin is unconnected.
*/
};
};
&i2c5 {
mpl3115a2: pressure-sensor@60 {
compatible = "fsl,mpl3115";
reg = <0x60>;
vcc-supply = <&reg_3v3_acm>;
/*
* The MPL3115 interrupts are connected to pin 22 and 23
* of &tca6424a, but the binding does not yet support
* interrupts.
*/
};
};
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment