* [PATCH RESEND 00/12] SH: landisk convert to devicetree @ 2016-05-01 5:08 Yoshinori Sato 2016-05-01 5:08 ` [PATCH RESEND 10/12] sh: I/O DATA HDL-U (aka landisk) support dts Yoshinori Sato 2016-05-01 5:08 ` [PATCH RESEND 12/12] of: Add sh support Yoshinori Sato 0 siblings, 2 replies; 7+ messages in thread From: Yoshinori Sato @ 2016-05-01 5:08 UTC (permalink / raw) To: devicetree, linux-sh, linux-kernel; +Cc: Yoshinori Sato SH get devicetree support. But it not working on existing H/W. IO-DATA HDL-U (aka landisk) currentry supported. This H/W like SH7751 evalution board. It's a best to use this as a change base H/W. Yoshinori Sato (12): sh: Fix typo sh: Config update for OF mode sh: Disable board specific code in OF mode sh: Drop CPU specific setup on OF mode sh: DeviceTree support update clk: sh: SH7750/51 PLL and divider clock driver pci: sh: SH7751 PCI host bridge driver intc: sh: Renesas Super H INTC driver sh: Add I/O DATA HDL-U support drivers. sh: I/O DATA HDL-U (aka landisk) support dts sh: I/O DATA HDL-U defconfig (DT mode) of: Add sh support .../bindings/clock/renesas,sh-div-clock.txt | 24 ++ .../bindings/clock/renesas,sh7750-div-clock.txt | 27 ++ .../bindings/clock/renesas,sh7750-pll-clock.txt | 26 ++ .../interrupt-controller/iodata-landisk.txt | 28 ++ .../interrupt-controller/renesas,sh7751-intc.txt | 25 ++ .../devicetree/bindings/pci/sh7751-pci.txt | 51 +++ arch/sh/Kconfig | 26 +- arch/sh/Makefile | 11 + arch/sh/boards/Kconfig | 4 + arch/sh/boards/of-generic.c | 23 +- arch/sh/boot/compressed/head_32.S | 5 +- arch/sh/boot/dts/include/dt-bindings | 1 + arch/sh/boot/dts/landisk.dts | 150 +++++++++ arch/sh/configs/landisk-dt_defconfig | 100 ++++++ arch/sh/drivers/Makefile | 2 + arch/sh/include/asm/io.h | 6 + arch/sh/kernel/cpu/Makefile | 8 +- arch/sh/kernel/cpu/clock.c | 9 +- arch/sh/kernel/cpu/sh4/Makefile | 2 + arch/sh/kernel/head_32.S | 2 +- arch/sh/kernel/setup.c | 19 ++ drivers/clk/Kconfig | 1 + drivers/clk/Makefile | 3 +- drivers/clk/sh/Kconfig | 5 + drivers/clk/sh/Makefile | 2 + drivers/clk/sh/clk-sh7750.c | 223 +++++++++++++ drivers/clk/sh/clk-shdiv.c | 338 ++++++++++++++++++++ drivers/irqchip/Kconfig | 5 + drivers/irqchip/Makefile | 1 + drivers/irqchip/irq-io-landisk.c | 71 +++++ drivers/irqchip/irq-renesas-shipr.c | 138 ++++++++ drivers/of/fdt.c | 3 + drivers/pci/host/Kconfig | 7 + drivers/pci/host/Makefile | 1 + drivers/pci/host/pci-sh7751.c | 346 +++++++++++++++++++++ drivers/pci/host/pci-sh7751.h | 269 ++++++++++++++++ drivers/sh/Makefile | 2 + include/dt-bindings/interrupt-controller/sh_intc.h | 2 + 38 files changed, 1942 insertions(+), 24 deletions(-) create mode 100644 Documentation/devicetree/bindings/clock/renesas,sh-div-clock.txt create mode 100644 Documentation/devicetree/bindings/clock/renesas,sh7750-div-clock.txt create mode 100644 Documentation/devicetree/bindings/clock/renesas,sh7750-pll-clock.txt create mode 100644 Documentation/devicetree/bindings/interrupt-controller/iodata-landisk.txt create mode 100644 Documentation/devicetree/bindings/interrupt-controller/renesas,sh7751-intc.txt create mode 100644 Documentation/devicetree/bindings/pci/sh7751-pci.txt create mode 120000 arch/sh/boot/dts/include/dt-bindings create mode 100644 arch/sh/boot/dts/landisk.dts create mode 100644 arch/sh/configs/landisk-dt_defconfig create mode 100644 drivers/clk/sh/Kconfig create mode 100644 drivers/clk/sh/Makefile create mode 100644 drivers/clk/sh/clk-sh7750.c create mode 100644 drivers/clk/sh/clk-shdiv.c create mode 100644 drivers/irqchip/irq-io-landisk.c create mode 100644 drivers/irqchip/irq-renesas-shipr.c create mode 100644 drivers/pci/host/pci-sh7751.c create mode 100644 drivers/pci/host/pci-sh7751.h create mode 100644 include/dt-bindings/interrupt-controller/sh_intc.h -- 2.7.0 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH RESEND 10/12] sh: I/O DATA HDL-U (aka landisk) support dts 2016-05-01 5:08 [PATCH RESEND 00/12] SH: landisk convert to devicetree Yoshinori Sato @ 2016-05-01 5:08 ` Yoshinori Sato [not found] ` <1462079316-27771-11-git-send-email-ysato-Rn4VEauK+AKRv+LV9MX5uooqe+aC9MnS@public.gmane.org> 2016-05-01 5:08 ` [PATCH RESEND 12/12] of: Add sh support Yoshinori Sato 1 sibling, 1 reply; 7+ messages in thread From: Yoshinori Sato @ 2016-05-01 5:08 UTC (permalink / raw) To: devicetree, linux-sh, linux-kernel; +Cc: Yoshinori Sato Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> --- arch/sh/boot/dts/landisk.dts | 150 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 arch/sh/boot/dts/landisk.dts diff --git a/arch/sh/boot/dts/landisk.dts b/arch/sh/boot/dts/landisk.dts new file mode 100644 index 0000000..a994d19 --- /dev/null +++ b/arch/sh/boot/dts/landisk.dts @@ -0,0 +1,150 @@ +#include <dt-bindings/interrupt-controller/sh_intc.h> + +/dts-v1/; +/ { + model = "I/O DATA HDL-U"; + compatible = "iodata,hdl-u"; + #address-cells = <1>; + #size-cells = <1>; + interrupt-parent = <&shintc>; + chosen { + stdout-path = &sci1; + bootargs = "console=ttySC1,115200"; + }; + aliases { + serial0 = &sci0; + serial1 = &sci1; + }; + + oclk: oscillator { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <22222222>; + }; + pllclk: pllclk { + compatible = "renesas,sh7750-pll-clock"; + clocks = <&oclk>; + #clock-cells = <0>; + renesas,mult = <12>; + reg = <0xffc00000 2>, <0xffc00008 4>; + }; + iclk: iclk { + compatible = "renesas,sh7750-div-clock"; + clocks = <&pllclk>; + #clock-cells = <0>; + reg = <0xffc00000 2>; + renesas,offset = <6>; + clock-output-names = "ick"; + }; + bclk: bclk { + compatible = "renesas,sh7750-div-clock"; + clocks = <&pllclk>; + #clock-cells = <0>; + reg = <0xffc00000 2>; + renesas,offset = <3>; + clock-output-names = "bck"; + }; + fclk: fclk { + compatible = "renesas,sh7750-div-clock"; + clocks = <&pllclk>; + #clock-cells = <0>; + reg = <0xffc00000 2>; + renesas,offset = <0>; + clock-output-names = "fck"; + }; + cpus { + #address-cells = <1>; + #size-cells = <0>; + cpu@0 { + compatible = "renesas,sh4", "renesas,sh"; + clock-frequency = <266666666>; + }; + }; + memory@0c000000 { + device_type = "memory"; + reg = <0x0c000000 0x4000000>; + }; + shintc: interrupt-controller@ffd00000 { + compatible = "renesas,sh7751-intc"; + #interrupt-cells = <2>; + #address-cells = <1>; + #size-cells = <1>; + interrupt-controller; + reg = <0xffd00000 14>, <0xfe080000 128>; + + }; + cpldintc: cpld@b0000000 { + compatible = "iodata,landisk-intc"; + #interrupt-cells = <2>; + interrupt-controller; + reg = <0xb0000000 8>; + interrupt-map=<0 &shintc 0 0>, <1 &shintc 1 0>, + <2 &shintc 2 0>, <3 &shintc 3 0>, + <4 &shintc 4 0>, <5 &shintc 5 0>, + <6 &shintc 6 0>, <7 &shintc 7 0>; + }; + sci0: serial@ffe00000 { + compatible = "renesas,scif"; + reg = <0xffe00000 0x20>; + interrupts = <evt2irq(0x4e0) 0 + evt2irq(0x500) 0 + evt2irq(0x520) 0 + evt2irq(0x540) 0>; + clocks = <&fclk>; + clock-names = "fck"; + }; + sci1: serial@ffe80000 { + compatible = "renesas,scif"; + reg = <0xffe80000 0x100>; + interrupts = <evt2irq(0x700) 0 + evt2irq(0x720) 0 + evt2irq(0x760) 0 + evt2irq(0x740) 0>; + clocks = <&fclk>; + clock-names = "fck"; + }; + tmu: timer@ffd80008 { + compatible = "renesas,tmu"; + reg = <0xffd80000 12>; + interrupts = <evt2irq(0x400) 0 + evt2irq(0x420) 0 + evt2irq(0x440) 0>; + clocks = <&fclk>; + clock-names = "fck"; + renesas,channels-mask = <0x03>; + }; + + pci: pci-controller@fe200000 { + compatible = "renesas,sh7751-pci", "iodata,landisk"; + device_type = "pci"; + bus-range = <0 0>; + #address-cells = <2>; + #size-cells = <1>; + ranges = <0x02000000 0x00000000 0xfd000000 0xfd000000 0x00000000 0x01000000>, + <0x01000000 0x00000000 0xfe240000 0x00000000 0x00000000 0x00040000>; + reg = <0xfe200000 0x0400>, + <0x0c000000 0x04000000>, + <0xff800000 0x0030>; + #interrupt-cells = <1>; + interrupt-map-mask = <0x1800 0 7>; + interrupt-map = <0x0000 0 1 &cpldintc evt2irq(0x2a0) 0 + 0x0000 0 2 &cpldintc evt2irq(0x2c0) 0 + 0x0000 0 3 &cpldintc evt2irq(0x2e0) 0 + 0x0000 0 4 &cpldintc evt2irq(0x300) 0 + + 0x0800 0 1 &cpldintc evt2irq(0x2c0) 0 + 0x0800 0 2 &cpldintc evt2irq(0x2e0) 0 + 0x0800 0 3 &cpldintc evt2irq(0x300) 0 + 0x0800 0 4 &cpldintc evt2irq(0x2a0) 0 + + 0x1000 0 1 &cpldintc evt2irq(0x2e0) 0 + 0x1000 0 2 &cpldintc evt2irq(0x300) 0 + 0x1000 0 3 &cpldintc evt2irq(0x2a0) 0 + 0x1000 0 4 &cpldintc evt2irq(0x2c0) 0 + + 0x1800 0 1 &cpldintc evt2irq(0x300) 0 + 0x1800 0 2 &cpldintc evt2irq(0x2a0) 0 + 0x1800 0 3 &cpldintc evt2irq(0x2c0) 0 + 0x1800 0 4 &cpldintc evt2irq(0x2e0) 0>; + }; +}; -- 2.7.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
[parent not found: <1462079316-27771-11-git-send-email-ysato-Rn4VEauK+AKRv+LV9MX5uooqe+aC9MnS@public.gmane.org>]
* Re: [PATCH RESEND 10/12] sh: I/O DATA HDL-U (aka landisk) support dts [not found] ` <1462079316-27771-11-git-send-email-ysato-Rn4VEauK+AKRv+LV9MX5uooqe+aC9MnS@public.gmane.org> @ 2016-05-04 3:27 ` Rich Felker 2016-05-10 7:43 ` Yoshinori Sato 0 siblings, 1 reply; 7+ messages in thread From: Rich Felker @ 2016-05-04 3:27 UTC (permalink / raw) To: Yoshinori Sato Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, linux-sh-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA On Sun, May 01, 2016 at 02:08:34PM +0900, Yoshinori Sato wrote: > Signed-off-by: Yoshinori Sato <ysato-Rn4VEauK+AKRv+LV9MX5uooqe+aC9MnS@public.gmane.org> > --- > arch/sh/boot/dts/landisk.dts | 150 +++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 150 insertions(+) > create mode 100644 arch/sh/boot/dts/landisk.dts > > diff --git a/arch/sh/boot/dts/landisk.dts b/arch/sh/boot/dts/landisk.dts > new file mode 100644 > index 0000000..a994d19 > --- /dev/null > +++ b/arch/sh/boot/dts/landisk.dts > @@ -0,0 +1,150 @@ > +#include <dt-bindings/interrupt-controller/sh_intc.h> > + > +/dts-v1/; > +/ { > + model = "I/O DATA HDL-U"; > + compatible = "iodata,hdl-u"; > + #address-cells = <1>; > + #size-cells = <1>; > + interrupt-parent = <&shintc>; > + chosen { > + stdout-path = &sci1; > + bootargs = "console=ttySC1,115200"; > + }; > + aliases { > + serial0 = &sci0; > + serial1 = &sci1; > + }; > + > + oclk: oscillator { > + #clock-cells = <0>; > + compatible = "fixed-clock"; > + clock-frequency = <22222222>; > + }; > + pllclk: pllclk { > + compatible = "renesas,sh7750-pll-clock"; > + clocks = <&oclk>; > + #clock-cells = <0>; > + renesas,mult = <12>; > + reg = <0xffc00000 2>, <0xffc00008 4>; You have inconsistent mixes of tabs and spaces here and in several other places. > + cpus { > + #address-cells = <1>; > + #size-cells = <0>; > + cpu@0 { > + compatible = "renesas,sh4", "renesas,sh"; > + clock-frequency = <266666666>; > + }; > + }; Do you have in mind a scenario where the plain "renesas,sh" fallback-compatible tag makes sense? Linux (or any kernel or baremetal app) can't treat all sh as the same because the trap mechanism is different for sh1/2 and sh3/4. Declaring that it's sh3-compatible might make sense but I still doubt it has much practical usefulness. Rich -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH RESEND 10/12] sh: I/O DATA HDL-U (aka landisk) support dts 2016-05-04 3:27 ` Rich Felker @ 2016-05-10 7:43 ` Yoshinori Sato 0 siblings, 0 replies; 7+ messages in thread From: Yoshinori Sato @ 2016-05-10 7:43 UTC (permalink / raw) To: Rich Felker; +Cc: devicetree, linux-sh, linux-kernel On Wed, 04 May 2016 12:27:57 +0900, Rich Felker wrote: > > On Sun, May 01, 2016 at 02:08:34PM +0900, Yoshinori Sato wrote: > > Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> > > --- > > arch/sh/boot/dts/landisk.dts | 150 +++++++++++++++++++++++++++++++++++++++++++ > > 1 file changed, 150 insertions(+) > > create mode 100644 arch/sh/boot/dts/landisk.dts > > > > diff --git a/arch/sh/boot/dts/landisk.dts b/arch/sh/boot/dts/landisk.dts > > new file mode 100644 > > index 0000000..a994d19 > > --- /dev/null > > +++ b/arch/sh/boot/dts/landisk.dts > > @@ -0,0 +1,150 @@ > > +#include <dt-bindings/interrupt-controller/sh_intc.h> > > + > > +/dts-v1/; > > +/ { > > + model = "I/O DATA HDL-U"; > > + compatible = "iodata,hdl-u"; > > + #address-cells = <1>; > > + #size-cells = <1>; > > + interrupt-parent = <&shintc>; > > + chosen { > > + stdout-path = &sci1; > > + bootargs = "console=ttySC1,115200"; > > + }; > > + aliases { > > + serial0 = &sci0; > > + serial1 = &sci1; > > + }; > > + > > + oclk: oscillator { > > + #clock-cells = <0>; > > + compatible = "fixed-clock"; > > + clock-frequency = <22222222>; > > + }; > > + pllclk: pllclk { > > + compatible = "renesas,sh7750-pll-clock"; > > + clocks = <&oclk>; > > + #clock-cells = <0>; > > + renesas,mult = <12>; > > + reg = <0xffc00000 2>, <0xffc00008 4>; > > You have inconsistent mixes of tabs and spaces here and in several > other places. OK. > > + cpus { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + cpu@0 { > > + compatible = "renesas,sh4", "renesas,sh"; > > + clock-frequency = <266666666>; > > + }; > > + }; > > Do you have in mind a scenario where the plain "renesas,sh" > fallback-compatible tag makes sense? Linux (or any kernel or baremetal > app) can't treat all sh as the same because the trap mechanism is > different for sh1/2 and sh3/4. Declaring that it's sh3-compatible > might make sense but I still doubt it has much practical usefulness. Yes. sh2 and sh3/4 exception handling is very different. It so difficult unified binary. I think there are no advantages that individual CPU is defined here so much. It doesn't make the sense so much. > Rich -- Yoshinori Sato <ysato@users.sourceforge.jp> ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH RESEND 12/12] of: Add sh support 2016-05-01 5:08 [PATCH RESEND 00/12] SH: landisk convert to devicetree Yoshinori Sato 2016-05-01 5:08 ` [PATCH RESEND 10/12] sh: I/O DATA HDL-U (aka landisk) support dts Yoshinori Sato @ 2016-05-01 5:08 ` Yoshinori Sato 2016-05-02 12:35 ` Rob Herring 1 sibling, 1 reply; 7+ messages in thread From: Yoshinori Sato @ 2016-05-01 5:08 UTC (permalink / raw) To: devicetree, linux-sh, linux-kernel; +Cc: Yoshinori Sato sh fdt access in VA. But memory reservation use PA. So sh need convert to PA. Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> --- drivers/of/fdt.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index 3349d2a..fb357be 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -593,6 +593,9 @@ void __init early_init_fdt_scan_reserved_mem(void) fdt_get_mem_rsv(initial_boot_params, n, &base, &size); if (!size) break; +#ifdef CONFIG_SUPERH + base = virt_to_phys(base); +#endif early_init_dt_reserve_memory_arch(base, size, 0); } -- 2.7.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH RESEND 12/12] of: Add sh support 2016-05-01 5:08 ` [PATCH RESEND 12/12] of: Add sh support Yoshinori Sato @ 2016-05-02 12:35 ` Rob Herring 2016-05-10 7:46 ` Yoshinori Sato 0 siblings, 1 reply; 7+ messages in thread From: Rob Herring @ 2016-05-02 12:35 UTC (permalink / raw) To: Yoshinori Sato Cc: devicetree@vger.kernel.org, SH-Linux, linux-kernel@vger.kernel.org On Sun, May 1, 2016 at 12:08 AM, Yoshinori Sato <ysato@users.sourceforge.jp> wrote: > sh fdt access in VA. But memory reservation use PA. > So sh need convert to PA. > > Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> > --- > drivers/of/fdt.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c > index 3349d2a..fb357be 100644 > --- a/drivers/of/fdt.c > +++ b/drivers/of/fdt.c > @@ -593,6 +593,9 @@ void __init early_init_fdt_scan_reserved_mem(void) > fdt_get_mem_rsv(initial_boot_params, n, &base, &size); > if (!size) > break; > +#ifdef CONFIG_SUPERH > + base = virt_to_phys(base); > +#endif > early_init_dt_reserve_memory_arch(base, size, 0); This is not right. base is already a physical address and early_init_dt_reserve_memory_arch takes a physical address. The default implementation using memblock also works on physical addresses. It is a weak function so you can override it if you need to do something special. But it seems something else is wrong here if you need this. Rob ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH RESEND 12/12] of: Add sh support 2016-05-02 12:35 ` Rob Herring @ 2016-05-10 7:46 ` Yoshinori Sato 0 siblings, 0 replies; 7+ messages in thread From: Yoshinori Sato @ 2016-05-10 7:46 UTC (permalink / raw) To: Rob Herring Cc: devicetree@vger.kernel.org, SH-Linux, linux-kernel@vger.kernel.org On Mon, 02 May 2016 21:35:28 +0900, Rob Herring wrote: > > On Sun, May 1, 2016 at 12:08 AM, Yoshinori Sato > <ysato@users.sourceforge.jp> wrote: > > sh fdt access in VA. But memory reservation use PA. > > So sh need convert to PA. > > > > Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> > > --- > > drivers/of/fdt.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c > > index 3349d2a..fb357be 100644 > > --- a/drivers/of/fdt.c > > +++ b/drivers/of/fdt.c > > @@ -593,6 +593,9 @@ void __init early_init_fdt_scan_reserved_mem(void) > > fdt_get_mem_rsv(initial_boot_params, n, &base, &size); > > if (!size) > > break; > > +#ifdef CONFIG_SUPERH > > + base = virt_to_phys(base); > > +#endif > > early_init_dt_reserve_memory_arch(base, size, 0); > > This is not right. base is already a physical address and > early_init_dt_reserve_memory_arch takes a physical address. The > default implementation using memblock also works on physical > addresses. It is a weak function so you can override it if you need to > do something special. But it seems something else is wrong here if you > need this. Thank you very much for your advice. The function of the sh specific is defined. > Rob -- Yoshinori Sato <ysato@users.sourceforge.jp> ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-05-10 7:46 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-05-01 5:08 [PATCH RESEND 00/12] SH: landisk convert to devicetree Yoshinori Sato 2016-05-01 5:08 ` [PATCH RESEND 10/12] sh: I/O DATA HDL-U (aka landisk) support dts Yoshinori Sato [not found] ` <1462079316-27771-11-git-send-email-ysato-Rn4VEauK+AKRv+LV9MX5uooqe+aC9MnS@public.gmane.org> 2016-05-04 3:27 ` Rich Felker 2016-05-10 7:43 ` Yoshinori Sato 2016-05-01 5:08 ` [PATCH RESEND 12/12] of: Add sh support Yoshinori Sato 2016-05-02 12:35 ` Rob Herring 2016-05-10 7:46 ` Yoshinori Sato
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).