resend: fix wrong in-reply-to
v5: Add touchscreen.
v4: Sort properties in l11.
v3: Set property status = "okay"; as the last property.
Reword the bindings patch.
v2: Fix a typo in dt-bindings commit message
Acer Iconia Talk S A1-724 is a tablet using the MSM8916 SoC released
in 2014.
Note: The original firmware from Acer can only boot 32-bit kernels.
To boot arm64 kernels it is necessary to flash 64-bit TZ/HYP firmware
with EDL, e.g. taken from the DragonBoard 410c. This works because Acer
didn't set up (firmware) secure boot.
Add a device tree for with initial support for:
- GPIO keys
- pm8916-vibrator
- SDHCI (internal and external storage)
- USB Device Mode
- UART
- WCNSS (WiFi/BT)
- Regulators
- Bosch BMC150 accelerometer/magnetometer
- Focaltech FT5446 touchscreen
Iconia Talk S uses a Bosch BMC150 accelerometer/magnetometer combo.
The chip provides two separate I2C devices for the accelerometer
and magnetometer that are already supported by the bmc150-accel
and bmc150-magn driver.
Signed-off-by: Lin, Meng-Bo <[email protected]>
Reviewed-by: Konrad Dybcio <[email protected]>
---
.../boot/dts/qcom/msm8916-acer-a1-724.dts | 38 +++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts b/arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts
index 593051ea92b6..bea0d022dd9a 100644
--- a/arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts
+++ b/arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts
@@ -6,6 +6,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
/*
* NOTE: The original firmware from Acer can only boot 32-bit kernels.
@@ -51,6 +52,35 @@ usb_id: usb-id {
};
};
+&blsp_i2c2 {
+ status = "okay";
+
+ accelerometer@10 {
+ compatible = "bosch,bmc150_accel";
+ reg = <0x10>;
+ interrupt-parent = <&msmgpio>;
+ interrupts = <115 IRQ_TYPE_EDGE_RISING>;
+
+ vdd-supply = <&pm8916_l17>;
+ vddio-supply = <&pm8916_l6>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&accel_int_default>;
+
+ mount-matrix = "0", "-1", "0",
+ "-1", "0", "0",
+ "0", "0", "1";
+ };
+
+ magnetometer@12 {
+ compatible = "bosch,bmc150_magn";
+ reg = <0x12>;
+
+ vdd-supply = <&pm8916_l17>;
+ vddio-supply = <&pm8916_l6>;
+ };
+};
+
&blsp1_uart2 {
status = "okay";
};
@@ -199,6 +229,14 @@ l18 {
};
&msmgpio {
+ accel_int_default: accel-int-default-state {
+ pins = "gpio115";
+ function = "gpio";
+
+ drive-strength = <2>;
+ bias-disable;
+ };
+
gpio_keys_default: gpio-keys-default-state {
pins = "gpio107";
function = "gpio";
--
2.30.2
A1-724 uses a Focaltech FT5446 touchscreen that is connected to blsp_i2c5.
Add it to the device tree.
Signed-off-by: Lin, Meng-Bo <[email protected]>
---
.../boot/dts/qcom/msm8916-acer-a1-724.dts | 42 +++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts b/arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts
index bea0d022dd9a..5b216107f69b 100644
--- a/arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts
+++ b/arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts
@@ -81,6 +81,30 @@ magnetometer@12 {
};
};
+&blsp_i2c5 {
+ status = "okay";
+
+ touchscreen@38 {
+ /* Actually ft5446 */
+ compatible = "edt,edt-ft5406";
+ reg = <0x38>;
+
+ interrupt-parent = <&msmgpio>;
+ interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
+
+ reset-gpios = <&msmgpio 12 GPIO_ACTIVE_LOW>;
+
+ vcc-supply = <&pm8916_l16>;
+ iovcc-supply = <&pm8916_l6>;
+
+ touchscreen-size-x = <720>;
+ touchscreen-size-y = <1280>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&touchscreen_default>;
+ };
+};
+
&blsp1_uart2 {
status = "okay";
};
@@ -245,6 +269,24 @@ gpio_keys_default: gpio-keys-default-state {
bias-pull-up;
};
+ touchscreen_default: touchscreen-default-state {
+ reset-pins {
+ pins = "gpio12";
+ function = "gpio";
+
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ touchscreen-pins {
+ pins = "gpio13";
+ function = "gpio";
+
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
usb_id_default: usb-id-default-state {
pins = "gpio110";
function = "gpio";
--
2.30.2
Document the new acer,a1-724 device tree bindings used in its device tree.
Signed-off-by: Lin, Meng-Bo <[email protected]>
Acked-by: Krzysztof Kozlowski <[email protected]>
---
Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index 463509f0f23a..83f6748979a9 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -180,6 +180,7 @@ properties:
- items:
- enum:
+ - acer,a1-724
- alcatel,idol347
- asus,z00l
- huawei,g7
--
2.30.2
On 22.11.2022 14:32, Lin, Meng-Bo wrote:
> A1-724 uses a Focaltech FT5446 touchscreen that is connected to blsp_i2c5.
> Add it to the device tree.
>
> Signed-off-by: Lin, Meng-Bo <[email protected]>
> ---
Your commit message is wrong. It should be arm64: dts:.. and not dts: arm64:...
> .../boot/dts/qcom/msm8916-acer-a1-724.dts | 42 +++++++++++++++++++
> 1 file changed, 42 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts b/arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts
> index bea0d022dd9a..5b216107f69b 100644
> --- a/arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts
> +++ b/arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts
> @@ -81,6 +81,30 @@ magnetometer@12 {
> };
> };
>
> +&blsp_i2c5 {
> + status = "okay";
> +
> + touchscreen@38 {
> + /* Actually ft5446 */
> + compatible = "edt,edt-ft5406";
> + reg = <0x38>;
> +
> + interrupt-parent = <&msmgpio>;
> + interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
> +
> + reset-gpios = <&msmgpio 12 GPIO_ACTIVE_LOW>;
> +
> + vcc-supply = <&pm8916_l16>;
> + iovcc-supply = <&pm8916_l6>;
> +
> + touchscreen-size-x = <720>;
> + touchscreen-size-y = <1280>;
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&touchscreen_default>;
> + };
> +};
> +
> &blsp1_uart2 {
> status = "okay";
> };
> @@ -245,6 +269,24 @@ gpio_keys_default: gpio-keys-default-state {
> bias-pull-up;
> };
>
> + touchscreen_default: touchscreen-default-state {
> + reset-pins {
> + pins = "gpio12";
> + function = "gpio";
Redundant new line, here and in the next subnode.
Konrad
> +
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + touchscreen-pins {
> + pins = "gpio13";
> + function = "gpio";
> +
> + drive-strength = <2>;
> + bias-pull-up;
> + };
> + };
> +
> usb_id_default: usb-id-default-state {
> pins = "gpio110";
> function = "gpio";