From nobody Sun May 19 02:37:59 2024 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1643080549440867.4845249959698; Mon, 24 Jan 2022 19:15:49 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1319532AbiAYDJF (ORCPT ); Mon, 24 Jan 2022 22:09:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38828 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242158AbiAYCgX (ORCPT ); Mon, 24 Jan 2022 21:36:23 -0500 Received: from mail-qt1-x830.google.com (mail-qt1-x830.google.com [IPv6:2607:f8b0:4864:20::830]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 16F59C047CE5; Mon, 24 Jan 2022 18:10:32 -0800 (PST) Received: by mail-qt1-x830.google.com with SMTP id i4so7470020qtr.0; Mon, 24 Jan 2022 18:10:32 -0800 (PST) Received: from Dell-Inspiron-15.dartmouth.edu ([129.170.195.217]) by smtp.gmail.com with ESMTPSA id m190sm8024845qkf.58.2022.01.24.18.10.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Jan 2022 18:10:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=qrLM/hD0TSoYjG9jpP9XxtCjR9gw0jtpVZchvLYMiVk=; b=Vmnw98j/Ly+Vzs66yKjc04Ss7uL1hJupnTD/19G4CqLc5wtSSdJSNgK/SUtKxQ53UI 68X2FHncl3Zema7kQaIAuiL9I5BeFkjDGaPPMk+qk4CeZAjijHnS2neFzU7wojyU3ydm VrOHWxvHw0U5VmTrTjdfK67WP2K36AsgFTNz9SERG5OcS1xBcClQmFMQ8KyzfkVLRNTc p4AD5DMzX5TW3kfYEAlvrc3bLzAJbQ+oC082p9JCTxcDazbRKVcy5ez9q4PudpouI7KK cLjL6AqpJ4WOFi4rJRwwkuJn44KcTb9my8zw6aAjYE/QFKS2CCt7hRVxYpgWJVkg4xLk mThw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=qrLM/hD0TSoYjG9jpP9XxtCjR9gw0jtpVZchvLYMiVk=; b=rQ2ngyaC81lT1hIeEqdoYG4cIDRHkBXAJYGP6MG6xTM7/UhvYiaKr9aTHK5HyPTbla ivka2vxfSXAkSIOHGtkDb4ZmtTOrK6Gc9Yr8lfKRLjmq/Vlu66abX8PnC0R1gCM6C6rS 0x/M0VTyrNcudKayXRJFjR7LemaFTyCVbntUTifGemZ7WKRumRMiXCtTVFDiSL9aWxHS /bZYXrREzMBtz61fM4py3mO/sHWSKkO2V3LhdYL7u/scnj1PAEW3Yyf15f5OCpiXmEh5 6n/gYPBOHaGKsyJ6vxMA5F/kaWACHDUO56SU4ixBrCyax79KLYrBarLCezKsKXGgSztU DaCg== X-Gm-Message-State: AOAM530mnJvp45OXE5EU6rQSzhMiBIWDjSvrmrkrDKzwTSjcDP68dlay GsEJGjiYe1ImFga2Pj3B+KcXrHgcbbZsLA== X-Google-Smtp-Source: ABdhPJzhpaZDx8dsn5eZ+IpaZbrMBI0L5CMWI0HYSi+Q/pjKkWfzcrxa7CSFoKMEqKpI7NiVxt3DHQ== X-Received: by 2002:a05:622a:1053:: with SMTP id f19mr14947526qte.363.1643076631132; Mon, 24 Jan 2022 18:10:31 -0800 (PST) From: Ben Wolsieffer Cc: Ben Wolsieffer , Andy Gross , Bjorn Andersson , Rob Herring , Arnd Bergmann , Olof Johansson , soc@kernel.org, Stephen Boyd , linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH 1/3] ARM: dts: qcom: add HP TouchPad (tenderloin) Date: Mon, 24 Jan 2022 21:07:03 -0500 Message-Id: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1643080551547100001 Content-Type: text/plain; charset="utf-8" The device tree is a copy of the Dragonboard, which uses the same SoC. Therefore, it is not usuable in its current form. Instead, this patch serves as a reference to make it easier to review the changes needed to support the TouchPad. Signed-off-by: Ben Wolsieffer --- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/qcom-apq8060-tenderloin.dts | 937 ++++++++++++++++++ 2 files changed, 938 insertions(+) create mode 100644 arch/arm/boot/dts/qcom-apq8060-tenderloin.dts diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 235ad559acb2..ce04c8b8b577 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -969,6 +969,7 @@ dtb-$(CONFIG_ARCH_QCOM) +=3D \ qcom-apq8016-sbc.dtb \ qcom-apq8026-lg-lenok.dtb \ qcom-apq8060-dragonboard.dtb \ + qcom-apq8060-tenderloin.dtb \ qcom-apq8064-cm-qs600.dtb \ qcom-apq8064-ifc6410.dtb \ qcom-apq8064-sony-xperia-yuga.dtb \ diff --git a/arch/arm/boot/dts/qcom-apq8060-tenderloin.dts b/arch/arm/boot/= dts/qcom-apq8060-tenderloin.dts new file mode 100644 index 000000000000..996e73aa0b0b --- /dev/null +++ b/arch/arm/boot/dts/qcom-apq8060-tenderloin.dts @@ -0,0 +1,937 @@ +// SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +#include +#include +#include +#include +#include "qcom-msm8660.dtsi" + +/ { + model =3D "HP TouchPad"; + compatible =3D "qcom,apq8060-tenderloin", "qcom,msm8660"; + + aliases { + serial0 =3D &gsbi12_serial; + }; + + chosen { + stdout-path =3D "serial0:115200n8"; + }; + + regulators { + compatible =3D "simple-bus"; + + /* Main power of the board: 3.7V */ + vph: regulator-fixed { + compatible =3D "regulator-fixed"; + regulator-min-microvolt =3D <3700000>; + regulator-max-microvolt =3D <3700000>; + regulator-name =3D "VPH"; + regulator-type =3D "voltage"; + regulator-always-on; + regulator-boot-on; + }; + + /* GPIO controlled ethernet power regulator */ + dragon_veth: xc622a331mrg { + compatible =3D "regulator-fixed"; + regulator-name =3D "XC6222A331MR-G"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + vin-supply =3D <&vph>; + gpio =3D <&pm8058_gpio 40 GPIO_ACTIVE_HIGH>; + enable-active-high; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dragon_veth_gpios>; + regulator-always-on; + }; + + /* VDDvario fixed regulator */ + dragon_vario: nds332p { + compatible =3D "regulator-fixed"; + regulator-name =3D "NDS332P"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + vin-supply =3D <&pm8058_s3>; + }; + + /* This is a levelshifter for SDCC5 */ + dragon_vio_txb: txb0104rgyr { + compatible =3D "regulator-fixed"; + regulator-name =3D "Dragon SDCC levelshifter"; + vin-supply =3D <&pm8058_l14>; + regulator-always-on; + }; + }; + + /* + * Capella CM3605 light and proximity sensor mounted directly + * on the sensor board. + */ + cm3605 { + compatible =3D "capella,cm3605"; + vdd-supply =3D <&pm8058_l14>; // 2.85V + aset-gpios =3D <&pm8058_gpio 35 GPIO_ACTIVE_LOW>; + capella,aset-resistance-ohms =3D <100000>; + /* Trig on both edges - getting close or far away */ + interrupts-extended =3D <&pm8058_gpio 34 IRQ_TYPE_EDGE_BOTH>; + /* MPP05 analog input to the XOADC */ + io-channels =3D <&xoadc 0x00 0x05>; + io-channel-names =3D "aout"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dragon_cm3605_gpios>, <&dragon_cm3605_mpps>; + }; + + soc { + pinctrl@800000 { + /* eMMMC pins, all 8 data lines connected */ + dragon_sdcc1_pins: sdcc1 { + mux { + pins =3D "gpio159", "gpio160", "gpio161", + "gpio162", "gpio163", "gpio164", + "gpio165", "gpio166", "gpio167", + "gpio168"; + function =3D "sdc1"; + }; + clk { + pins =3D "gpio167"; /* SDC1 CLK */ + drive-strength =3D <16>; + bias-disable; + }; + cmd { + pins =3D "gpio168"; /* SDC1 CMD */ + drive-strength =3D <10>; + bias-pull-up; + }; + data { + /* SDC1 D0 to D7 */ + pins =3D "gpio159", "gpio160", "gpio161", "gpio162", + "gpio163", "gpio164", "gpio165", "gpio166"; + drive-strength =3D <10>; + bias-pull-up; + }; + }; + + /* + * The SDCC3 pins are hardcoded (non-muxable) but need some pin + * configuration. + */ + dragon_sdcc3_pins: sdcc3 { + clk { + pins =3D "sdc3_clk"; + drive-strength =3D <8>; + bias-disable; + }; + cmd { + pins =3D "sdc3_cmd"; + drive-strength =3D <8>; + bias-pull-up; + }; + data { + pins =3D "sdc3_data"; + drive-strength =3D <8>; + bias-pull-up; + }; + }; + + /* Second SD card slot pins */ + dragon_sdcc5_pins: sdcc5 { + mux { + pins =3D "gpio95", "gpio96", "gpio97", + "gpio98", "gpio99", "gpio100"; + function =3D "sdc5"; + }; + clk { + pins =3D "gpio97"; /* SDC5 CLK */ + drive-strength =3D <16>; + bias-disable; + }; + cmd { + pins =3D "gpio95"; /* SDC5 CMD */ + drive-strength =3D <10>; + bias-pull-up; + }; + data { + /* SDC5 D0 to D3 */ + pins =3D "gpio96", "gpio98", "gpio99", "gpio100"; + drive-strength =3D <10>; + bias-pull-up; + }; + }; + + dragon_gsbi8_i2c_pins: gsbi8_i2c { + mux { + pins =3D "gpio64", "gpio65"; + function =3D "gsbi8"; + }; + pinconf { + pins =3D "gpio64", "gpio65"; + drive-strength =3D <16>; + /* These have external pull-up 2.2kOhm to 1.8V */ + bias-disable; + }; + }; + + dragon_gsbi12_i2c_pins: gsbi12_i2c { + mux { + pins =3D "gpio115", "gpio116"; + function =3D "gsbi12"; + }; + pinconf { + pins =3D "gpio115", "gpio116"; + drive-strength =3D <16>; + /* These have external pull-up 4.7kOhm to 1.8V */ + bias-disable; + }; + }; + + /* Primary serial port uart 0 pins */ + dragon_gsbi12_serial_pins: gsbi12_serial { + mux { + pins =3D "gpio117", "gpio118"; + function =3D "gsbi12"; + }; + tx { + pins =3D "gpio117"; + drive-strength =3D <8>; + bias-disable; + }; + rx { + pins =3D "gpio118"; + drive-strength =3D <2>; + bias-pull-up; + }; + }; + + dragon_ebi2_pins: ebi2 { + /* + * Pins used by EBI2 on the Dragonboard, actually only + * CS2 is used by a real peripheral. CS0 is just + * routed to a test point. + */ + mux0 { + pins =3D + /* "gpio39", CS1A_N this is not good to mux */ + "gpio40", /* CS2A_N */ + "gpio134"; /* CS0_N testpoint TP29 */ + function =3D "ebi2cs"; + }; + mux1 { + pins =3D + /* EBI2_ADDR_7 downto EBI2_ADDR_0 address bus */ + "gpio123", "gpio124", "gpio125", "gpio126", + "gpio127", "gpio128", "gpio129", "gpio130", + /* EBI2_DATA_15 downto EBI2_DATA_0 data bus */ + "gpio135", "gpio136", "gpio137", "gpio138", + "gpio139", "gpio140", "gpio141", "gpio142", + "gpio143", "gpio144", "gpio145", "gpio146", + "gpio147", "gpio148", "gpio149", "gpio150", + "gpio151", /* EBI2_OE_N */ + "gpio153", /* EBI2_ADV */ + "gpio157"; /* EBI2_WE_N */ + function =3D "ebi2"; + }; + }; + + /* Interrupt line for the KXSD9 accelerometer */ + dragon_kxsd9_gpios: kxsd9 { + irq { + pins =3D "gpio57"; /* IRQ line */ + bias-pull-up; + }; + }; + }; + + qcom,ssbi@500000 { + pmic@0 { + keypad@148 { + linux,keymap =3D < + MATRIX_KEY(0, 0, KEY_MENU) + MATRIX_KEY(0, 2, KEY_1) + MATRIX_KEY(0, 3, KEY_4) + MATRIX_KEY(0, 4, KEY_7) + MATRIX_KEY(1, 0, KEY_UP) + MATRIX_KEY(1, 1, KEY_LEFT) + MATRIX_KEY(1, 2, KEY_DOWN) + MATRIX_KEY(1, 3, KEY_5) + MATRIX_KEY(1, 3, KEY_8) + MATRIX_KEY(2, 0, KEY_HOME) + MATRIX_KEY(2, 1, KEY_REPLY) + MATRIX_KEY(2, 2, KEY_2) + MATRIX_KEY(2, 3, KEY_6) + MATRIX_KEY(3, 0, KEY_VOLUMEUP) + MATRIX_KEY(3, 1, KEY_RIGHT) + MATRIX_KEY(3, 2, KEY_3) + MATRIX_KEY(3, 3, KEY_9) + MATRIX_KEY(3, 4, KEY_SWITCHVIDEOMODE) + MATRIX_KEY(4, 0, KEY_VOLUMEDOWN) + MATRIX_KEY(4, 1, KEY_BACK) + MATRIX_KEY(4, 2, KEY_CAMERA) + MATRIX_KEY(4, 3, KEY_KBDILLUMTOGGLE) + >; + keypad,num-rows =3D <6>; + keypad,num-columns =3D <5>; + }; + + gpio@150 { + dragon_ethernet_gpios: ethernet-gpios { + pinconf { + pins =3D "gpio7"; + function =3D "normal"; + input-enable; + bias-disable; + power-source =3D ; + }; + }; + dragon_bmp085_gpios: bmp085-gpios { + pinconf { + pins =3D "gpio16"; + function =3D "normal"; + input-enable; + bias-disable; + power-source =3D ; + }; + }; + dragon_mpu3050_gpios: mpu3050-gpios { + pinconf { + pins =3D "gpio17"; + function =3D "normal"; + input-enable; + bias-disable; + power-source =3D ; + }; + }; + dragon_sdcc3_gpios: sdcc3-gpios { + pinconf { + pins =3D "gpio22"; + function =3D "normal"; + input-enable; + bias-disable; + power-source =3D ; + }; + }; + dragon_sdcc5_gpios: sdcc5-gpios { + pinconf { + pins =3D "gpio26"; + function =3D "normal"; + input-enable; + bias-pull-up; + qcom,pull-up-strength =3D ; + power-source =3D ; + }; + }; + dragon_ak8975_gpios: ak8975-gpios { + pinconf { + pins =3D "gpio33"; + function =3D "normal"; + input-enable; + bias-disable; + power-source =3D ; + }; + }; + dragon_cm3605_gpios: cm3605-gpios { + /* Pin 34 connected to the proxy IRQ */ + pinconf_gpio34 { + pins =3D "gpio34"; + function =3D "normal"; + input-enable; + bias-disable; + power-source =3D ; + }; + /* Pin 35 connected to ASET */ + pinconf_gpio35 { + pins =3D "gpio35"; + function =3D "normal"; + output-high; + bias-disable; + power-source =3D ; + }; + }; + dragon_veth_gpios: veth-gpios { + pinconf { + pins =3D "gpio40"; + function =3D "normal"; + bias-disable; + drive-push-pull; + }; + }; + }; + + mpps@50 { + dragon_cm3605_mpps: cm3605-mpps-state { + pinconf { + pins =3D "mpp5"; + function =3D "analog"; + input-enable; + bias-high-impedance; + /* Let's use channel 5 */ + qcom,amux-route =3D ; + power-source =3D ; + }; + }; + }; + + xoadc@197 { + /* Reference voltage 2.2 V */ + xoadc-ref-supply =3D <&pm8058_l18>; + + /* Board-specific channels */ + mpp5@5 { + /* Connected to AOUT of ALS sensor */ + reg =3D <0x00 0x05>; + }; + mpp6@6 { + /* Connected to test point TP43 */ + reg =3D <0x00 0x06>; + }; + mpp7@7 { + /* Connected to battery thermistor */ + reg =3D <0x00 0x07>; + }; + mpp8@8 { + /* Connected to battery ID detector */ + reg =3D <0x00 0x08>; + }; + mpp9@9 { + /* Connected to XO thermistor */ + reg =3D <0x00 0x09>; + }; + }; + + led@48 { + /* + * The keypad LED @0x48 is routed to + * the sensor board where it is + * connected to an infrared LED + * SFH4650 (60mW, @850nm) next to the + * ambient light and proximity sensor + * Capella Microsystems CM3605. + */ + compatible =3D "qcom,pm8058-keypad-led"; + reg =3D <0x48>; + label =3D "pm8058:infrared:proximitysensor"; + default-state =3D "off"; + linux,default-trigger =3D "cm3605"; + }; + led@131 { + compatible =3D "qcom,pm8058-led"; + reg =3D <0x131>; + label =3D "pm8058:red"; + default-state =3D "off"; + }; + led@132 { + /* + * This is actually green too on my + * board, but documented as yellow. + */ + compatible =3D "qcom,pm8058-led"; + reg =3D <0x132>; + label =3D "pm8058:yellow"; + default-state =3D "off"; + linux,default-trigger =3D "mmc0"; + }; + led@133 { + compatible =3D "qcom,pm8058-led"; + reg =3D <0x133>; + label =3D "pm8058:green"; + default-state =3D "on"; + linux,default-trigger =3D "heartbeat"; + }; + }; + }; + + gsbi@19800000 { + status =3D "okay"; + qcom,mode =3D ; + + i2c@19880000 { + status =3D "okay"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dragon_gsbi8_i2c_pins>; + + eeprom@52 { + /* A 16KiB Platform ID EEPROM on the CPU carrier board */ + compatible =3D "atmel,24c128"; + reg =3D <0x52>; + vcc-supply =3D <&pm8058_s3>; + pagesize =3D <64>; + }; + wm8903: wm8903@1a { + /* This Woolfson Micro device has an unrouted interrupt line */ + compatible =3D "wlf,wm8903"; + reg =3D <0x1a>; + + AVDD-supply =3D <&pm8058_l16>; + CPVDD-supply =3D <&pm8058_l16>; + DBVDD-supply =3D <&pm8058_s3>; + DCVDD-supply =3D <&pm8058_l0>; + + gpio-controller; + #gpio-cells =3D <2>; + + micdet-cfg =3D <0>; + micdet-delay =3D <100>; + gpio-cfg =3D <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>; + }; + }; + }; + + gsbi@19c00000 { + status =3D "okay"; + qcom,mode =3D ; + + serial@19c40000 { + status =3D "okay"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dragon_gsbi12_serial_pins>; + }; + + i2c@19c80000 { + status =3D "okay"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dragon_gsbi12_i2c_pins>; + + ak8975@c { + compatible =3D "asahi-kasei,ak8975"; + reg =3D <0x0c>; + interrupt-parent =3D <&pm8058_gpio>; + interrupts =3D <33 IRQ_TYPE_EDGE_RISING>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dragon_ak8975_gpios>; + vid-supply =3D <&pm8058_lvs0>; // 1.8V + vdd-supply =3D <&pm8058_l14>; // 2.85V + }; + bmp085@77 { + compatible =3D "bosch,bmp085"; + reg =3D <0x77>; + interrupt-parent =3D <&pm8058_gpio>; + interrupts =3D <16 IRQ_TYPE_EDGE_RISING>; + reset-gpios =3D <&tlmm 86 GPIO_ACTIVE_LOW>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dragon_bmp085_gpios>; + vddd-supply =3D <&pm8058_lvs0>; // 1.8V + vdda-supply =3D <&pm8058_l14>; // 2.85V + }; + mpu3050@68 { + compatible =3D "invensense,mpu3050"; + reg =3D <0x68>; + /* + * GPIO17 is pulled high by a 10k + * resistor to VLOGIC so needs to be + * active low/falling edge. + */ + interrupts-extended =3D <&pm8058_gpio 17 IRQ_TYPE_EDGE_FALLING>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dragon_mpu3050_gpios>; + vlogic-supply =3D <&pm8058_lvs0>; // 1.8V + vdd-supply =3D <&pm8058_l14>; // 2.85V + + /* + * The MPU-3050 acts as a hub for the + * accelerometer. + */ + i2c-gate { + #address-cells =3D <1>; + #size-cells =3D <0>; + + kxsd9@18 { + compatible =3D "kionix,kxsd9"; + reg =3D <0x18>; + interrupt-parent =3D <&tlmm>; + interrupts =3D <57 IRQ_TYPE_EDGE_FALLING>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dragon_kxsd9_gpios>; + iovdd-supply =3D <&pm8058_lvs0>; // 1.8V + vdd-supply =3D <&pm8058_l14>; // 2.85V + }; + }; + }; + }; + }; + + external-bus@1a100000 { + /* The EBI2 will instantiate first, then populate its children */ + status =3D "okay"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dragon_ebi2_pins>; + + /* + * An on-board SMSC LAN9221 chip for "debug ethernet", + * which is actually just an ordinary ethernet on the + * EBI2. This has a 25MHz chrystal next to it, so no + * clocking is needed. + */ + ethernet@2,0 { + compatible =3D "smsc,lan9221", "smsc,lan9115"; + reg =3D <2 0x0 0x100>; + /* + * The second interrupt is the PME interrupt + * for network wakeup, connected to the TLMM. + */ + interrupts-extended =3D <&pm8058_gpio 7 IRQ_TYPE_EDGE_FALLING>, + <&tlmm 29 IRQ_TYPE_EDGE_RISING>; + reset-gpios =3D <&tlmm 30 GPIO_ACTIVE_LOW>; + vdd33a-supply =3D <&dragon_veth>; + vddvario-supply =3D <&dragon_vario>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dragon_ethernet_gpios>; + phy-mode =3D "mii"; + reg-io-width =3D <2>; + smsc,force-external-phy; + smsc,irq-push-pull; + + /* + * SLOW chipselect config + * Delay 9 cycles (140ns@64MHz) between SMSC + * LAN9221 Ethernet controller reads and writes + * on CS2. + */ + qcom,xmem-recovery-cycles =3D <0>; + qcom,xmem-write-hold-cycles =3D <3>; + qcom,xmem-write-delta-cycles =3D <31>; + qcom,xmem-read-delta-cycles =3D <28>; + qcom,xmem-write-wait-cycles =3D <9>; + qcom,xmem-read-wait-cycles =3D <9>; + }; + }; + + rpm@104000 { + /* + * Set up of the PMIC RPM regulators for this board + * PM8901 supplies "preliminary regulators" whatever + * that means + */ + pm8901-regulators { + vdd_l0-supply =3D <&pm8901_s4>; + vdd_l1-supply =3D <&vph>; + vdd_l2-supply =3D <&vph>; + vdd_l3-supply =3D <&vph>; + vdd_l4-supply =3D <&vph>; + vdd_l5-supply =3D <&vph>; + vdd_l6-supply =3D <&vph>; + /* vdd_s0-supply, vdd_s1-supply: SAW regulators */ + vdd_s2-supply =3D <&vph>; + vdd_s3-supply =3D <&vph>; + vdd_s4-supply =3D <&vph>; + lvs0_in-supply =3D <&pm8058_s3>; + lvs1_in-supply =3D <&pm8901_s4>; + lvs2_in-supply =3D <&pm8058_l0>; + lvs3_in-supply =3D <&pm8058_s2>; + mvs_in-supply =3D <&pm8058_s3>; + + l0 { + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + bias-pull-down; + }; + l1 { + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + bias-pull-down; + }; + l2 { + regulator-min-microvolt =3D <2850000>; + regulator-max-microvolt =3D <3300000>; + bias-pull-down; + }; + l3 { + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + bias-pull-down; + }; + l4 { + regulator-min-microvolt =3D <2600000>; + regulator-max-microvolt =3D <2600000>; + bias-pull-down; + }; + l5 { + regulator-min-microvolt =3D <2850000>; + regulator-max-microvolt =3D <2850000>; + bias-pull-down; + }; + l6 { + regulator-min-microvolt =3D <2200000>; + regulator-max-microvolt =3D <2200000>; + bias-pull-down; + }; + + /* s0 and s1 are SAW regulators controlled over SPM */ + s2 { + regulator-min-microvolt =3D <1300000>; + regulator-max-microvolt =3D <1300000>; + qcom,switch-mode-frequency =3D <1600000>; + bias-pull-down; + }; + s3 { + regulator-min-microvolt =3D <1100000>; + regulator-max-microvolt =3D <1100000>; + qcom,switch-mode-frequency =3D <1600000>; + bias-pull-down; + }; + s4 { + regulator-min-microvolt =3D <1225000>; + regulator-max-microvolt =3D <1225000>; + qcom,switch-mode-frequency =3D <1600000>; + bias-pull-down; + }; + + /* LVS0 thru 3 and mvs0 are just switches */ + lvs0 { + regulator-always-on; + }; + lvs1 { }; + lvs2 { }; + lvs3 { }; + mvs0 {}; + + }; + + pm8058-regulators { + vdd_l0_l1_lvs-supply =3D <&pm8058_s3>; + vdd_l2_l11_l12-supply =3D <&vph>; + vdd_l3_l4_l5-supply =3D <&vph>; + vdd_l6_l7-supply =3D <&vph>; + vdd_l8-supply =3D <&vph>; + vdd_l9-supply =3D <&vph>; + vdd_l10-supply =3D <&vph>; + vdd_l13_l16-supply =3D <&pm8058_s4>; + vdd_l14_l15-supply =3D <&vph>; + vdd_l17_l18-supply =3D <&vph>; + vdd_l19_l20-supply =3D <&vph>; + vdd_l21-supply =3D <&pm8058_s3>; + vdd_l22-supply =3D <&pm8058_s3>; + vdd_l23_l24_l25-supply =3D <&pm8058_s3>; + vdd_s0-supply =3D <&vph>; + vdd_s1-supply =3D <&vph>; + vdd_s2-supply =3D <&vph>; + vdd_s3-supply =3D <&vph>; + vdd_s4-supply =3D <&vph>; + vdd_ncp-supply =3D <&vph>; + + l0 { + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + bias-pull-down; + }; + l1 { + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + bias-pull-down; + }; + l2 { + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <2600000>; + bias-pull-down; + }; + l3 { + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + bias-pull-down; + }; + l4 { + regulator-min-microvolt =3D <2850000>; + regulator-max-microvolt =3D <2850000>; + bias-pull-down; + }; + l5 { + regulator-min-microvolt =3D <2850000>; + regulator-max-microvolt =3D <2850000>; + bias-pull-down; + }; + l6 { + regulator-min-microvolt =3D <3000000>; + regulator-max-microvolt =3D <3600000>; + bias-pull-down; + }; + l7 { + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + bias-pull-down; + }; + l8 { + regulator-min-microvolt =3D <2900000>; + regulator-max-microvolt =3D <3050000>; + bias-pull-down; + }; + l9 { + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + bias-pull-down; + }; + l10 { + regulator-min-microvolt =3D <2600000>; + regulator-max-microvolt =3D <2600000>; + bias-pull-down; + }; + l11 { + regulator-min-microvolt =3D <1500000>; + regulator-max-microvolt =3D <1500000>; + bias-pull-down; + }; + l12 { + regulator-min-microvolt =3D <2900000>; + regulator-max-microvolt =3D <2900000>; + bias-pull-down; + }; + l13 { + regulator-min-microvolt =3D <2050000>; + regulator-max-microvolt =3D <2050000>; + bias-pull-down; + }; + l14 { + regulator-min-microvolt =3D <2850000>; + regulator-max-microvolt =3D <2850000>; + }; + l15 { + regulator-min-microvolt =3D <2850000>; + regulator-max-microvolt =3D <2850000>; + bias-pull-down; + }; + l16 { + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + bias-pull-down; + regulator-always-on; + }; + l17 { + // 1.5V according to schematic + regulator-min-microvolt =3D <2600000>; + regulator-max-microvolt =3D <2600000>; + bias-pull-down; + }; + l18 { + regulator-min-microvolt =3D <2200000>; + regulator-max-microvolt =3D <2200000>; + bias-pull-down; + }; + l19 { + regulator-min-microvolt =3D <2500000>; + regulator-max-microvolt =3D <2500000>; + bias-pull-down; + }; + l20 { + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + bias-pull-down; + }; + l21 { + // 1.1 V according to schematic + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + bias-pull-down; + regulator-always-on; + }; + l22 { + // 1.2 V according to schematic + regulator-min-microvolt =3D <1150000>; + regulator-max-microvolt =3D <1150000>; + bias-pull-down; + }; + l23 { + // Unused + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + bias-pull-down; + }; + l24 { + // Unused + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + bias-pull-down; + }; + l25 { + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + bias-pull-down; + }; + + s0 { + // regulator-min-microvolt =3D <500000>; + // regulator-max-microvolt =3D <1325000>; + regulator-min-microvolt =3D <1100000>; + regulator-max-microvolt =3D <1100000>; + qcom,switch-mode-frequency =3D <1600000>; + bias-pull-down; + }; + s1 { + // regulator-min-microvolt =3D <500000>; + // regulator-max-microvolt =3D <1250000>; + regulator-min-microvolt =3D <1100000>; + regulator-max-microvolt =3D <1100000>; + qcom,switch-mode-frequency =3D <1600000>; + bias-pull-down; + }; + s2 { + // 1.3 V according to schematic + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1400000>; + qcom,switch-mode-frequency =3D <1600000>; + bias-pull-down; + }; + s3 { + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + qcom,switch-mode-frequency =3D <1600000>; + regulator-always-on; + bias-pull-down; + }; + s4 { + regulator-min-microvolt =3D <2200000>; + regulator-max-microvolt =3D <2200000>; + qcom,switch-mode-frequency =3D <1600000>; + regulator-always-on; + bias-pull-down; + }; + + /* LVS0 and LVS1 are just switches */ + lvs0 { + bias-pull-down; + }; + lvs1 { + bias-pull-down; + }; + + ncp { + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + qcom,switch-mode-frequency =3D <1600000>; + }; + }; + }; + amba { + /* Internal 3.69 GiB eMMC */ + mmc@12400000 { + status =3D "okay"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dragon_sdcc1_pins>; + vmmc-supply =3D <&pm8901_l5>; + vqmmc-supply =3D <&pm8901_lvs0>; + }; + + /* External micro SD card, directly connected, pulled up to 2.85 V */ + mmc@12180000 { + status =3D "okay"; + /* Enable SSBI GPIO 22 as input, use for card detect */ + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dragon_sdcc3_pins>, <&dragon_sdcc3_gpios>; + cd-gpios =3D <&pm8058_gpio 22 GPIO_ACTIVE_LOW>; + wp-gpios =3D <&tlmm 110 GPIO_ACTIVE_HIGH>; + vmmc-supply =3D <&pm8058_l14>; + }; + + /* + * Second external micro SD card, using two TXB104RGYR levelshifters + * to lift from 1.8 V to 2.85 V + */ + mmc@12200000 { + status =3D "okay"; + /* Enable SSBI GPIO 26 as input, use for card detect */ + pinctrl-names =3D "default"; + pinctrl-0 =3D <&dragon_sdcc5_pins>, <&dragon_sdcc5_gpios>; + cd-gpios =3D <&pm8058_gpio 26 GPIO_ACTIVE_LOW>; + wp-gpios =3D <&tlmm 106 GPIO_ACTIVE_HIGH>; + vmmc-supply =3D <&pm8058_l14>; + vqmmc-supply =3D <&dragon_vio_txb>; + }; + }; + }; +}; --=20 2.34.1 From nobody Sun May 19 02:37:59 2024 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1643080553401493.4123321392656; Mon, 24 Jan 2022 19:15:53 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1319649AbiAYDJV (ORCPT ); Mon, 24 Jan 2022 22:09:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40158 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1312160AbiAYClx (ORCPT ); Mon, 24 Jan 2022 21:41:53 -0500 Received: from mail-qt1-x82e.google.com (mail-qt1-x82e.google.com [IPv6:2607:f8b0:4864:20::82e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 136E5C019B2B; Mon, 24 Jan 2022 18:10:43 -0800 (PST) Received: by mail-qt1-x82e.google.com with SMTP id b8so1186237qtt.8; Mon, 24 Jan 2022 18:10:43 -0800 (PST) Received: from Dell-Inspiron-15.dartmouth.edu ([129.170.195.217]) by smtp.gmail.com with ESMTPSA id m190sm8024845qkf.58.2022.01.24.18.10.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Jan 2022 18:10:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JQ08bNvQMf8xaiplyU2DXnMjp5Aby3EKSZotltu5q8c=; b=WH2j+oCodFc1Yg9Ni0NDUttB7JOhwscDIgD9gCV7Df60jfKqGbatfOL7XTjQlA49yA ZIm921dGBfGiNW4LAb4MGAfUZ1h5Jsd0lsPtDdRF8ZrcWIRjtJbobLjZ7nYPpkiYCHtE apWYwUSWICpBDs6drQVAkUuq4Xhw2e7UJ+NQss9tbJ8jeKYcsGf8KzKuPlExk/XNFE1F hgTuEjEL10n/hbup+1XhabHypLOzIy149cetX1/R8QFCVyznBDFuqqJVkt5F60a+/vmc kGa5wJhUQ4KlhDNzUaxAC8+9ntpQnr7T/DDBwehxQ0XyeoP62S8qhmv//wui1slS0aSv X28Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JQ08bNvQMf8xaiplyU2DXnMjp5Aby3EKSZotltu5q8c=; b=4/nompHpY8uQkAxlWMZQ9QqyYr2CX08tAVpdbGHpQKox18FE4phUoNeZmL1NRZKyFm XMvhuIHslG5BvcTaFcP0AHSmAyRsN0aeoeDTckk472R4vEzLF44qBbUJn/lRV8fkmALU ftZ+TGBPw4YE21bfT+mxSLpxoJBrPzw6vwF1mKpzDxRk61NQxJdSbwVMGn8OVx0L7xJ6 JmmDBctB9XRfVLAGGjKGGXK8BnW2o0k9ppz/6Hux6UCqWaXYdoapCz9riMBICs2mep1u al30i9TxMNCGqMd5M4Jx+yzF6LzCzbfakeisrO7Mb3twuFYKAHaFB4ZgOGToWPRMMXAc HHMQ== X-Gm-Message-State: AOAM530aRqQ28d3hxSLLirVPFVKv7CFtmbQwBkdzLCm9A3ZOhtZjuAx0 iTbsI8au/tOVxguVbglwhoGeVRmBBqVg4w== X-Google-Smtp-Source: ABdhPJwZBAfW0IlBXV7hYkVdYLtM6cmtQtfsb2+NhozfesQ8eWj60l8cjw3Py0M6/eOhObwvM3BOiw== X-Received: by 2002:ac8:5810:: with SMTP id g16mr14599532qtg.183.1643076642303; Mon, 24 Jan 2022 18:10:42 -0800 (PST) From: Ben Wolsieffer Cc: Ben Wolsieffer , Andy Gross , Bjorn Andersson , Rob Herring , Arnd Bergmann , Olof Johansson , soc@kernel.org, Stephen Boyd , linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH 2/3] dt-bindings: arm: qcom: document HP TouchPad Date: Mon, 24 Jan 2022 21:07:04 -0500 Message-Id: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1643080556065100001 Content-Type: text/plain; charset="utf-8" Add binding documentation for the HP TouchPad. Signed-off-by: Ben Wolsieffer --- Documentation/devicetree/bindings/arm/qcom.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentatio= n/devicetree/bindings/arm/qcom.yaml index 370aab274cd1..f7418a8a49fc 100644 --- a/Documentation/devicetree/bindings/arm/qcom.yaml +++ b/Documentation/devicetree/bindings/arm/qcom.yaml @@ -119,6 +119,7 @@ properties: - items: - enum: - qcom,apq8060-dragonboard + - qcom,apq8060-tenderloin - qcom,msm8660-surf - const: qcom,msm8660 =20 --=20 2.34.1 From nobody Sun May 19 02:37:59 2024 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mx.zohomail.com with SMTP id 1643080553764115.24294402369833; Mon, 24 Jan 2022 19:15:53 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1319669AbiAYDJW (ORCPT ); Mon, 24 Jan 2022 22:09:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40178 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1312179AbiAYCl4 (ORCPT ); Mon, 24 Jan 2022 21:41:56 -0500 Received: from mail-qt1-x831.google.com (mail-qt1-x831.google.com [IPv6:2607:f8b0:4864:20::831]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4B89CC047CEC; Mon, 24 Jan 2022 18:10:47 -0800 (PST) Received: by mail-qt1-x831.google.com with SMTP id h4so1396530qtm.2; Mon, 24 Jan 2022 18:10:47 -0800 (PST) Received: from Dell-Inspiron-15.dartmouth.edu ([129.170.195.217]) by smtp.gmail.com with ESMTPSA id m190sm8024845qkf.58.2022.01.24.18.10.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Jan 2022 18:10:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=gtqOgETo9WpBYGhrwsSAf8wEM8H5JsUH4gMyIhTeIqw=; b=Lna3Lss9eRfNHmRcA0tWTbI6F1yCyZ7LWCIZjTDSM6uxWW0/OLF/FDPsCrI2Aevuio 3SE9CpD4649hU6we2Qe1pSnWi0Nv5lJPM5ESJT1Yb4fTsC96Y7KTLeTcN6SvsT+iKa3I HcjWKrmGv2wvqv44oxNYcmuKkfMyAlqUQOyouhYgzijsjdUUIgqA0DO3p0ZnOWtja+CH 1vP4pWV3a9pwwkARhkwfPy6R9xa0ja9GFMDD7Rml7sxvsBumq4LKeY8TaBW8pvdHHh8I wdptwa+WZwde53eMEpHn9h7+nKRF9e2tJOiC7tqSMOl5x7+lEvYOgA2uyWrRsjB5T7gc ZsUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=gtqOgETo9WpBYGhrwsSAf8wEM8H5JsUH4gMyIhTeIqw=; b=atDNppmqSW4iPBBqJ+oafFtPHmI/TEHuyTZVTH4a/M3DQxXn9GABH9VMtN9uLnRdd6 tTz8p/WPXf0zP5PR0JR5OlnbTFVZFcCbY7LejmE7/AesMh4poH/hvQ7jOBqjdQfN1A2e NJ3jQIR6t+h+Eh2toaxHwl0gmaQkgEEzKoeVWPTC680Ohiy5HuEcjaEYovYG1xa1VLXF 9jiOmDU4n1Wt2sWMAhsiscdJDULnPnQ0c50wt4RjezrbvgCFzbvDBlbcNfSAYx5YXuMx Byg5ahQSdxQ5WH5DCbGaKJRRKXq+d7af02kOgpYgGIYx1PvkyA0httVZWZst4nIxp3bZ 0DxA== X-Gm-Message-State: AOAM532VnjLxZilrSUD/TwIClNVh6M4AxGmjJ8Xt4wo/klyiO+PNGsQg ntbSXyQMy7EwG1sR75CCxgU= X-Google-Smtp-Source: ABdhPJxiIYX4t2C4CKLZ3hXQS/a9rzWH5NmFpe/yLJ5Dec1izMkrZUZxK/wH58hmBNJdd9pu/2Q4Rg== X-Received: by 2002:a05:622a:44e:: with SMTP id o14mr15202415qtx.669.1643076646360; Mon, 24 Jan 2022 18:10:46 -0800 (PST) From: Ben Wolsieffer Cc: Ben Wolsieffer , Andy Gross , Bjorn Andersson , Rob Herring , Arnd Bergmann , Olof Johansson , soc@kernel.org, Stephen Boyd , linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH 3/3] ARM: dts: qcom: basic HP TouchPad support Date: Mon, 24 Jan 2022 21:07:05 -0500 Message-Id: <9f19df2a0017b71547445ac34df221e827c45bd0.1643075547.git.benwolsieffer@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1643080556182100003 Content-Type: text/plain; charset="utf-8" Modify the Dragonboard device tree to support the most basic hardware on the HP TouchPad. The headphone UART port and eMMC are supported. Signed-off-by: Ben Wolsieffer --- arch/arm/boot/dts/qcom-apq8060-tenderloin.dts | 549 ++---------------- 1 file changed, 45 insertions(+), 504 deletions(-) diff --git a/arch/arm/boot/dts/qcom-apq8060-tenderloin.dts b/arch/arm/boot/= dts/qcom-apq8060-tenderloin.dts index 996e73aa0b0b..e294f3920b9f 100644 --- a/arch/arm/boot/dts/qcom-apq8060-tenderloin.dts +++ b/arch/arm/boot/dts/qcom-apq8060-tenderloin.dts @@ -14,6 +14,8 @@ aliases { }; =20 chosen { + /* Bootloader passes console=3Dtty1, which overrides stdout-path */ + bootargs =3D "console=3DttyMSM0,115200 earlycon"; stdout-path =3D "serial0:115200n8"; }; =20 @@ -30,67 +32,18 @@ vph: regulator-fixed { regulator-always-on; regulator-boot-on; }; - - /* GPIO controlled ethernet power regulator */ - dragon_veth: xc622a331mrg { - compatible =3D "regulator-fixed"; - regulator-name =3D "XC6222A331MR-G"; - regulator-min-microvolt =3D <3300000>; - regulator-max-microvolt =3D <3300000>; - vin-supply =3D <&vph>; - gpio =3D <&pm8058_gpio 40 GPIO_ACTIVE_HIGH>; - enable-active-high; - pinctrl-names =3D "default"; - pinctrl-0 =3D <&dragon_veth_gpios>; - regulator-always-on; - }; - - /* VDDvario fixed regulator */ - dragon_vario: nds332p { - compatible =3D "regulator-fixed"; - regulator-name =3D "NDS332P"; - regulator-min-microvolt =3D <1800000>; - regulator-max-microvolt =3D <1800000>; - vin-supply =3D <&pm8058_s3>; - }; - - /* This is a levelshifter for SDCC5 */ - dragon_vio_txb: txb0104rgyr { - compatible =3D "regulator-fixed"; - regulator-name =3D "Dragon SDCC levelshifter"; - vin-supply =3D <&pm8058_l14>; - regulator-always-on; - }; - }; - - /* - * Capella CM3605 light and proximity sensor mounted directly - * on the sensor board. - */ - cm3605 { - compatible =3D "capella,cm3605"; - vdd-supply =3D <&pm8058_l14>; // 2.85V - aset-gpios =3D <&pm8058_gpio 35 GPIO_ACTIVE_LOW>; - capella,aset-resistance-ohms =3D <100000>; - /* Trig on both edges - getting close or far away */ - interrupts-extended =3D <&pm8058_gpio 34 IRQ_TYPE_EDGE_BOTH>; - /* MPP05 analog input to the XOADC */ - io-channels =3D <&xoadc 0x00 0x05>; - io-channel-names =3D "aout"; - pinctrl-names =3D "default"; - pinctrl-0 =3D <&dragon_cm3605_gpios>, <&dragon_cm3605_mpps>; }; =20 soc { pinctrl@800000 { - /* eMMMC pins, all 8 data lines connected */ - dragon_sdcc1_pins: sdcc1 { + /* eMMC pins, all 8 data lines connected */ + emmc_pins: sdcc1 { mux { pins =3D "gpio159", "gpio160", "gpio161", "gpio162", "gpio163", "gpio164", "gpio165", "gpio166", "gpio167", "gpio168"; - function =3D "sdc1"; + function =3D "sdc1"; }; clk { pins =3D "gpio167"; /* SDC1 CLK */ @@ -111,54 +64,7 @@ data { }; }; =20 - /* - * The SDCC3 pins are hardcoded (non-muxable) but need some pin - * configuration. - */ - dragon_sdcc3_pins: sdcc3 { - clk { - pins =3D "sdc3_clk"; - drive-strength =3D <8>; - bias-disable; - }; - cmd { - pins =3D "sdc3_cmd"; - drive-strength =3D <8>; - bias-pull-up; - }; - data { - pins =3D "sdc3_data"; - drive-strength =3D <8>; - bias-pull-up; - }; - }; - - /* Second SD card slot pins */ - dragon_sdcc5_pins: sdcc5 { - mux { - pins =3D "gpio95", "gpio96", "gpio97", - "gpio98", "gpio99", "gpio100"; - function =3D "sdc5"; - }; - clk { - pins =3D "gpio97"; /* SDC5 CLK */ - drive-strength =3D <16>; - bias-disable; - }; - cmd { - pins =3D "gpio95"; /* SDC5 CMD */ - drive-strength =3D <10>; - bias-pull-up; - }; - data { - /* SDC5 D0 to D3 */ - pins =3D "gpio96", "gpio98", "gpio99", "gpio100"; - drive-strength =3D <10>; - bias-pull-up; - }; - }; - - dragon_gsbi8_i2c_pins: gsbi8_i2c { + gsbi8_i2c_pins: gsbi8_i2c { mux { pins =3D "gpio64", "gpio65"; function =3D "gsbi8"; @@ -171,205 +77,33 @@ pinconf { }; }; =20 - dragon_gsbi12_i2c_pins: gsbi12_i2c { - mux { - pins =3D "gpio115", "gpio116"; - function =3D "gsbi12"; - }; - pinconf { - pins =3D "gpio115", "gpio116"; - drive-strength =3D <16>; - /* These have external pull-up 4.7kOhm to 1.8V */ - bias-disable; - }; - }; - - /* Primary serial port uart 0 pins */ - dragon_gsbi12_serial_pins: gsbi12_serial { + /* Headphone UART pins */ + headphone_uart_pins: gsbi12_serial { mux { pins =3D "gpio117", "gpio118"; function =3D "gsbi12"; }; - tx { - pins =3D "gpio117"; - drive-strength =3D <8>; - bias-disable; - }; rx { - pins =3D "gpio118"; + pins =3D "gpio117"; drive-strength =3D <2>; bias-pull-up; }; - }; - - dragon_ebi2_pins: ebi2 { - /* - * Pins used by EBI2 on the Dragonboard, actually only - * CS2 is used by a real peripheral. CS0 is just - * routed to a test point. - */ - mux0 { - pins =3D - /* "gpio39", CS1A_N this is not good to mux */ - "gpio40", /* CS2A_N */ - "gpio134"; /* CS0_N testpoint TP29 */ - function =3D "ebi2cs"; - }; - mux1 { - pins =3D - /* EBI2_ADDR_7 downto EBI2_ADDR_0 address bus */ - "gpio123", "gpio124", "gpio125", "gpio126", - "gpio127", "gpio128", "gpio129", "gpio130", - /* EBI2_DATA_15 downto EBI2_DATA_0 data bus */ - "gpio135", "gpio136", "gpio137", "gpio138", - "gpio139", "gpio140", "gpio141", "gpio142", - "gpio143", "gpio144", "gpio145", "gpio146", - "gpio147", "gpio148", "gpio149", "gpio150", - "gpio151", /* EBI2_OE_N */ - "gpio153", /* EBI2_ADV */ - "gpio157"; /* EBI2_WE_N */ - function =3D "ebi2"; + tx { + pins =3D "gpio118"; + drive-strength =3D <8>; + bias-disable; }; - }; - - /* Interrupt line for the KXSD9 accelerometer */ - dragon_kxsd9_gpios: kxsd9 { - irq { - pins =3D "gpio57"; /* IRQ line */ - bias-pull-up; + /* Connect headphone jack to UART rather than audio */ + enable { + pins =3D "gpio58"; + function =3D "gpio"; + output-high; }; }; }; =20 qcom,ssbi@500000 { pmic@0 { - keypad@148 { - linux,keymap =3D < - MATRIX_KEY(0, 0, KEY_MENU) - MATRIX_KEY(0, 2, KEY_1) - MATRIX_KEY(0, 3, KEY_4) - MATRIX_KEY(0, 4, KEY_7) - MATRIX_KEY(1, 0, KEY_UP) - MATRIX_KEY(1, 1, KEY_LEFT) - MATRIX_KEY(1, 2, KEY_DOWN) - MATRIX_KEY(1, 3, KEY_5) - MATRIX_KEY(1, 3, KEY_8) - MATRIX_KEY(2, 0, KEY_HOME) - MATRIX_KEY(2, 1, KEY_REPLY) - MATRIX_KEY(2, 2, KEY_2) - MATRIX_KEY(2, 3, KEY_6) - MATRIX_KEY(3, 0, KEY_VOLUMEUP) - MATRIX_KEY(3, 1, KEY_RIGHT) - MATRIX_KEY(3, 2, KEY_3) - MATRIX_KEY(3, 3, KEY_9) - MATRIX_KEY(3, 4, KEY_SWITCHVIDEOMODE) - MATRIX_KEY(4, 0, KEY_VOLUMEDOWN) - MATRIX_KEY(4, 1, KEY_BACK) - MATRIX_KEY(4, 2, KEY_CAMERA) - MATRIX_KEY(4, 3, KEY_KBDILLUMTOGGLE) - >; - keypad,num-rows =3D <6>; - keypad,num-columns =3D <5>; - }; - - gpio@150 { - dragon_ethernet_gpios: ethernet-gpios { - pinconf { - pins =3D "gpio7"; - function =3D "normal"; - input-enable; - bias-disable; - power-source =3D ; - }; - }; - dragon_bmp085_gpios: bmp085-gpios { - pinconf { - pins =3D "gpio16"; - function =3D "normal"; - input-enable; - bias-disable; - power-source =3D ; - }; - }; - dragon_mpu3050_gpios: mpu3050-gpios { - pinconf { - pins =3D "gpio17"; - function =3D "normal"; - input-enable; - bias-disable; - power-source =3D ; - }; - }; - dragon_sdcc3_gpios: sdcc3-gpios { - pinconf { - pins =3D "gpio22"; - function =3D "normal"; - input-enable; - bias-disable; - power-source =3D ; - }; - }; - dragon_sdcc5_gpios: sdcc5-gpios { - pinconf { - pins =3D "gpio26"; - function =3D "normal"; - input-enable; - bias-pull-up; - qcom,pull-up-strength =3D ; - power-source =3D ; - }; - }; - dragon_ak8975_gpios: ak8975-gpios { - pinconf { - pins =3D "gpio33"; - function =3D "normal"; - input-enable; - bias-disable; - power-source =3D ; - }; - }; - dragon_cm3605_gpios: cm3605-gpios { - /* Pin 34 connected to the proxy IRQ */ - pinconf_gpio34 { - pins =3D "gpio34"; - function =3D "normal"; - input-enable; - bias-disable; - power-source =3D ; - }; - /* Pin 35 connected to ASET */ - pinconf_gpio35 { - pins =3D "gpio35"; - function =3D "normal"; - output-high; - bias-disable; - power-source =3D ; - }; - }; - dragon_veth_gpios: veth-gpios { - pinconf { - pins =3D "gpio40"; - function =3D "normal"; - bias-disable; - drive-push-pull; - }; - }; - }; - - mpps@50 { - dragon_cm3605_mpps: cm3605-mpps-state { - pinconf { - pins =3D "mpp5"; - function =3D "analog"; - input-enable; - bias-high-impedance; - /* Let's use channel 5 */ - qcom,amux-route =3D ; - power-source =3D ; - }; - }; - }; - xoadc@197 { /* Reference voltage 2.2 V */ xoadc-ref-supply =3D <&pm8058_l18>; @@ -396,46 +130,6 @@ mpp9@9 { reg =3D <0x00 0x09>; }; }; - - led@48 { - /* - * The keypad LED @0x48 is routed to - * the sensor board where it is - * connected to an infrared LED - * SFH4650 (60mW, @850nm) next to the - * ambient light and proximity sensor - * Capella Microsystems CM3605. - */ - compatible =3D "qcom,pm8058-keypad-led"; - reg =3D <0x48>; - label =3D "pm8058:infrared:proximitysensor"; - default-state =3D "off"; - linux,default-trigger =3D "cm3605"; - }; - led@131 { - compatible =3D "qcom,pm8058-led"; - reg =3D <0x131>; - label =3D "pm8058:red"; - default-state =3D "off"; - }; - led@132 { - /* - * This is actually green too on my - * board, but documented as yellow. - */ - compatible =3D "qcom,pm8058-led"; - reg =3D <0x132>; - label =3D "pm8058:yellow"; - default-state =3D "off"; - linux,default-trigger =3D "mmc0"; - }; - led@133 { - compatible =3D "qcom,pm8058-led"; - reg =3D <0x133>; - label =3D "pm8058:green"; - default-state =3D "on"; - linux,default-trigger =3D "heartbeat"; - }; }; }; =20 @@ -446,151 +140,18 @@ gsbi@19800000 { i2c@19880000 { status =3D "okay"; pinctrl-names =3D "default"; - pinctrl-0 =3D <&dragon_gsbi8_i2c_pins>; - - eeprom@52 { - /* A 16KiB Platform ID EEPROM on the CPU carrier board */ - compatible =3D "atmel,24c128"; - reg =3D <0x52>; - vcc-supply =3D <&pm8058_s3>; - pagesize =3D <64>; - }; - wm8903: wm8903@1a { - /* This Woolfson Micro device has an unrouted interrupt line */ - compatible =3D "wlf,wm8903"; - reg =3D <0x1a>; - - AVDD-supply =3D <&pm8058_l16>; - CPVDD-supply =3D <&pm8058_l16>; - DBVDD-supply =3D <&pm8058_s3>; - DCVDD-supply =3D <&pm8058_l0>; - - gpio-controller; - #gpio-cells =3D <2>; - - micdet-cfg =3D <0>; - micdet-delay =3D <100>; - gpio-cfg =3D <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>; - }; + pinctrl-0 =3D <&gsbi8_i2c_pins>; }; }; =20 gsbi@19c00000 { status =3D "okay"; - qcom,mode =3D ; + qcom,mode =3D ; =20 serial@19c40000 { status =3D "okay"; pinctrl-names =3D "default"; - pinctrl-0 =3D <&dragon_gsbi12_serial_pins>; - }; - - i2c@19c80000 { - status =3D "okay"; - pinctrl-names =3D "default"; - pinctrl-0 =3D <&dragon_gsbi12_i2c_pins>; - - ak8975@c { - compatible =3D "asahi-kasei,ak8975"; - reg =3D <0x0c>; - interrupt-parent =3D <&pm8058_gpio>; - interrupts =3D <33 IRQ_TYPE_EDGE_RISING>; - pinctrl-names =3D "default"; - pinctrl-0 =3D <&dragon_ak8975_gpios>; - vid-supply =3D <&pm8058_lvs0>; // 1.8V - vdd-supply =3D <&pm8058_l14>; // 2.85V - }; - bmp085@77 { - compatible =3D "bosch,bmp085"; - reg =3D <0x77>; - interrupt-parent =3D <&pm8058_gpio>; - interrupts =3D <16 IRQ_TYPE_EDGE_RISING>; - reset-gpios =3D <&tlmm 86 GPIO_ACTIVE_LOW>; - pinctrl-names =3D "default"; - pinctrl-0 =3D <&dragon_bmp085_gpios>; - vddd-supply =3D <&pm8058_lvs0>; // 1.8V - vdda-supply =3D <&pm8058_l14>; // 2.85V - }; - mpu3050@68 { - compatible =3D "invensense,mpu3050"; - reg =3D <0x68>; - /* - * GPIO17 is pulled high by a 10k - * resistor to VLOGIC so needs to be - * active low/falling edge. - */ - interrupts-extended =3D <&pm8058_gpio 17 IRQ_TYPE_EDGE_FALLING>; - pinctrl-names =3D "default"; - pinctrl-0 =3D <&dragon_mpu3050_gpios>; - vlogic-supply =3D <&pm8058_lvs0>; // 1.8V - vdd-supply =3D <&pm8058_l14>; // 2.85V - - /* - * The MPU-3050 acts as a hub for the - * accelerometer. - */ - i2c-gate { - #address-cells =3D <1>; - #size-cells =3D <0>; - - kxsd9@18 { - compatible =3D "kionix,kxsd9"; - reg =3D <0x18>; - interrupt-parent =3D <&tlmm>; - interrupts =3D <57 IRQ_TYPE_EDGE_FALLING>; - pinctrl-names =3D "default"; - pinctrl-0 =3D <&dragon_kxsd9_gpios>; - iovdd-supply =3D <&pm8058_lvs0>; // 1.8V - vdd-supply =3D <&pm8058_l14>; // 2.85V - }; - }; - }; - }; - }; - - external-bus@1a100000 { - /* The EBI2 will instantiate first, then populate its children */ - status =3D "okay"; - pinctrl-names =3D "default"; - pinctrl-0 =3D <&dragon_ebi2_pins>; - - /* - * An on-board SMSC LAN9221 chip for "debug ethernet", - * which is actually just an ordinary ethernet on the - * EBI2. This has a 25MHz chrystal next to it, so no - * clocking is needed. - */ - ethernet@2,0 { - compatible =3D "smsc,lan9221", "smsc,lan9115"; - reg =3D <2 0x0 0x100>; - /* - * The second interrupt is the PME interrupt - * for network wakeup, connected to the TLMM. - */ - interrupts-extended =3D <&pm8058_gpio 7 IRQ_TYPE_EDGE_FALLING>, - <&tlmm 29 IRQ_TYPE_EDGE_RISING>; - reset-gpios =3D <&tlmm 30 GPIO_ACTIVE_LOW>; - vdd33a-supply =3D <&dragon_veth>; - vddvario-supply =3D <&dragon_vario>; - pinctrl-names =3D "default"; - pinctrl-0 =3D <&dragon_ethernet_gpios>; - phy-mode =3D "mii"; - reg-io-width =3D <2>; - smsc,force-external-phy; - smsc,irq-push-pull; - - /* - * SLOW chipselect config - * Delay 9 cycles (140ns@64MHz) between SMSC - * LAN9221 Ethernet controller reads and writes - * on CS2. - */ - qcom,xmem-recovery-cycles =3D <0>; - qcom,xmem-write-hold-cycles =3D <3>; - qcom,xmem-write-delta-cycles =3D <31>; - qcom,xmem-read-delta-cycles =3D <28>; - qcom,xmem-write-wait-cycles =3D <9>; - qcom,xmem-read-wait-cycles =3D <9>; + pinctrl-0 =3D <&headphone_uart_pins>; }; }; =20 @@ -758,13 +319,13 @@ l9 { bias-pull-down; }; l10 { - regulator-min-microvolt =3D <2600000>; - regulator-max-microvolt =3D <2600000>; + regulator-min-microvolt =3D <3050000>; + regulator-max-microvolt =3D <3050000>; bias-pull-down; }; l11 { - regulator-min-microvolt =3D <1500000>; - regulator-max-microvolt =3D <1500000>; + regulator-min-microvolt =3D <2850000>; + regulator-max-microvolt =3D <2850000>; bias-pull-down; }; l12 { @@ -790,10 +351,13 @@ l16 { regulator-min-microvolt =3D <1800000>; regulator-max-microvolt =3D <1800000>; bias-pull-down; - regulator-always-on; + /* + * RPM driver can't handle always-on regulators that are + * supplied by regulators initialized after them. + */ + // regulator-always-on; }; l17 { - // 1.5V according to schematic regulator-min-microvolt =3D <2600000>; regulator-max-microvolt =3D <2600000>; bias-pull-down; @@ -804,8 +368,8 @@ l18 { bias-pull-down; }; l19 { - regulator-min-microvolt =3D <2500000>; - regulator-max-microvolt =3D <2500000>; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; bias-pull-down; }; l20 { @@ -814,14 +378,16 @@ l20 { bias-pull-down; }; l21 { - // 1.1 V according to schematic regulator-min-microvolt =3D <1200000>; regulator-max-microvolt =3D <1200000>; bias-pull-down; - regulator-always-on; + /* + * RPM driver can't handle always-on regulators that are + * supplied by regulators initialized after them. + */ + // regulator-always-on; }; l22 { - // 1.2 V according to schematic regulator-min-microvolt =3D <1150000>; regulator-max-microvolt =3D <1150000>; bias-pull-down; @@ -845,7 +411,7 @@ l25 { }; =20 s0 { - // regulator-min-microvolt =3D <500000>; + // regulator-min-microvolt =3D <800000>; // regulator-max-microvolt =3D <1325000>; regulator-min-microvolt =3D <1100000>; regulator-max-microvolt =3D <1100000>; @@ -853,8 +419,8 @@ s0 { bias-pull-down; }; s1 { - // regulator-min-microvolt =3D <500000>; - // regulator-max-microvolt =3D <1250000>; + // regulator-min-microvolt =3D <800000>; + // regulator-max-microvolt =3D <1325000>; regulator-min-microvolt =3D <1100000>; regulator-max-microvolt =3D <1100000>; qcom,switch-mode-frequency =3D <1600000>; @@ -871,15 +437,15 @@ s3 { regulator-min-microvolt =3D <1800000>; regulator-max-microvolt =3D <1800000>; qcom,switch-mode-frequency =3D <1600000>; - regulator-always-on; bias-pull-down; + regulator-always-on; }; s4 { regulator-min-microvolt =3D <2200000>; regulator-max-microvolt =3D <2200000>; qcom,switch-mode-frequency =3D <1600000>; - regulator-always-on; bias-pull-down; + regulator-always-on; }; =20 /* LVS0 and LVS1 are just switches */ @@ -897,41 +463,16 @@ ncp { }; }; }; + amba { - /* Internal 3.69 GiB eMMC */ + /* Internal 16/32 GiB eMMC */ mmc@12400000 { status =3D "okay"; pinctrl-names =3D "default"; - pinctrl-0 =3D <&dragon_sdcc1_pins>; + pinctrl-0 =3D <&emmc_pins>; vmmc-supply =3D <&pm8901_l5>; vqmmc-supply =3D <&pm8901_lvs0>; }; - - /* External micro SD card, directly connected, pulled up to 2.85 V */ - mmc@12180000 { - status =3D "okay"; - /* Enable SSBI GPIO 22 as input, use for card detect */ - pinctrl-names =3D "default"; - pinctrl-0 =3D <&dragon_sdcc3_pins>, <&dragon_sdcc3_gpios>; - cd-gpios =3D <&pm8058_gpio 22 GPIO_ACTIVE_LOW>; - wp-gpios =3D <&tlmm 110 GPIO_ACTIVE_HIGH>; - vmmc-supply =3D <&pm8058_l14>; - }; - - /* - * Second external micro SD card, using two TXB104RGYR levelshifters - * to lift from 1.8 V to 2.85 V - */ - mmc@12200000 { - status =3D "okay"; - /* Enable SSBI GPIO 26 as input, use for card detect */ - pinctrl-names =3D "default"; - pinctrl-0 =3D <&dragon_sdcc5_pins>, <&dragon_sdcc5_gpios>; - cd-gpios =3D <&pm8058_gpio 26 GPIO_ACTIVE_LOW>; - wp-gpios =3D <&tlmm 106 GPIO_ACTIVE_HIGH>; - vmmc-supply =3D <&pm8058_l14>; - vqmmc-supply =3D <&dragon_vio_txb>; - }; }; }; }; --=20 2.34.1