Re: [PATCH v9 1/2] led: led_cortina: Add CAxxx LED support

2020-08-08 Thread Tom Rini
On Tue, Jun 30, 2020 at 09:08:06PM -0700, Alex Nemirovsky wrote:

> From: Jway Lin 
> 
> Add Cortina Access LED controller support for CA SOCs
> 
> Signed-off-by: Jway Lin 
> Signed-off-by: Alex Nemirovsky 
> CC: Simon Glass 
> 
> Add head file fixed link error and remove unused flashing function
> Reviewed-by: Simon Glass 

Applied to u-boot/master, thanks!

-- 
Tom


signature.asc
Description: PGP signature


Re: [PATCH v9 1/2] led: led_cortina: Add CAxxx LED support

2020-07-02 Thread Simon Glass
On Tue, 30 Jun 2020 at 22:08, Alex Nemirovsky
 wrote:
>
> From: Jway Lin 
>
> Add Cortina Access LED controller support for CA SOCs
>
> Signed-off-by: Jway Lin 
> Signed-off-by: Alex Nemirovsky 
> CC: Simon Glass 
>
> Add head file fixed link error and remove unused flashing function
>
> ---
>
> Changes in v9:
> - Remove unused LED blink function
> - Include log.h and linux/bitops.h to avoid compile warnings
>
> Changes in v8:
> - No code change
> - Split out individual driver from Cortina Package 2 patch series
> to help streamline acceptence into master
>
> Changes in v7:
> - rename OFFSET to SHIFT from macros
> - add additinal struct comments
> - Reading the DT should really happen in the ofdata_to_platdata method
>
> Changes in v4:
> - remove unused macros
> - remove cortina prefix from macros
> - remove use BSS variable
> - further cleanup to meet code style guidelines
> - add additinal struct comments
> - rename DT blink rate symbol
>
>  MAINTAINERS   |   8 +-
>  drivers/led/Kconfig   |   8 ++
>  drivers/led/Makefile  |   1 +
>  drivers/led/led_cortina.c | 298 
> ++
>  4 files changed, 314 insertions(+), 1 deletion(-)
>  create mode 100644 drivers/led/led_cortina.c

Reviewed-by: Simon Glass 


[PATCH v9 1/2] led: led_cortina: Add CAxxx LED support

2020-06-30 Thread Alex Nemirovsky
From: Jway Lin 

Add Cortina Access LED controller support for CA SOCs

Signed-off-by: Jway Lin 
Signed-off-by: Alex Nemirovsky 
CC: Simon Glass 

Add head file fixed link error and remove unused flashing function

---

Changes in v9:
- Remove unused LED blink function
- Include log.h and linux/bitops.h to avoid compile warnings

Changes in v8:
- No code change
- Split out individual driver from Cortina Package 2 patch series
to help streamline acceptence into master

Changes in v7:
- rename OFFSET to SHIFT from macros
- add additinal struct comments
- Reading the DT should really happen in the ofdata_to_platdata method

Changes in v4:
- remove unused macros
- remove cortina prefix from macros
- remove use BSS variable
- further cleanup to meet code style guidelines
- add additinal struct comments
- rename DT blink rate symbol

 MAINTAINERS   |   8 +-
 drivers/led/Kconfig   |   8 ++
 drivers/led/Makefile  |   1 +
 drivers/led/led_cortina.c | 298 ++
 4 files changed, 314 insertions(+), 1 deletion(-)
 create mode 100644 drivers/led/led_cortina.c

diff --git a/MAINTAINERS b/MAINTAINERS
index db8cecd..8867d14 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -182,6 +182,9 @@ F:  drivers/gpio/cortina_gpio.c
 F: drivers/watchdog/cortina_wdt.c
 F: drivers/serial/serial_cortina.c
 F: drivers/mmc/ca_dw_mmc.c
+F: drivers/i2c/i2c-cortina.c
+F: drivers/i2c/i2c-cortina.h
+F: drivers/led/led_cortina.c
 
 ARM/CZ.NIC TURRIS MOX SUPPORT
 M: Marek Behun 
@@ -738,6 +741,9 @@ F:  drivers/gpio/cortina_gpio.c
 F: drivers/watchdog/cortina_wdt.c
 F: drivers/serial/serial_cortina.c
 F: drivers/mmc/ca_dw_mmc.c
+F: drivers/i2c/i2c-cortina.c
+F: drivers/i2c/i2c-cortina.h
+F: drivers/led/led_cortina.c
 
 MIPS MSCC
 M: Gregory CLEMENT 
@@ -830,7 +836,7 @@ S:  Maintained
 F: arch/powerpc/
 
 POWERPC MPC8XX
-M: Christophe Leroy 
+M: Christophe Leroy 
 S: Maintained
 T: git https://gitlab.denx.de/u-boot/custodians/u-boot-mpc8xx.git
 F: arch/powerpc/cpu/mpc8xx/
diff --git a/drivers/led/Kconfig b/drivers/led/Kconfig
index 6675934..cc87fbf 100644
--- a/drivers/led/Kconfig
+++ b/drivers/led/Kconfig
@@ -35,6 +35,14 @@ config LED_BCM6858
  This option enables support for LEDs connected to the BCM6858
  HW has blinking capabilities and up to 32 LEDs can be controlled.
 
+config LED_CORTINA
+   bool "LED Support for Cortina Access CA SoCs"
+   depends on LED && (CORTINA_PLATFORM)
+   help
+ This option enables support for LEDs connected to the Cortina
+ Access CA SOCs.
+
+
 config LED_BLINK
bool "Support LED blinking"
depends on LED
diff --git a/drivers/led/Makefile b/drivers/led/Makefile
index 3654dd3..8e3ae7f 100644
--- a/drivers/led/Makefile
+++ b/drivers/led/Makefile
@@ -8,3 +8,4 @@ obj-$(CONFIG_LED_BCM6328) += led_bcm6328.o
 obj-$(CONFIG_LED_BCM6358) += led_bcm6358.o
 obj-$(CONFIG_LED_BCM6858) += led_bcm6858.o
 obj-$(CONFIG_$(SPL_)LED_GPIO) += led_gpio.o
+obj-$(CONFIG_LED_CORTINA) += led_cortina.o
diff --git a/drivers/led/led_cortina.c b/drivers/led/led_cortina.c
new file mode 100644
index 000..8fd6fd1
--- /dev/null
+++ b/drivers/led/led_cortina.c
@@ -0,0 +1,298 @@
+// SPDX-License-Identifier: GPL-2.0+
+
+/*
+ * Copyright (C) 2020 Cortina-Access
+ * Author: Jway Lin 
+ *
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#define LED_MAX_HW_BLINK   127
+#define LED_MAX_COUNT  16
+
+/* LED_CONTROL fields */
+#define LED_BLINK_RATE1_SHIFT  0
+#define LED_BLINK_RATE1_MASK   0xff
+#define LED_BLINK_RATE2_SHIFT  8
+#define LED_BLINK_RATE2_MASK   0xff
+#define LED_CLK_TEST   BIT(16)
+#define LED_CLK_POLARITY   BIT(17)
+#define LED_CLK_TEST_MODE  BIT(16)
+#define LED_CLK_TEST_RX_TEST   BIT(30)
+#define LED_CLK_TEST_TX_TEST   BIT(31)
+
+/* LED_CONFIG fields */
+#define LED_EVENT_ON_SHIFT 0
+#define LED_EVENT_ON_MASK  0x7
+#define LED_EVENT_BLINK_SHIFT  3
+#define LED_EVENT_BLINK_MASK   0x7
+#define LED_EVENT_OFF_SHIFT6
+#define LED_EVENT_OFF_MASK 0x7
+#define LED_OFF_ON_SHIFT   9
+#define LED_OFF_ON_MASK0x3
+#define LED_PORT_SHIFT 11
+#define LED_PORT_MASK  0x7
+#define LED_OFF_VALBIT(14)
+#define LED_SW_EVENT   BIT(15)
+#define LED_BLINK_SEL  BIT(16)
+
+/* LED_CONFIG structures */
+struct cortina_led_cfg {
+   void __iomem *regs;
+   u32 pin;/* LED pin nubmer */
+   bool active_low;/*Active-High or Active-Low*/
+   u32 off_event;  /* set led off event (RX,TX,SW)*/
+   u32 blink_event;/* set led blink event (RX,TX,SW)*/
+   u32 on_event;   /* set led on event (RX,TX,SW)*/
+   u32 port;