HI,
On 22-08-16 14:07, Icenowy Zheng wrote:
22.08.2016, 17:01, "Hans de Goede" <hdegoede@xxxxxxxxxx>:
Hi,
On 22-08-16 10:50, Chen-Yu Tsai wrote:
Hi,
On Fri, Aug 19, 2016 at 2:02 AM, Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
Just like with a13/a23/a33 most a31 tablets are derived from the same
reference design. Add a .dtsi file with all the common bits to avoid
endless copy and pasting of these.
The sun6i-reference-design-tablet.dtsi this commit adds is a copy
of sun6i-a31s-colorfly-e708-q1.dts with a few tablet specific bits
removed / left in sun6i-a31s-colorfly-e708-q1.dts.
Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
---
arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts | 147 +--------------------
...8-q1.dts => sun6i-reference-design-tablet.dtsi} | 26 +---
2 files changed, 2 insertions(+), 171 deletions(-)
copy arch/arm/boot/dts/{sun6i-a31s-colorfly-e708-q1.dts => sun6i-reference-design-tablet.dtsi} (90%)
diff --git a/arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts b/arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts
index 34d8710..882a4d8 100644
--- a/arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts
+++ b/arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts
@@ -42,32 +42,11 @@
/dts-v1/;
#include "sun6i-a31s.dtsi"
-#include "sunxi-common-regulators.dtsi"
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/pinctrl/sun4i-a10.h>
+#include "sun6i-reference-design-tablet.dtsi"
/ {
model = "Colorfly E708 Q1 tablet";
compatible = "colorfly,e708-q1", "allwinner,sun6i-a31s";
-
- aliases {
- serial0 = &uart0;
- };
-
- chosen {
- stdout-path = "serial0:115200n8";
- };
-};
-
-&cpu0 {
- cpu-supply = <®_dcdc3>;
-};
-
-&ehci0 {
- /* rtl8188etv wifi is connected here */
- status = "okay";
};
&lradc {
@@ -82,136 +61,12 @@
};
};
-&mmc0 {
- pinctrl-names = "default";
- pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_e708_q1>;
- vmmc-supply = <®_dcdc1>;
- bus-width = <4>;
- cd-gpios = <&pio 0 8 GPIO_ACTIVE_HIGH>; /* PA8 */
- cd-inverted;
- status = "okay";
-};
-
-&pio {
- mmc0_cd_pin_e708_q1: mmc0_cd_pin@0 {
- allwinner,pins = "PA8";
- allwinner,function = "gpio_in";
- allwinner,drive = <SUN4I_PINCTRL_10_MA>;
- allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
- };
-
- usb0_id_detect_pin: usb0_id_detect_pin@0 {
- allwinner,pins = "PA15";
- allwinner,function = "gpio_in";
- allwinner,drive = <SUN4I_PINCTRL_10_MA>;
- allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
- };
-};
-
-&p2wi {
- status = "okay";
-
- axp22x: pmic@68 {
- compatible = "x-powers,axp221";
- reg = <0x68>;
- interrupt-parent = <&nmi_intc>;
- interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
- drivevbus-supply = <®_vcc5v0>;
- x-powers,drive-vbus-en;
- };
-};
-
-#include "axp22x.dtsi"
-
-®_aldo3 {
- regulator-always-on;
- regulator-min-microvolt = <2700000>;
- regulator-max-microvolt = <3300000>;
- regulator-name = "avcc";
-};
-
-®_dc1sw {
- regulator-name = "vcc-lcd";
-};
-
-®_dc5ldo {
- regulator-always-on;
- regulator-min-microvolt = <700000>;
- regulator-max-microvolt = <1320000>;
- regulator-name = "vdd-cpus"; /* This is an educated guess */
-};
-
-®_dcdc1 {
- regulator-always-on;
- regulator-min-microvolt = <3000000>;
- regulator-max-microvolt = <3000000>;
- regulator-name = "vcc-3v0";
-};
-
-®_dcdc2 {
- regulator-min-microvolt = <700000>;
- regulator-max-microvolt = <1320000>;
- regulator-name = "vdd-gpu";
-};
-
-®_dcdc3 {
- regulator-always-on;
- regulator-min-microvolt = <700000>;
- regulator-max-microvolt = <1320000>;
- regulator-name = "vdd-cpu";
-};
-
-®_dcdc4 {
- regulator-always-on;
- regulator-min-microvolt = <700000>;
- regulator-max-microvolt = <1320000>;
- regulator-name = "vdd-sys-dll";
-};
-
-®_dcdc5 {
- regulator-always-on;
- regulator-min-microvolt = <1500000>;
- regulator-max-microvolt = <1500000>;
- regulator-name = "vcc-dram";
-};
-
-®_dldo1 {
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- regulator-name = "vcc-wifi";
-};
-
®_dldo2 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-name = "vcc-pg";
};
-®_drivevbus {
- regulator-name = "usb0-vbus";
- status = "okay";
-};
-
&simplefb_lcd {
- vcc-lcd-supply = <®_dc1sw>;
vcc-pg-supply = <®_dldo2>;
};
-
-&usb_otg {
- dr_mode = "otg";
- status = "okay";
-};
-
-&usb_power_supply {
- status = "okay";
-};
-
-&usbphy {
- pinctrl-names = "default";
- pinctrl-0 = <&usb0_id_detect_pin>;
- usb0_id_det-gpio = <&pio 0 15 GPIO_ACTIVE_HIGH>; /* PA15 */
- usb0_vbus_power-supply = <&usb_power_supply>;
- usb0_vbus-supply = <®_drivevbus>;
- usb1_vbus-supply = <®_dldo1>;
- status = "okay";
-};
diff --git a/arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts b/arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi
similarity index 90%
copy from arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts
copy to arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi
index 34d8710..0c43430 100644
--- a/arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts
+++ b/arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi
@@ -40,8 +40,6 @@
* OTHER DEALINGS IN THE SOFTWARE.
*/
-/dts-v1/;
-#include "sun6i-a31s.dtsi"
#include "sunxi-common-regulators.dtsi"
#include <dt-bindings/gpio/gpio.h>
@@ -49,9 +47,6 @@
#include <dt-bindings/pinctrl/sun4i-a10.h>
/ {
- model = "Colorfly E708 Q1 tablet";
- compatible = "colorfly,e708-q1", "allwinner,sun6i-a31s";
-
aliases {
serial0 = &uart0;
};
@@ -66,20 +61,8 @@
};
&ehci0 {
- /* rtl8188etv wifi is connected here */
- status = "okay";
-};
-
-&lradc {
Shouldn't LRADC be standard for tablets?
Or are we looking at tablets with "soft" buttons?
All A31 tablets I have do use the LRADC, but they do
not use standard button <-> voltage mappings as
A13 / A23 / A33 tablets do. Which buttons they
have varies quie a bit, and they tend to not use
the same voltages for e.g. volume-up / volume-down
across tablets AFAICT.
Yes... I also found it...
And how to check the right values?
I cannot find them for my friend's Viewsonic ViewPad 133Q.
I usually build the driver with a debug printk added like
this:
--- a/drivers/input/keyboard/sun4i-lradc-keys.c
+++ b/drivers/input/keyboard/sun4i-lradc-keys.c
@@ -99,6 +99,7 @@ static irqreturn_t sun4i_lradc_irq(int irq, void *dev_id)
if ((ints & CHAN0_KEYDOWN_IRQ) && lradc->chan0_keycode == 0) {
val = readl(lradc->base + LRADC_DATA0) & 0x3f;
voltage = val * lradc->vref / 63;
+ pr_err("sun4i-lradc voltage %d\n", voltage);
for (i = 0; i < lradc->chan0_map_count; i++) {
diff = abs(lradc->chan0_map[i].voltage - voltage);
When I need to figure out the values.
I hope that helps.
Regards,
Hans
Regards,
Hans
Otherwise,
Acked-by: Chen-Yu Tsai <wens@xxxxxxxx>
- vref-supply = <®_aldo3>;
+ /* Wifi is connected here */
status = "okay";
-
- button@1000 {
- label = "Home";
- linux,code = <KEY_HOMEPAGE>;
- channel = <0>;
- voltage = <1000000>;
- };
};
&mmc0 {
@@ -181,12 +164,6 @@
regulator-name = "vcc-wifi";
};
-®_dldo2 {
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
- regulator-name = "vcc-pg";
-};
-
®_drivevbus {
regulator-name = "usb0-vbus";
status = "okay";
@@ -194,7 +171,6 @@
&simplefb_lcd {
vcc-lcd-supply = <®_dc1sw>;
- vcc-pg-supply = <®_dldo2>;
};
&usb_otg {
--
2.7.4
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html