From 60592165ca998875e4bc46c4396c5a123a7e9dbb Mon Sep 17 00:00:00 2001 From: Lorenzo Miori Date: Sat, 23 Feb 2013 16:59:49 +0100 Subject: Samsung YP-R0 hosted target code refactoring As per title this patch aims at splitting common target code and specific target code in a better way to support future ports within the same environment (e.g. Samsung YP-R1 where the Linux and the SoC are the same, with differences in hardware devices handling) Change-Id: I67b4918c46403b184d3d8f42ab5aae7d01037fd0 Reviewed-on: http://gerrit.rockbox.org/409 Reviewed-by: Thomas Martitz Tested-by: Thomas Martitz --- firmware/target/hosted/samsungypr/gpio_ypr.c | 53 ++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 firmware/target/hosted/samsungypr/gpio_ypr.c (limited to 'firmware/target/hosted/samsungypr/gpio_ypr.c') diff --git a/firmware/target/hosted/samsungypr/gpio_ypr.c b/firmware/target/hosted/samsungypr/gpio_ypr.c new file mode 100644 index 0000000000..0d4a7eceae --- /dev/null +++ b/firmware/target/hosted/samsungypr/gpio_ypr.c @@ -0,0 +1,53 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * + * Module wrapper for GPIO, using /dev/r0GPIO (r0Gpio.ko) of Samsung YP-R0 + * + * Copyright (c) 2011 Lorenzo Miori + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#include +#include +#include +#include /* includes common ioctl device definitions */ +#include + +static int r0_gpio_dev = 0; + +void gpio_init(void) +{ + r0_gpio_dev = open("/dev/r0GPIO", O_RDONLY); + if (r0_gpio_dev < 0) + printf("/dev/r0GPIO open error!"); +} + +void gpio_close(void) +{ + if (r0_gpio_dev < 0) + close(r0_gpio_dev); +} + +int gpio_control_struct(int request, R0GPIOInfo r) +{ + return ioctl(r0_gpio_dev, request, &r); +} + +int gpio_control(int request, int num, int mode, int val) +{ + R0GPIOInfo r = { .num = num, .mode = mode, .val = val, }; + return ioctl(r0_gpio_dev, request, &r); +} -- cgit v1.2.3