Commit 98907c2d authored by Arnd Bergmann's avatar Arnd Bergmann

Merge tag 'DT-for-v3.15-part-1-v2' of git://git.stlinux.com/devel/kernel/linux-sti into next/dt

Merge "STi DT changes part 1 v2" from Srinivas Kandagatla:

Patches : 01-02 are DT patches, adding interrupt support to pin
controller driver, Driver changes are already going via Linus W's
pinctrl tree.

Patches: 03 - 06 are DT patches for reset/softreset controller. Reset
controller driver is Acked by Philipp Zabel.

Patches: 07, 08 are DT patches, adding Ethernet controller support
patches, actual driver changes are already in v3.14-rc4 via Dave Millers
net tree.

Patches: 09, 10 are DT patches for IR driver support, actual IR driver
is already available since v3.12. Reason for the delay is due to
dependency on reset controller driver/headers.

* tag 'DT-for-v3.15-part-1-v2' of git://git.stlinux.com/devel/kernel/linux-sti:
  ARM: STi: STIH416: Add IR support.
  ARM: STi: STIH415: Add IR support.
  ARM: STi: STiH416: Add ethernet support.
  ARM: STi: STiH415: Add ethernet support.
  ARM: STi: STiH416: Add soft reset controller support.
  ARM: STi: STiH416: Add reset controller support.
  ARM: STi: STiH415: Add soft reset controller support.
  ARM: STi: STiH415: Add reset controller support.
  ARM: STi: STiH415: Add interrupt support for pin controller
  ARM: STi: STiH416: Add interrupt support for pin controller
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 22261b22 e063735f
STMicroelectronics STi family Sysconfig Peripheral Powerdown Reset Controller
=============================================================================
This binding describes a reset controller device that is used to enable and
disable on-chip peripheral controllers such as USB and SATA, using
"powerdown" control bits found in the STi family SoC system configuration
registers. These have been grouped together into a single reset controller
device for convenience.
The actual action taken when powerdown is asserted is hardware dependent.
However, when asserted it may not be possible to access the hardware's
registers and after an assert/deassert sequence the hardware's previous state
may no longer be valid.
Please refer to reset.txt in this directory for common reset
controller binding usage.
Required properties:
- compatible: Should be "st,<chip>-powerdown"
ex: "st,stih415-powerdown", "st,stih416-powerdown"
- #reset-cells: 1, see below
example:
powerdown: powerdown-controller {
#reset-cells = <1>;
compatible = "st,stih415-powerdown";
};
Specifying powerdown control of devices
=======================================
Device nodes should specify the reset channel required in their "resets"
property, containing a phandle to the powerdown device node and an
index specifying which channel to use, as described in reset.txt
example:
usb1: usb@fe200000 {
resets = <&powerdown STIH41X_USB1_POWERDOWN>;
};
Macro definitions for the supported reset channels can be found in:
include/dt-bindings/reset-controller/stih415-resets.h
include/dt-bindings/reset-controller/stih416-resets.h
STMicroelectronics STi family Sysconfig Peripheral SoftReset Controller
=============================================================================
This binding describes a reset controller device that is used to enable and
disable on-chip peripheral controllers such as USB and SATA, using
"softreset" control bits found in the STi family SoC system configuration
registers.
The actual action taken when softreset is asserted is hardware dependent.
However, when asserted it may not be possible to access the hardware's
registers and after an assert/deassert sequence the hardware's previous state
may no longer be valid.
Please refer to reset.txt in this directory for common reset
controller binding usage.
Required properties:
- compatible: Should be "st,<chip>-softreset" example:
"st,stih415-softreset" or "st,stih416-softreset";
- #reset-cells: 1, see below
example:
softreset: softreset-controller {
#reset-cells = <1>;
compatible = "st,stih415-softreset";
};
Specifying softreset control of devices
=======================================
Device nodes should specify the reset channel required in their "resets"
property, containing a phandle to the softreset device node and an
index specifying which channel to use, as described in reset.txt
example:
ethernet0{
resets = <&softreset STIH415_ETH0_SOFTRESET>;
};
Macro definitions for the supported reset channels can be found in:
include/dt-bindings/reset-controller/stih415-resets.h
include/dt-bindings/reset-controller/stih416-resets.h
......@@ -34,5 +34,19 @@ CLKS_ICN_REG_0: CLKS_ICN_REG_0 {
compatible = "fixed-clock";
clock-frequency = <100000000>;
};
CLKS_GMAC0_PHY: clockgenA1@7 {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <25000000>;
clock-output-names = "CLKS_GMAC0_PHY";
};
CLKS_ETH1_PHY: clockgenA0@7 {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <25000000>;
clock-output-names = "CLKS_ETH1_PHY";
};
};
};
This diff is collapsed.
......@@ -10,6 +10,7 @@
#include "stih415-clock.dtsi"
#include "stih415-pinctrl.dtsi"
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/reset-controller/stih415-resets.h>
/ {
L2: cache-controller {
......@@ -28,6 +29,16 @@ soc {
ranges;
compatible = "simple-bus";
powerdown: powerdown-controller {
#reset-cells = <1>;
compatible = "st,stih415-powerdown";
};
softreset: softreset-controller {
#reset-cells = <1>;
compatible = "st,stih415-softreset";
};
syscfg_sbc: sbc-syscfg@fe600000{
compatible = "st,stih415-sbc-syscfg", "syscon";
reg = <0xfe600000 0xb4>;
......@@ -136,5 +147,64 @@ i2c@fe541000 {
status = "disabled";
};
ethernet0: dwmac@fe810000 {
device_type = "network";
compatible = "st,stih415-dwmac", "snps,dwmac", "snps,dwmac-3.610";
status = "disabled";
reg = <0xfe810000 0x8000>, <0x148 0x4>;
reg-names = "stmmaceth", "sti-ethconf";
interrupts = <0 147 0>, <0 148 0>, <0 149 0>;
interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
resets = <&softreset STIH415_ETH0_SOFTRESET>;
reset-names = "stmmaceth";
snps,pbl = <32>;
snps,mixed-burst;
snps,force_sf_dma_mode;
st,syscon = <&syscfg_rear>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_mii0>;
clock-names = "stmmaceth";
clocks = <&CLKS_GMAC0_PHY>;
};
ethernet1: dwmac@fef08000 {
device_type = "network";
compatible = "st,stih415-dwmac", "snps,dwmac", "snps,dwmac-3.610";
status = "disabled";
reg = <0xfef08000 0x8000>, <0x74 0x4>;
reg-names = "stmmaceth", "sti-ethconf";
interrupts = <0 150 0>, <0 151 0>, <0 152 0>;
interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
snps,pbl = <32>;
snps,mixed-burst;
snps,force_sf_dma_mode;
st,syscon = <&syscfg_sbc>;
resets = <&softreset STIH415_ETH1_SOFTRESET>;
reset-names = "stmmaceth";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_mii1>;
clock-names = "stmmaceth";
clocks = <&CLKS_ETH1_PHY>;
};
rc: rc@fe518000 {
compatible = "st,comms-irb";
reg = <0xfe518000 0x234>;
interrupts = <0 203 0>;
clocks = <&CLK_SYSIN>;
rx-mode = "infrared";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ir>;
resets = <&softreset STIH415_IRB_SOFTRESET>;
};
};
};
......@@ -37,5 +37,19 @@ CLK_S_ICN_REG_0: clockgenA0@4 {
clock-frequency = <100000000>;
clock-output-names = "CLK_S_ICN_REG_0";
};
CLK_S_GMAC0_PHY: clockgenA1@7 {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <25000000>;
clock-output-names = "CLK_S_GMAC0_PHY";
};
CLK_S_ETH1_PHY: clockgenA0@7 {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <25000000>;
clock-output-names = "CLK_S_ETH1_PHY";
};
};
};
This diff is collapsed.
......@@ -10,6 +10,7 @@
#include "stih416-clock.dtsi"
#include "stih416-pinctrl.dtsi"
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/reset-controller/stih416-resets.h>
/ {
L2: cache-controller {
compatible = "arm,pl310-cache";
......@@ -27,6 +28,16 @@ soc {
ranges;
compatible = "simple-bus";
powerdown: powerdown-controller {
#reset-cells = <1>;
compatible = "st,stih416-powerdown";
};
softreset: softreset-controller {
#reset-cells = <1>;
compatible = "st,stih416-softreset";
};
syscfg_sbc:sbc-syscfg@fe600000{
compatible = "st,stih416-sbc-syscfg", "syscon";
reg = <0xfe600000 0x1000>;
......@@ -145,5 +156,61 @@ i2c@fe541000 {
status = "disabled";
};
ethernet0: dwmac@fe810000 {
device_type = "network";
compatible = "st,stih416-dwmac", "snps,dwmac", "snps,dwmac-3.710";
status = "disabled";
reg = <0xfe810000 0x8000>, <0x8bc 0x4>;
reg-names = "stmmaceth", "sti-ethconf";
interrupts = <0 133 0>, <0 134 0>, <0 135 0>;
interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
snps,pbl = <32>;
snps,mixed-burst;
st,syscon = <&syscfg_rear>;
resets = <&softreset STIH416_ETH0_SOFTRESET>;
reset-names = "stmmaceth";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_mii0>;
clock-names = "stmmaceth";
clocks = <&CLK_S_GMAC0_PHY>;
};
ethernet1: dwmac@fef08000 {
device_type = "network";
compatible = "st,stih416-dwmac", "snps,dwmac", "snps,dwmac-3.710";
status = "disabled";
reg = <0xfef08000 0x8000>, <0x7f0 0x4>;
reg-names = "stmmaceth", "sti-ethconf";
interrupts = <0 136 0>, <0 137 0>, <0 138 0>;
interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
snps,pbl = <32>;
snps,mixed-burst;
st,syscon = <&syscfg_sbc>;
resets = <&softreset STIH416_ETH1_SOFTRESET>;
reset-names = "stmmaceth";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_mii1>;
clock-names = "stmmaceth";
clocks = <&CLK_S_ETH1_PHY>;
};
rc: rc@fe518000 {
compatible = "st,comms-irb";
reg = <0xfe518000 0x234>;
interrupts = <0 203 0>;
rx-mode = "infrared";
clocks = <&CLK_SYSIN>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ir>;
resets = <&softreset STIH416_IRB_SOFTRESET>;
};
};
};
......@@ -20,6 +20,8 @@ chosen {
aliases {
ttyAS0 = &serial2;
ethernet0 = &ethernet0;
ethernet1 = &ethernet1;
};
soc {
......@@ -46,5 +48,25 @@ i2c@fed41000 {
status = "okay";
};
ethernet0: dwmac@fe810000 {
status = "okay";
phy-mode = "mii";
pinctrl-0 = <&pinctrl_mii0>;
snps,reset-gpio = <&PIO106 2>;
snps,reset-active-low;
snps,reset-delays-us = <0 10000 10000>;
};
ethernet1: dwmac@fef08000 {
status = "disabled";
phy-mode = "mii";
st,tx-retime-src = "txclk";
snps,reset-gpio = <&PIO4 7>;
snps,reset-active-low;
snps,reset-delays-us = <0 10000 10000>;
};
};
};
......@@ -19,6 +19,7 @@ chosen {
aliases {
ttyAS0 = &sbc_serial1;
ethernet1 = &ethernet1;
};
soc {
sbc_serial1: serial@fe531000 {
......@@ -60,5 +61,17 @@ i2c@fe540000 {
i2c@fe541000 {
status = "okay";
};
ethernet1: dwmac@fef08000 {
status = "okay";
phy-mode = "rgmii-id";
max-speed = <1000>;
st,tx-retime-src = "clk_125";
snps,reset-gpio = <&PIO3 0>;
snps,reset-active-low;
snps,reset-delays-us = <0 10000 10000>;
pinctrl-0 = <&pinctrl_rgmii1>;
};
};
};
/*
* This header provides constants for the reset controller
* based peripheral powerdown requests on the STMicroelectronics
* STiH415 SoC.
*/
#ifndef _DT_BINDINGS_RESET_CONTROLLER_STIH415
#define _DT_BINDINGS_RESET_CONTROLLER_STIH415
#define STIH415_EMISS_POWERDOWN 0
#define STIH415_NAND_POWERDOWN 1
#define STIH415_KEYSCAN_POWERDOWN 2
#define STIH415_USB0_POWERDOWN 3
#define STIH415_USB1_POWERDOWN 4
#define STIH415_USB2_POWERDOWN 5
#define STIH415_SATA0_POWERDOWN 6
#define STIH415_SATA1_POWERDOWN 7
#define STIH415_PCIE_POWERDOWN 8
#define STIH415_ETH0_SOFTRESET 0
#define STIH415_ETH1_SOFTRESET 1
#define STIH415_IRB_SOFTRESET 2
#define STIH415_USB0_SOFTRESET 3
#define STIH415_USB1_SOFTRESET 4
#define STIH415_USB2_SOFTRESET 5
#endif /* _DT_BINDINGS_RESET_CONTROLLER_STIH415 */
/*
* This header provides constants for the reset controller
* based peripheral powerdown requests on the STMicroelectronics
* STiH416 SoC.
*/
#ifndef _DT_BINDINGS_RESET_CONTROLLER_STIH416
#define _DT_BINDINGS_RESET_CONTROLLER_STIH416
#define STIH416_EMISS_POWERDOWN 0
#define STIH416_NAND_POWERDOWN 1
#define STIH416_KEYSCAN_POWERDOWN 2
#define STIH416_USB0_POWERDOWN 3
#define STIH416_USB1_POWERDOWN 4
#define STIH416_USB2_POWERDOWN 5
#define STIH416_USB3_POWERDOWN 6
#define STIH416_SATA0_POWERDOWN 7
#define STIH416_SATA1_POWERDOWN 8
#define STIH416_PCIE0_POWERDOWN 9
#define STIH416_PCIE1_POWERDOWN 10
#define STIH416_ETH0_SOFTRESET 0
#define STIH416_ETH1_SOFTRESET 1
#define STIH416_IRB_SOFTRESET 2
#define STIH416_USB0_SOFTRESET 3
#define STIH416_USB1_SOFTRESET 4
#define STIH416_USB2_SOFTRESET 5
#define STIH416_USB3_SOFTRESET 6
#define STIH416_SATA0_SOFTRESET 7
#define STIH416_SATA1_SOFTRESET 8
#define STIH416_PCIE0_SOFTRESET 9
#define STIH416_PCIE1_SOFTRESET 10
#define STIH416_AUD_DAC_SOFTRESET 11
#define STIH416_HDTVOUT_SOFTRESET 12
#define STIH416_VTAC_M_RX_SOFTRESET 13
#define STIH416_VTAC_A_RX_SOFTRESET 14
#define STIH416_SYNC_HD_SOFTRESET 15
#define STIH416_SYNC_SD_SOFTRESET 16
#define STIH416_BLITTER_SOFTRESET 17
#define STIH416_GPU_SOFTRESET 18
#define STIH416_VTAC_M_TX_SOFTRESET 19
#define STIH416_VTAC_A_TX_SOFTRESET 20
#define STIH416_VTG_AUX_SOFTRESET 21
#define STIH416_JPEG_DEC_SOFTRESET 22
#define STIH416_HVA_SOFTRESET 23
#define STIH416_COMPO_M_SOFTRESET 24
#define STIH416_COMPO_A_SOFTRESET 25
#define STIH416_VP8_DEC_SOFTRESET 26
#define STIH416_VTG_MAIN_SOFTRESET 27
#endif /* _DT_BINDINGS_RESET_CONTROLLER_STIH416 */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment