Am 17.10.2014 um 11:37 schrieb Mark Rutland <mark.rutl...@arm.com>:

> On Thu, Oct 16, 2014 at 09:26:23PM +0100, Marek Belisko wrote:
>> Signed-off-by: H. Nikolaus Schaller <h...@goldelico.com>
>> Signed-off-by: Marek Belisko <ma...@goldelico.com>
>> ---
>> .../devicetree/bindings/misc/wi2wi,w2sg0004.txt    | 44 
>> ++++++++++++++++++++++
>> 1 file changed, 44 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/misc/wi2wi,w2sg0004.txt
>> 
>> diff --git a/Documentation/devicetree/bindings/misc/wi2wi,w2sg0004.txt 
>> b/Documentation/devicetree/bindings/misc/wi2wi,w2sg0004.txt
>> new file mode 100644
>> index 0000000..e144441
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/misc/wi2wi,w2sg0004.txt
>> @@ -0,0 +1,44 @@
>> +Wi2Wi GPS module connected through UART
>> +
>> +Required properties:
>> +- compatible: wi2wi,w2sg0004 or wi2wi,w2sg0084
>> +- pinctrl: specify two states (default and monitor). One is the default 
>> (UART) mode
>> +  and the other is for monitoring the RX line by an interrupt
>> +- on-off-gpio: the GPIO that controls the module's on-off toggle input
>> +
>> +Optional properties:
>> +- lna-suppy: an (optional) LNA regulator that is enabled together with the 
>> GPS receiver
>> +
>> +example:
>> +
>> +        gps_receiver: w2sg0004 {
>> +                compatible = "wi2wi,w2sg0004";
> 
> I couldn't spot "wi2wi" in
> Documentation/devicetree/bindings/vendor-prefixes.txt (in mainline).
> 
> Could you please add it?
> 
>> +                gpio-controller;
>> +                #gpio-cells = <2>;
> 
> As far as I can see, these properties aren't necessary. This only
> consumes a GPIO, it doesn't provide any.

Well, it provides one GPIO. Sort of a "virtual“ GPIO. It is needed so that 
it can be wired up to the DTR gpio of the UART driver (unfortunately this
patch was reverted some months ago from mainline and we will reintroduce
it soon).

The reason to solve it that way is that we did not want to have a direct link
between this driver and any serial drivers or other mechanisms how drivers
can detect that their serial port (/dev/tty*) is opened.

It is used to power down the w2sg GPS chip if no user space process is
accessing its serial port (or de-asserts DTR through tcsetattr/ioctl).

> 
>> +
>> +                pinctrl-names = "default", "monitor";
>> +                pinctrl-0 = <&uart2_pins>;
>> +                pinctrl-1 = <&uart2_rx_irq_pins>;
>> +
>> +                interrupt-parent = <&gpio5>;
>> +                interrupts = <19 IRQ_TYPE_EDGE_FALLING>;  /* GPIO_147: RX - 
>> trigger on arrival of start bit */
> 
> While interrupts is a standard property, please describe above how many
> you expect and what their logical function is.
> 
> The only part I'm confused about is how the link to the UART is
> described. I assume I'm just ignorant of some existing pattern.

The serial link itself is not described at all because it is assumed to be a 
„must have“.
The driver only needs to monitor the RX line and needs to switch it between 
UART and
GPIO/IRQ mode. So this monitoring switch is described (with two different 
pinctrl states).

We know that it is a little tricky to control this chip correctly - and we 
think this solution
is the most general (no direct dependency on the serial line, and just to 
pinmux states
and an interrupt).

> 
> Otherwise this looks ok.
> 
> Thanks,
> Mark.

Thanks as well,
Nikolaus

> 
>> +                lna-supply = <&vsim>;       /* LNA regulator */
>> +                on-off-gpio = <&gpio5 17 0>;        /* GPIO_145: trigger 
>> for turning on/off w2sg0004 */
>> +
>> +&pinmux {
>> +
>> +    uart2_pins: pinmux_uart2_pins {
>> +            pinctrl-single,pins = <
>> +                    0x14a (PIN_INPUT | MUX_MODE0)           /* 
>> uart2_tx.uart2_rx */
>> +                    0x148 (PIN_OUTPUT | MUX_MODE0)          /* 
>> uart2_tx.uart2_tx */
>> +            >;
>> +    };
>> +
>> +    uart2_rx_irq_pins: pinmux_uart2_rx_irq_pins {
>> +            pinctrl-single,pins = <
>> +                    /* switch RX to GPIO so that we can get interrupts by 
>> the start bit */
>> +                    0x14a (PIN_INPUT | MUX_MODE4)           /* 
>> uart2_tx.uart2_rx */
>> +            >;
>> +    };
>> +
>> +}
>> -- 
>> 1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to