Re: [linux-sunxi] Requesting Help on a USD15, Allwinner Quadcore 1.2Ghz 64-bit A53 Hardware

2015-12-06 Thread khgoh

Noted and thanks.
Regards,
KH Goh

On 12/7/2015 1:41 PM, shela...@gmail.com wrote:

Hi KH:
I think what Luc said is very true.  The efficiency and power of open source 
community in helping developing a new thing depends on how open the hardware 
upstream is toward to the spec of the hardware.  I am not currently working on 
Ubuntu arm port, but I am woring on other Linux (e.g., Mageia) to an Arm SBC 
board, (r.g., Banana Pi M1 using allwinner A20).  Once you have more developing 
boards available, I'd like to see whether I can also install Linux bootlaoder 
to your pine64.  Let me know once you have it.

Regards
Shelandy
 


KH Goh於 2015年12月2日星期三 UTC-6上午12時35分49秒寫道:

Hi Priit Laes,
Thank for the info. Currently we are in the process of sorting out our 
documentation. Will update in the  http://linux-sunxi.org/New_Device_howto once 
it is ready.


Anyway, the regulator used in Pine64 is AXP803 and the Wifi/BT is Realtek 
RTL-8273.


Regards,
KH Goh

On Sunday, November 29, 2015 at 3:12:21 PM UTC+8, Priit Laes wrote:On Sat, 
2015-11-28 at 17:43 -0800, KH Goh wrote:



[...]


In terms of the hardware, at the moment we are having 2 unit of
Pine64 Engineering board (Please refer here for the
spec http://pine64.com/product ), and would like to donate it to the
community for further evaluation and testing. Since we are a newcomer
in this community, we would like you to advise us on who and where
should we send the 2 board to.



You can already start with the new device howto - http://linux-sunxi.or

g/New_Device_howto



This would be a nice second step to working together with community.



Do you also have access and/or permission to "publish" the datasheets

(A53, AXP??? and Wifi/BT) and BSP?



Also, on http://pine64.com/product#intro could you label all the ports

and expansion headers (I can see from the board that there are

headers/sockets for TP, CSI, DSI, RTC, VBAT, POWER, UART). And what

regulator chip (AXP???) and wifi/bluetooth chip does it use?



And a typo "muti-channel" on that page.








Thanks for your advise and appreciate your kind assistance.
Regards,
KH Goh
On Saturday, November 28, 2015 at 9:01:31 PM UTC+8, Luc Verhaegen
wrote:

On Sat, Nov 28, 2015 at 12:38:16AM -0800, khg...@gmail.com wrote:

Hi,
We are a group of people currently trying to come out with a very

low

cost single board computer, by making use of Allwinner Quadcore

1.2Ghz

64-bit A53 CPU. The target costing for the single board computer

is

USD15. The hardware will have a 4K HDMI video output and on board
ethernet connection. Further more, each board will has its own

unique

MAC address. The objective for this project is to allow

individual,

having the opportunity to learn IT knowledge with a friction of

the

cost. Please refer to pine64.com for more detail on the hardware
specification.
Currently, the hardware development on the board is almost ready.

And

with us, is the full Linux BSP with the true 64bit compiler. Due

to

budget constrain and our limited know-how in Linux, We would like

to

request the help from this community to bring up the Linux into a

full

function Ubuntu desktop, thus allow the user to truly owning a

fully

function open source computer with just a friction of the cost.
As for the hardware itself, currently we are in the mist of

building

some sample board to allow any interested developer to work on

it.

Thanks and Regard,
KH Goh

Hi,
Thanks for contacting the canonical source of most things
sunxi/allwinner before actually launching your kickstarter
campaign.
This is the first time since the original cubieboard that such a
thing
has happened. Many companies with similar products only afterwards
find
out to what extent they do depend on the linux-sunxi community, and
then
change their story in either direction. Often the work done by the
people of the linux-sunxi community gets used directly,
cloned/forked,
and nothing is ever given back.
As you can see, we (and while i do not speak for all of us, i know
that
i am not alone here) are sceptical about whoever approaches us like
this, especially when one of the first statements is "budget
constraints". You cannot expect the linux-sunxi community to do
your
work for you for free.
You should however donate boards to many known and active linux-
sunxi
developers, but for that you must not expect anything in return.
Whatever then happens, happens, or it doesn't. The results are
usually
quite positive, especially given the limited cost of said boards,
but it
will hardly ever consist of full support for your product
(especially
when based on a new SoC variant).
If you wish to have more complete support, you can always try to
hire
known linux-sunxi developers directly, or work with those members
of our
community who do contracting. The choice is up to you.
Thanks for reaching out to us before launching your marketing
campaign,
i hope that your collaboration with linux-sunxi ends up being just
as
fruitful as your kickstarter.
Luc Ver

[linux-sunxi] [PATCH 2/2] input: gt801_2plus1 - Add initial support for Goodix GT801 2+1

2015-12-06 Thread Priit Laes
This patch adds Goodix GT801 2+1 touchscreen controller support.

GT801 2+1 is a 10-finger touch controller consisting of
ARM controller interfacing two GT801 5-finger controllers.

Signed-off-by: Priit Laes 
---
 .../bindings/input/touchscreen/gt801_2plus1.txt|  23 ++
 MAINTAINERS|   6 +
 drivers/input/touchscreen/Kconfig  |  19 +-
 drivers/input/touchscreen/Makefile |   1 +
 drivers/input/touchscreen/gt801_2plus1.c   | 375 +
 5 files changed, 421 insertions(+), 3 deletions(-)
 create mode 100644 
Documentation/devicetree/bindings/input/touchscreen/gt801_2plus1.txt
 create mode 100644 drivers/input/touchscreen/gt801_2plus1.c

diff --git 
a/Documentation/devicetree/bindings/input/touchscreen/gt801_2plus1.txt 
b/Documentation/devicetree/bindings/input/touchscreen/gt801_2plus1.txt
new file mode 100644
index 000..070ff5b
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/touchscreen/gt801_2plus1.txt
@@ -0,0 +1,23 @@
+Device tree bindings for Goodix GT801 2+1 series touchscreen controller
+
+Required properties:
+
+ - compatible  : Should be "goodix,gt801_2plus1"
+ - reg : I2C address of the chip. Should be 0x55
+ - interrupt-parent: Interrupt controller to which the chip is connected
+ - interrupts  : Interrupt to which the chip is connected
+
+Example:
+
+   i2c@ {
+   /* ... */
+
+   touchscreen@55 {
+   compatible = "goodix,gt801_2plus1";
+   reg = <0x55>;
+   interrupt-parent = <&gpio>;
+   interrupts = <0 0>;
+   };
+
+   /* ... */
+   };
diff --git a/MAINTAINERS b/MAINTAINERS
index cba790b..e292126 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -4743,6 +4743,12 @@ L:   linux-in...@vger.kernel.org
 S: Maintained
 F: drivers/input/touchscreen/goodix.c
 
+GOODIX GT801 2PLUS1 TOUCHSCREEN
+M: Priit Laes 
+L: linux-in...@vger.kernel.org
+S: Maintained
+F: drivers/input/touchscreen/gt801_2plus1.c
+
 GPIO SUBSYSTEM
 M: Linus Walleij 
 M: Alexandre Courbot 
diff --git a/drivers/input/touchscreen/Kconfig 
b/drivers/input/touchscreen/Kconfig
index ae33da7..c7c3324 100644
--- a/drivers/input/touchscreen/Kconfig
+++ b/drivers/input/touchscreen/Kconfig
@@ -322,11 +322,11 @@ config TOUCHSCREEN_FUJITSU
  module will be called fujitsu-ts.
 
 config TOUCHSCREEN_GOODIX
-   tristate "Goodix I2C touchscreen"
+   tristate "Goodix GT9xx I2C touchscreen"
depends on I2C
help
- Say Y here if you have the Goodix touchscreen (such as one
- installed in Onda v975w tablets) connected to your
+ Say Y here if you have one of the Goodix GT9xx touchscreens
+ (such as one installed in Onda v975w tablet) connected to your
  system. It also supports 5-finger chip models, which can be
  found on ARM tablets, like Wexler TAB7200 and MSI Primo73.
 
@@ -335,6 +335,19 @@ config TOUCHSCREEN_GOODIX
  To compile this driver as a module, choose M here: the
  module will be called goodix.
 
+config TOUCHSCREEN_GT801_2PLUS1
+   tristate "Goodix GT801 2+1 I2C touchscreen"
+   depends on I2C
+   help
+ Say Y here if you have the Goodix GT801 2+1 touchscreen.
+ This controller is found on some older ARM tablets like
+ (Gemei G9 and Zareason Zatab).
+
+ If unsure, say N.
+
+ To compile this driver as a module, choose M here: the
+ module will be called gt801_2plus1.
+
 config TOUCHSCREEN_ILI210X
tristate "Ilitek ILI210X based touchscreen"
depends on I2C
diff --git a/drivers/input/touchscreen/Makefile 
b/drivers/input/touchscreen/Makefile
index cbaa6ab..ff25d1b4 100644
--- a/drivers/input/touchscreen/Makefile
+++ b/drivers/input/touchscreen/Makefile
@@ -38,6 +38,7 @@ obj-$(CONFIG_TOUCHSCREEN_EGALAX)  += egalax_ts.o
 obj-$(CONFIG_TOUCHSCREEN_FT6236)   += ft6236.o
 obj-$(CONFIG_TOUCHSCREEN_FUJITSU)  += fujitsu_ts.o
 obj-$(CONFIG_TOUCHSCREEN_GOODIX)   += goodix.o
+obj-$(CONFIG_TOUCHSCREEN_GT801_2PLUS1) += gt801_2plus1.o
 obj-$(CONFIG_TOUCHSCREEN_ILI210X)  += ili210x.o
 obj-$(CONFIG_TOUCHSCREEN_IMX6UL_TSC)   += imx6ul_tsc.o
 obj-$(CONFIG_TOUCHSCREEN_INEXIO)   += inexio.o
diff --git a/drivers/input/touchscreen/gt801_2plus1.c 
b/drivers/input/touchscreen/gt801_2plus1.c
new file mode 100644
index 000..e2be479
--- /dev/null
+++ b/drivers/input/touchscreen/gt801_2plus1.c
@@ -0,0 +1,375 @@
+/*
+ *  Driver for Goodix GT801 2+1 ARM touchscreen controllers
+ *
+ *  Copyright (c) 2015 Priit Laes .
+ *
+ *  This code is based on goodix.c driver (c) 2014 Red Hat Inc,
+ *  various Android codedumps (c) 2010 - 2012 Goodix Technology
+ *  and cleanups done by Emilio López (turl) for linux-sunxi.
+ *
+ * This program is free software; you can redistribu

[linux-sunxi] [PATCH 0/2] input: Driver for Goodix GT801 2+1 touchscreen

2015-12-06 Thread Priit Laes
This series adds support for Goodix GT801 2+1 touchscreen controller
and hooks it up on Gemei G9 tablet.

Now about GT801 2+1 - I initially tried to implement this inside the
existing Goodix driver, but unfortunately there are too many small
bits and pieces that would make the otherwise simple driver a
complicated mess:
  - endianness differences of coordinate readouts
  - totally different touch protocol
  - configuration layout and version information
  - I2C register differences (2 bytes vs single byte)

To apply the patchset, you need both linux-input/next and
linux-sunxi/next merged.

Patch 1 (Gemei G9 devicetree bits) should go via linux-sunxi tree.
Patch 2 (GT801 2+1 driver implementation) via linux-input

Priit Laes (2):
  ARM: dts: sun4i: gemei-g9: Add touchscreen (Goodix gt801x2) support
  input: gt801_2plus1 - Add initial support for Goodix GT801 2+1

 .../bindings/input/touchscreen/gt801_2plus1.txt|  23 ++
 MAINTAINERS|   6 +
 arch/arm/boot/dts/sun4i-a10-gemei-g9.dts   |  26 +-
 drivers/input/touchscreen/Kconfig  |  19 +-
 drivers/input/touchscreen/Makefile |   1 +
 drivers/input/touchscreen/gt801_2plus1.c   | 375 +
 6 files changed, 445 insertions(+), 5 deletions(-)
 create mode 100644 
Documentation/devicetree/bindings/input/touchscreen/gt801_2plus1.txt
 create mode 100644 drivers/input/touchscreen/gt801_2plus1.c

-- 
2.6.3

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] [PATCH 1/2] ARM: dts: sun4i: gemei-g9: Add touchscreen (Goodix gt801x2) support

2015-12-06 Thread Priit Laes
Goodix GT801 2+1 is a touchscreen controller supporting up to
10 touches.

Enable pin and wakeup pin support is currently not implemented:
 - enable pin (PI16, specified in FEX) seems to be wrong
 - wakeup pin needs some additional reverse engineering work

Signed-off-by: Priit Laes 
---
 arch/arm/boot/dts/sun4i-a10-gemei-g9.dts | 26 --
 1 file changed, 24 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts 
b/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts
index 1d73a98..52e6275 100644
--- a/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts
+++ b/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts
@@ -48,6 +48,7 @@
 #include 
 #include 
 #include 
+#include 
 
 / {
model = "Gemei G9 Tablet";
@@ -65,11 +66,11 @@
 /*
  * TODO:
  *   2x cameras via CSI
- *   audio input
+ *   audio input (+ ext. amplifier enable GPIO)
  *   AXP battery management
  *   NAND
  *   OTG
- *   Touchscreen - gt801_2plus1 @ i2c adapter 2 @ 0x48
+ *   Touchscreen enable and wakeup pins
  */
 &codec {
status = "okay";
@@ -114,6 +115,27 @@
};
 };
 
+&i2c2 {
+   pinctrl-names = "default";
+   pinctrl-0 = <&i2c2_pins_a>;
+   status = "okay";
+
+   touchscreen@55 {
+   compatible = "goodix,gt801_2plus1";
+   reg = <0x55>;
+
+   interrupt-parent = <&pio>;
+   interrupts = <7 21 IRQ_TYPE_EDGE_FALLING>; /* EINT21 (PH21) */
+
+   /*
+* TODO - figure out the wakeup pin:
+*   ctp_wakeup = port:PB13<1><1>
+* TODO - find correct GPIO pin, PI16 seems to be incorrect:
+*   ctp_en = port:PI16<1><0>
+*/
+   };
+};
+
 &lradc {
vref-supply = <®_ldo2>;
 
-- 
2.6.3

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [linux-sunxi] clk_out_a usage in mainline

2015-12-06 Thread Danny Milosavljevic
Hi Chen-Yu,

indeed, it works now.

In case someone else wants to use it, it works like this:

in the dts file I put:

/ {
 tss463aa {
compatible = "atmel,tss463aa";
clocks = <&clk_out_a>;
pinctrl-0 = <&clk_out_a_pins_a>;
pinctrl-names = "default";
};
};

&spi2 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&spi2_pins_a>;
tss463aax {
compatible = "atmel,tss463aa";
reg = <0>;
spi-max-frequency = <400>;
spi-cpol;
spi-cpha;
};
};

Note the differing pinctrl. 
Also note that it doesn't work if I put clk_out_a in the spi slave node.

Then I created a Linux kernel module
http://svn.nomike.com/playground/trunk/Navi/TSS463AA/Linux/tss463aa.c
that basically does

probe {
clk1 = devm_clk_get(&pdev->dev, NULL);
rounded_rate = clk_round_rate(clk1, rate); /* Hz */
clk_set_rate(clk1, rounded_rate);
clk_prepare_enable(clk1);
}

and a MODULE_DEVICE_TABLE to match the compatible "atmel,tss463aa".

Then I checked the proper operation of the clk_out_a 4000 Hz clock by 
connecting it 
to an audio amplifier. Yup, worked.

Thanks,
   Danny

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [linux-sunxi] Sunxi dinner at FOSDEM 2016

2015-12-06 Thread Benjamin Henrion
lOn Sunday, December 6, 2015, Karsten Merker  wrote:

> Hello everybody,
>
> FOSDEM is coming soon and I know that several of us will be
> attending, so I wanted to ask whether there is interest in
> having dinner together on Saturday evening.


Yes there will be dinner this year but we gonna try another location. I
keep you informed.


> Regards,
> Karsten
> --
> Gem. Par. 28 Abs. 4 Bundesdatenschutzgesetz widerspreche ich der Nutzung
> sowie der Weitergabe meiner personenbezogenen Daten für Zwecke der
> Werbung sowie der Markt- oder Meinungsforschung.
>
> --
> You received this message because you are subscribed to the Google Groups
> "linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to linux-sunxi+unsubscr...@googlegroups.com .
> For more options, visit https://groups.google.com/d/optout.
>


-- 
Benjamin Henrion 
FFII Brussels - +32-484-566109 - +32-2-3500762
"In July 2005, after several failed attempts to legalise software patents
in Europe, the patent establishment changed its strategy. Instead of
explicitly seeking to sanction the patentability of software, they are now
seeking to create a central European patent court, which would establish
and enforce patentability rules in their favor, without any possibility of
correction by competing courts or democratically elected legislators."

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] [PATCH v4] sun4i-codec: add inputs

2015-12-06 Thread Danny Milosavljevic
Hi,

this is the fourth version of the patch that adds inputs to sun4i-codec.

The inputs added are:
- FM-In Left and Right
- Line-In Left and Right
- Mic1-In
- Mic2-In

Changes compared to v3 are:
- Names of the input are not uppercase anymore.
- bit index constants are now named as in the A20 user manual v1.4
- added Mic1-In, Mac2-In
- added Mic1 and Mic2 Pre-Amplifiers.

I successfully tested it using alsamixer, headphones, a radio and my ears.
Note that because of missing capturing support I tested only the mixing.

Still TODO are:
- sun4i_codec_micin_gain_scale should have an entry for 0 dB at 0.
  How?
- maybe the Mic Preamps should be listed in the routes. 
  It works as it is now, though.
- right now when I press F4 in alsamixer, the Mic1-In Pre-Amplifier Gain 
  is missing its muting switch. WTF...
  How does ALSA (or alsamixer) know which controls are "Capture"?

Regards,
   Danny

Danny (1):
 b/sound/soc/sunxi/sun4i-codec.c |  112 
 1 file changed, 112 insertions(+)

Signed-off-by: Danny Milosavljevic 
---
diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c
index bcbf4da..521ab8f 100644
--- a/sound/soc/sunxi/sun4i-codec.c
+++ b/sound/soc/sunxi/sun4i-codec.c
@@ -57,9 +57,21 @@
 #define SUN4I_CODEC_DAC_ACTL_DACAENR   (31)
 #define SUN4I_CODEC_DAC_ACTL_DACAENL   (30)
 #define SUN4I_CODEC_DAC_ACTL_MIXEN (29)
+/* bits 27 and 28 are documented as "/" in the user manual */
+#define SUN4I_CODEC_DAC_ACTL_LNG   (26)
+#define SUN4I_CODEC_DAC_ACTL_FMG   (23)
+#define SUN4I_CODEC_DAC_ACTL_MICG  (20)
+#define SUN4I_CODEC_DAC_ACTL_LLNS  (19)
+#define SUN4I_CODEC_DAC_ACTL_RLNS  (18)
+#define SUN4I_CODEC_DAC_ACTL_LFMS  (17)
+#define SUN4I_CODEC_DAC_ACTL_RFMS  (16)
 #define SUN4I_CODEC_DAC_ACTL_LDACLMIXS (15)
 #define SUN4I_CODEC_DAC_ACTL_RDACRMIXS (14)
 #define SUN4I_CODEC_DAC_ACTL_LDACRMIXS (13)
+#define SUN4I_CODEC_DAC_ACTL_MIC1LS(12)
+#define SUN4I_CODEC_DAC_ACTL_MIC1RS(11)
+#define SUN4I_CODEC_DAC_ACTL_MIC2LS(10)
+#define SUN4I_CODEC_DAC_ACTL_MIC2RS(9)
 #define SUN4I_CODEC_DAC_ACTL_DACPAS(8)
 #define SUN4I_CODEC_DAC_ACTL_MIXPAS(7)
 #define SUN4I_CODEC_DAC_ACTL_PA_MUTE   (6)
@@ -94,7 +106,19 @@
 #define SUN4I_CODEC_DAC_TXCNT  (0x30)
 #define SUN4I_CODEC_ADC_RXCNT  (0x34)
 #define SUN4I_CODEC_AC_SYS_VERI(0x38)
+
+/* MIC_PHONE_CAL register offsets and bit fields */
 #define SUN4I_CODEC_AC_MIC_PHONE_CAL   (0x3c)
+#define SUN4I_CODEC_AC_MIC_PHONE_CAL_PREG1  (29)
+#define SUN4I_CODEC_AC_MIC_PHONE_CAL_PREG2  (26)
+/* 25 inclusive to 8 inclusive are documented as "/" */
+/* note: no idea where the output pins for the following are. */
+#define SUN4I_CODEC_AC_MIC_PHONE_CAL_PHONEOUTG  (5)
+#define SUN4I_CODEC_AC_MIC_PHONE_CAL_PHONEOUTEN (4)
+#define SUN4I_CODEC_AC_MIC_PHONE_CAL_PHONEOUTS3 (3)
+#define SUN4I_CODEC_AC_MIC_PHONE_CAL_PHONEOUTS2 (2)
+#define SUN4I_CODEC_AC_MIC_PHONE_CAL_PHONEOUTS1 (1)
+#define SUN4I_CODEC_AC_MIC_PHONE_CAL_PHONEOUTS0 (0)
 
 struct sun4i_codec {
struct device   *dev;
@@ -402,16 +426,72 @@ static const struct snd_kcontrol_new sun4i_codec_pa_mute =
SUN4I_CODEC_DAC_ACTL_PA_MUTE, 1, 0);
 
 static DECLARE_TLV_DB_SCALE(sun4i_codec_pa_volume_scale, -6300, 100, 1);
+static DECLARE_TLV_DB_SCALE(sun4i_codec_linein_output_volume_scale, -150, 150, 
0);
+static DECLARE_TLV_DB_SCALE(sun4i_codec_fmin_output_volume_scale, -450, 150, 
0);
+static DECLARE_TLV_DB_SCALE(sun4i_codec_micin_output_volume_scale, -450, 150, 
0);
+/* FIXME raw value 0x00: 0 dB */
+static DECLARE_TLV_DB_SCALE(sun4i_codec_micin_gain_scale, 2400, 300, 0);
 
 static const struct snd_kcontrol_new sun4i_codec_widgets[] = {
SOC_SINGLE_TLV("PA Volume", SUN4I_CODEC_DAC_ACTL,
   SUN4I_CODEC_DAC_ACTL_PA_VOL, 0x3F, 0,
   sun4i_codec_pa_volume_scale),
+   /* Line-In, FM-In */
+   SOC_SINGLE_TLV("Line-In Playback Volume",
+  SUN4I_CODEC_DAC_ACTL,
+  SUN4I_CODEC_DAC_ACTL_LNG,
+  1,
+  0,
+  sun4i_codec_linein_output_volume_scale),
+   SOC_SINGLE_TLV("FM-In Playback Volume",
+  SUN4I_CODEC_DAC_ACTL,
+  SUN4I_CODEC_DAC_ACTL_FMG,
+  3,
+  0,
+  sun4i_codec_fmin_output_volume_scale),
+   SOC_SINGLE_TLV("Mic-In Playback Volume",
+  SUN4I_CODEC_DAC_ACTL,
+  SUN4I_CODEC_DAC_ACTL_MICG,
+  7,
+ 

Re: [linux-sunxi] [PATCH v3 1/2] sun4i-codec: add "FM-In" and "Line-In" playback controls (volume and muting switch).

2015-12-06 Thread Danny Milosavljevic
Hi,

On Sun, 6 Dec 2015 08:06:20 +0100
Code Kipper  wrote:

>I would start by sticking to the original define formats which matches 
>what's in the User Manual.

Yeah, I changed these now.

> These aren't really playback controls but gains for the capture stage.

Hmm... reading the Audio Codec Block Diagram in A20 User Manual v1.4 20150510 
page 171, they go down to the mixer, but not to the ADC.

So I'd say they are "playback" controls in the sense that they shouldn't 
affect capturing.

The ADC has its own gain controls.

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [linux-sunxi] Mainline Linux git setup and usage

2015-12-06 Thread Danny Milosavljevic
Hi,

On Sun, 06 Dec 2015 09:18:44 +0200
Priit Laes  wrote:

> On Sun, 2015-12-06 at 00:45 +0100, Danny Milosavljevic wrote:
> > Hello,
> > 
> > when trying to setup a build environment for mainline Linux I ran
> > into some problems:
> 
> Which tutorial (or wiki page) did you follow?

https://linux-sunxi.org/Sending_patches

> > $ git clone --depth 1
> > git://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux.git
> > $ git checkout sunxi/for-next
> > error: pathspec 'sunxi/for-next' did not match any file(s) known to
> > git.

This works:

$ git clone -b sunxi/for-next --depth 1 
git://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux.git

> Also, official 'for-next' branch is stored at github.org/linux-
> sunxi/linux-sunxi

Not according to the above page. But good to know.

> > git send-email doesn't exist (git version 2.1.4).
> This is probably your distribution (or operating system) related problem.

Ah, I installed git-email now and it exists now.
No idea whether it works yet.

Thanks :)

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [linux-sunxi] [PATCH v3 2/2] sun4i-codec: add "FM-In" and "Line-In" playback controls (volume and muting switch), including DAPM.

2015-12-06 Thread Danny Milosavljevic
Hi,

On Sun, 6 Dec 2015 08:12:51 +0100
Code Kipper  wrote:

> > SND_SOC_DAPM_OUTPUT("HP Right"),
> > SND_SOC_DAPM_OUTPUT("HP Left"),
> > +
> > +   SND_SOC_DAPM_INPUT("LINE_IN Right"),
> > +   SND_SOC_DAPM_INPUT("LINE_IN Left"),
> > +   SND_SOC_DAPM_INPUT("FM_IN Right"),
> > +   SND_SOC_DAPM_INPUT("FM_IN Left"),
> 
> Rename this to maintain the format (eg. Line-In Right)

Ok, I will.
(These were named that way to keep with the DAPM_OUTPUT format. 
 HP is also in this all-caps style)

Thanks,
   Danny

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [linux-sunxi] [PATCH v3 2/2] sun4i-codec: add "FM-In" and "Line-In" playback controls (volume and muting switch), including DAPM.

2015-12-06 Thread Danny Milosavljevic
Hi,

On Sun, 6 Dec 2015 08:12:51 +0100
Code Kipper  wrote:

> I would squash your patches first before sendiing them out. Here
> you're removing something from the previous patch.

I thought about doing that. However, these are affecting different parts of 
ALSA.
In that case, 0001 is the minimal part to make FM_IN and LINE_IN work at all.
0002 is the part that moves the controls to DAPM so it prevents depowering when 
there's FM input.

But I can squash them next time.

Thanks,
   Danny

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [linux-sunxi] [PATCH v3 1/2] sun4i-codec: add "FM-In" and "Line-In" playback controls (volume and muting switch).

2015-12-06 Thread Danny Milosavljevic
Hi,

On Sun, 6 Dec 2015 08:06:20 +0100
Code Kipper  wrote:

> These aren't really playback controls but gains for the capture stage.
> These can be mixed into the output though. Have you tested this?

Yes, I did. However, there is no capturing support in the driver. 
I tested the mixing into the output stage and it works.

Once there is capturing support it could be renamed. 

Alternatively, one can make them capturing mixer controls now.
However, since there's no capturing support yet I can't test that part.

Thanks,
   Danny

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] [PATCH] clk: sunxi: Extend the simple gates and handle the Allwinner H3

2015-12-06 Thread Jean-Francois Moine
The H3 has a clock gate definition similar to the other Allwinner SoCs,
but with a different parent clock for each single gate.

Adding the names of the parent clocks in both the source and output clocks
permits the use of the simple-gates driver to define the bus gates
of all known Allwinner SoCs.

Signed-off-by: Jean-Francois Moine 
---
This patch replaces a part of Jens Kuske's patch
[PATCH v5 1/4] clk: sunxi: Add H3 clocks support
---
 Documentation/devicetree/bindings/clock/sunxi.txt | 25 +++
 drivers/clk/sunxi/clk-simple-gates.c  | 14 -
 2 files changed, 38 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt 
b/Documentation/devicetree/bindings/clock/sunxi.txt
index 8a47b77..5736e6d 100644
--- a/Documentation/devicetree/bindings/clock/sunxi.txt
+++ b/Documentation/devicetree/bindings/clock/sunxi.txt
@@ -70,6 +70,7 @@ Required properties:
"allwinner,sun8i-a23-usb-clk" - for usb gates + resets on A23
"allwinner,sun9i-a80-usb-mod-clk" - for usb gates + resets on A80
"allwinner,sun9i-a80-usb-phy-clk" - for usb phy gates + resets on A80
+   "allwinner,sunxi-gates-clk" - simple gates
 
 Required properties for all clocks:
 - reg : shall be the control register address for the clock.
@@ -93,6 +94,12 @@ The "allwinner,sun9i-a80-mmc-config-clk" clock also requires:
 - #reset-cells : shall be set to 1
 - resets : shall be the reset control phandle for the mmc block.
 
+The "allwinner,sunxi-gates-clk" clock also requires:
+- clock-names : corresponding names of the parent clocks
+when the output clocks have different parents.
+These names must be 4 characters long and must appear as a prefix in
+the names of the output clocks. See example.
+
 For "allwinner,sun7i-a20-gmac-clk", the parent clocks shall be fixed rate
 dummy clocks at 25 MHz and 125 MHz, respectively. See example.
 
@@ -203,3 +210,21 @@ mmc_config_clk: clk@01c13000 {
clock-output-names = "mmc0_config", "mmc1_config",
 "mmc2_config", "mmc3_config";
 };
+
+bus_gates: clk@01c20060 {
+   compatible = "allwinner,sunxi-gates-clk";
+   reg = <0x01c20060 0x14>;
+   clocks = <&ahb1>, <&ahb2>;
+   clock-names = "ahb1", "ahb2";
+   clock-indices = <5>, <6>, <8>,
+   <17>, <18>,
+   <26>, <27>,
+   <28>, <29>,
+   <128>, <135>;
+   clock-output-names = "ahb1_ce", "ahb1_dma", "ahb1_mmc0",
+"ahb2_emac", "ahb1_ts",
+"ahb1_ehci2", "ahb1_ehci3",
+"ahb1_otg_ohci0", "ahb2_ohci1",
+"ahb1_ephy", "ahb1_dbg";
+   };
+};
diff --git a/drivers/clk/sunxi/clk-simple-gates.c 
b/drivers/clk/sunxi/clk-simple-gates.c
index 0214c65..81c4cb0 100644
--- a/drivers/clk/sunxi/clk-simple-gates.c
+++ b/drivers/clk/sunxi/clk-simple-gates.c
@@ -29,12 +29,14 @@ static void __init sunxi_simple_gates_setup(struct 
device_node *node,
 {
struct clk_onecell_data *clk_data;
const char *clk_parent, *clk_name;
+   char dyn_clk_parent[8];
struct property *prop;
struct resource res;
void __iomem *clk_reg;
void __iomem *reg;
const __be32 *p;
int number, i = 0, j;
+   bool parent_per_gate;
u8 clk_bit;
u32 index;
 
@@ -42,7 +44,13 @@ static void __init sunxi_simple_gates_setup(struct 
device_node *node,
if (IS_ERR(reg))
return;
 
-   clk_parent = of_clk_get_parent_name(node, 0);
+   parent_per_gate = of_clk_get_parent_count(node) != 1;
+   if (parent_per_gate) {
+   clk_parent = dyn_clk_parent;
+   dyn_clk_parent[4] = '\0';
+   } else {
+   clk_parent = of_clk_get_parent_name(node, 0);
+   }
 
clk_data = kmalloc(sizeof(struct clk_onecell_data), GFP_KERNEL);
if (!clk_data)
@@ -58,6 +66,8 @@ static void __init sunxi_simple_gates_setup(struct 
device_node *node,
of_property_for_each_u32(node, "clock-indices", prop, p, index) {
of_property_read_string_index(node, "clock-output-names",
  i, &clk_name);
+   if (parent_per_gate)
+   strncpy(dyn_clk_parent, clk_name, 4);
 
clk_reg = reg + 4 * (index / 32);
clk_bit = index % 32;
@@ -140,6 +150,8 @@ CLK_OF_DECLARE(sun9i_a80_apb0, 
"allwinner,sun9i-a80-apb0-gates-clk",
   sunxi_simple_gates_init);
 CLK_OF_DECLARE(sun9i_a80_apb1, "allwinner,sun9i-a80-apb1-gates-clk",
   sunxi_simple_gates_init);
+CLK_OF_DECLARE(sunxi_gates, "allwinner,sunxi-gates-clk",sunxi-gates
+  sunxi_simple_gates_init);
 
 static const int sun4i_a10_ahb_critical_clocks[] __initconst = {
14, /* ahb_sdram */

-- 
Ken ar c'hentañ | ** Breizh ha Linux atav!