Re: [RFC PATCH 0/3] ACPI: ARM AMBA bus connector resource

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Brandon,

Haven't had time for a deep review yet, but I am liking the direction of
these patches.

Thanks

Graeme

On Mon, Oct 21, 2013 at 07:33:46PM -0500, brandon.anderson@xxxxxxx wrote:
> From: Brandon Anderson <brandon.anderson@xxxxxxx>
> 
> This is a proposal for ACPI driver probing of the ARM AMBA devices currently listed under ‘iofpga’ in the RTSM dts file. The main addition is drivers/amba/acpi.c which fits the role of an AMBA bus ‘connector resource’ for ACPI using struct amba_device.
> 
> I have not yet figured out the implementation details regarding clocks (handled in the dts file with clock-names). However, I have included a proposed ASL format for clock information in the DSDT example below. With the last patch that hacks the clock info, this prototype will run on the Foundation and RTSM models.
> 
> These patches require Hanjun’s fixed-clock patches to be applied first on top of a Linaro ACPI kernel: https://git.linaro.org/gitweb?p=arm/acpi/leg-kernel.git;a=summary
> 
> Please comment on both the concept and the implementation.
> 
> Brandon Anderson (3):
>   Remove UART and KMI entries from DTS file
>   Prototype of AMBA bus 'connector resource' for ACPI
>   Hack clock names to get prototype running
> 
>  arch/arm64/boot/dts/foundation-v8-acpi.dts        |   10 +-
>  arch/arm64/boot/dts/rtsm_ve-aemv8a-acpi.dts       |    4 +
>  arch/arm64/boot/dts/rtsm_ve-motherboard-acpi.dtsi |    4 +
>  drivers/acpi/acpi_platform.c                      |    2 +
>  drivers/amba/Makefile                             |    2 +-
>  drivers/amba/acpi.c                               |  172 +++++++++++++++++++++
>  drivers/clk/clk-fixed-rate.c                      |   15 +-
>  7 files changed, 203 insertions(+), 6 deletions(-)
>  create mode 100644 drivers/amba/acpi.c
> 
> -- 
> 1.7.9.5
> 
> 
> ---
> 
> 		Device (AMBA) {
> 			Name (_HID, "AMBA0000") /* the parallel to "arm,primecell" in DTS */
> 			Name (_UID, 0)
> 
> 			/* Define 'apb_pclk' as a default clock source since it is
> 			   common with devices below */
> 			Method(_DSM, 4, NotSerialized) {
> 				Store (Package (3)
> 				{
> 					"clock-name", "apb_pclk", "\\_SB_.CLK0",
> 				}, Local0)
> 
> 				Return (Local0)
> 			}
> 
> 			Device (KMI0) {
> 				Name (_ADR,0x1c060000)
> 				Method (_CRS, 0x0, Serialized) {
> 					Name (RBUF, ResourceTemplate () {
> 						Memory32Fixed (ReadWrite, 0x1c060000, 0x00010000)
> 						Interrupt (ResourceConsumer, Edge, ActiveBoth,
> 								Exclusive, , , ) {44}
> 					})
> 					Return (RBUF)
> 				}
> 			}
> 
> 			Device (KMI1) {
> 				Name (_ADR,0x1c070000)
> 				Method (_CRS, 0x0, Serialized) {
> 					Name (RBUF, ResourceTemplate () {
> 						Memory32Fixed (ReadWrite, 0x1c070000, 0x00010000)
> 						Interrupt (ResourceConsumer, Edge, ActiveBoth,
> 								Exclusive, , , ) {45}
> 					})
> 					Return (RBUF)
> 				}
> 			}
> 
> 			Device (SER0) {
> 				Name (_ADR,0x1c090000)                         // UART0
> 				Method (_CRS, 0x0, Serialized) {
> 					Name (RBUF, ResourceTemplate () {
> 						Memory32Fixed (ReadWrite, 0x1c090000, 0x00010000)
> 						Interrupt (ResourceConsumer, Edge, ActiveBoth,
> 								Exclusive, , , ) {37}
> 					})
> 					Return (RBUF)
> 				}
> 			}
> 
> 			Device (SER1) {
> 				Name (_ADR,0x1c0a0000)                         // UART1
> 				Method (_CRS, 0x0, Serialized) {
> 					Name (RBUF, ResourceTemplate () {
> 						Memory32Fixed (ReadWrite, 0x1c0a0000, 0x00010000)
> 						Interrupt (ResourceConsumer, Edge, ActiveBoth,
> 								Exclusive, , , ) {38}
> 					})
> 					Return (RBUF)
> 				}
> 			}
> 			Device (SER2) {
> 				Name (_ADR,0x1c0b0000)                         // UART2
> 				Method (_CRS, 0x0, Serialized) {
> 					Name (RBUF, ResourceTemplate () {
> 						Memory32Fixed (ReadWrite, 0x1c0b0000, 0x00010000)
> 						Interrupt (ResourceConsumer, Edge, ActiveBoth,
> 								Exclusive, , , ) {39}
> 					})
> 					Return (RBUF)
> 				}
> 			}
> 
> 			Device (SER3) {
> 				Name (_ADR,0x1c0c0000)                         // UART3
> 				Method (_CRS, 0x0, Serialized) {
> 					Name (RBUF, ResourceTemplate () {
> 						Memory32Fixed (ReadWrite, 0x1c0c0000, 0x00010000)
> 						Interrupt (ResourceConsumer, Edge, ActiveBoth,
> 								Exclusive, , , ) {40}
> 					})
> 					Return (RBUF)
> 				}
> 			}
> 		}
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux